Coursera机器学习第二周笔记
博客专区 > HEXcoder 的博客 > 博客详情
Coursera机器学习第二周笔记
HEXcoder 发表于6个月前
Coursera机器学习第二周笔记
  • 发表于 6个月前
  • 阅读 8
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

1. 课程中的符号说明:

  • n:特征的数量
  • x(i)x(i):第i个训练样本
  • x(i)jxj(i):第i个训练样本的第j个特征值

2. Hypothesis(假说):

上一周中,用房子的大小来预测房子的价格:

 

hθ(x)=θ0+θ1xhθ(x)=θ0+θ1x


这一次,使用的特征不仅仅只有房子的大小,还包括另外三个特征,则hh就变成这样:

hθ(x)=θ0+θ1x1+θ2x2+θ3x3+θ4x4hθ(x)=θ0+θ1x1+θ2x2+θ3x3+θ4x4


其中,x0=1x0=1

3. Cost function(代价函数):

既然假说已经变成了多特征,那么代价函数也得做相应的改变才行:

 

J(θ0,θ1,...,θn)=12m∑i=1m(hθ(x(i))−y(i))2=12m(XΘ−Y)T(XΘ−Y)J(θ0,θ1,...,θn)=12m∑i=1m(hθ(x(i))−y(i))2=12m(XΘ−Y)T(XΘ−Y)

4. Feature Scaling(特征缩放)

特征缩放可以让梯度下降变快,它的想法是:让特征值都处在一个相似的范围内
举个栗子:x1=房屋大小(0−2000feet2)x1=房屋大小(0−2000feet2),x2=卧室数量(1−5)x2=卧室数量(1−5),这两个数值相差数百倍。特征缩放是让各个特征值除以各个特征的最大值(或者用最大值-最小值、标准差也可以),则x1=房屋大小(feet2)2000x1=房屋大小(feet2)2000,x2=卧室数量5x2=卧室数量5,使每个特征值大约在[−1,1][−1,1]之间

5. Mean normalization(均值归一化)

除了x0x0以外,其他特征值xixi用 xi−平均值标准差xi−平均值标准差 替代,将原始数据集归一化为均值为0、方差1的数据集

6. Gradient descent(梯度下降法)

 

θj:=θj−α∂∂θjJ(Θ)=θj−αm∑m1(h−y)xjθj:=θj−α∂∂θjJ(Θ)=θj−αm∑m1(h−y)xj


那么,有两个问题:

  1. 如何确保梯度下降发运行正确?
  2. 如何选取正确的αα的值呢?

对于问题1,需要做一下automatic convergence test(自动收敛测试),判断收敛的条件是J(Θ)J(Θ)和前一次迭代时的值,减小的数值小于10−310−3

对于问题2,alphaalpha的值有这些影响:

  • 对于足够小的αα,J(Θ)J(Θ)每次迭代都应该减小
  • 如果αα太小,那么收敛就需要很长时间
    一般每隔3倍选取,尝试“..., 0.001, 0.003, 0.01, 0.03, 0.1, 0.3, 1 , ...”,尽量挑选其中最大的

7. Normal equation(正规方程)

对每一个jj,求∂∂θjJ(θ)=0∂∂θjJ(θ)=0时θjθj的值

 

Θ=(XTX)−1XTYΘ=(XTX)−1XTY

注:用这个方法的时候,不需要进行归一化操作

由于公式推导比较复杂,只要会用即可
因为要对矩阵XTXXTX求逆,如果它不可逆就需要对看下特征值是否有下列情况:

  1. 是否多余的特征,比如房子尺寸同时存在用平方英尺做为单位,和用平方米做为单位的,去掉多余特征
  2. 有太多的特征,而训练样本的个数m小于等于特征数量n,那么删掉一些特征,或使用regularization(正则化,第三周会讲到)

下面,对梯度下降法和正规方程进行对比

梯度下降法 正规方程
需要选择αα 不需要选择αα
需要进行很多次迭代 不需要进行很多次迭代
即使n很大,也能运行得很平稳 需要计算(XTX)−1(XTX)−1,因为(XTX)(XTX)是一个n×nn×n的矩阵,所以当n很大时,求逆会非常慢

n的大小衡量标准为10000,≥10000≥10000就需要选择梯度下降法了

共有 人打赏支持
粉丝 0
博文 21
码字总数 6471
×
HEXcoder
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: