IT大道IT大道

首页 >  技术 > 机器学习-5 多变量的梯度下降 Gradient Descent For Multiple Variables

机器学习-5 多变量的梯度下降 Gradient Descent For Multiple Variables

原文 http://blog.csdn.net/simongeek/article/details/60763282 2017-03-07 16:33:14 0 评论

多变量的梯度下降 Gradient Descent for Multiple Variables

梯度下降等式的本身是完全相同的形式,我们只是需要强调一下多变量('n' features)的问题

itdadao

换句话说:

itdadao

下面的图片比较了梯度下降在单变量和多变量的两种场景:

itdadao

梯度下降实践 I-特征尺度

我们可以通过将输入值控制在一个相同的范围内来加速梯度下降的速度。这是因为θ会在小区间范围内更加快速的下降,相比于大区间,因为当输入值不均匀的时候,很难震荡到最佳值。
解决方式是,将输入值处理成大致相同的值。理想情况是: itdadao

这个范围没有特别的要求,唯一的目的就是加速梯度下降。我们目的就是讲这些值处理成一个范围内。
有两个方式实现这个目的:1、特征尺度;2、均值归一化。特征尺度通过除以输入值的范围的方式,将输入值确保在1的区间范围内。均值归一化通过减去输入变量的平均值的方式,实现将输入变量的平均值等于0.
实现这两种处理的方法就是:

itdadao


其中μi是输入变量的平均值,si是变量的范围(最大值-最小值)又叫标准偏差(standard deviation)。注意除以范围,或除以标准偏差,得到不同的结果。
根据上面的公式,我们可以用来处理房价的输入值,范围是[100, 2000],平均值四1000.
itdadao

梯度下降实践 II-学习速率

调试梯度下降:绘制一个曲线(x轴是迭代的次数)。绘制损耗函数,J(θ)基于梯度函数的迭代次数。如果J(θ)上升,那么应该降低α。

自动收敛测试,首先明确收敛的定义,收敛就是J(θ)下降到小于给定目标值E,就认为收敛。但是实践证明,我们很难选择这个阈值。
itdadao
事实证明,如果学习速率α足够小,J(θ)就会随着迭代慢慢下降。
itdadao
总结:
如果α太小,收敛速度会下降;
如果α太大,不会确保每次迭代J(θ)下降,从而就不能保证收敛。

特征和多项式回归

我们可以用几种不同的方式改进我们的特征和假设函数的形式
我们可以将多个特征处理成一个特征。例如,我们可以将x1和 x2处理成特征x3,其中x3是x1*x2。

多项式回归

我们的假设函数不一定非要是线性(直线),因为有时不能保证和数据很好的拟合。
我们可以改变假设函数的表现形式来改变表现行为,例如平方、立方、平方根等其他方式。
如果我们的假设函数是 hθ(x)=θ0+θ1x1,可以基于此创建平方函数和立方函数,或者平方根函数。
但是,有一点需要强调:经过幂次方的处理之后,特征缩放功能就变得尤为重要了。
例如,如果x1的范围是[1,10],那么x1的平方的范围就是[1,100],x1的三次方就是[1,1000].

欢迎大家关注:数据之下 微信公众号,系统性的分享机器学习深度学习等方面的知识,不做碎片化学习的牺牲者,要做利用好碎片化时间的受益者。
itdadao









猜你喜欢