ANg-梯度下降算法

概念

为了解决线性回归问题,我们也用梯度下降算法。
算法逻辑如下:
ANg-梯度下降算法
对于线性回归模型中例子,梯度下降可以如下:
ANg-梯度下降算法


算法

实际上梯度下降可有通过求导。这里的符号“:=”是赋值的含义
ANg-梯度下降算法
有两个注意点:

  • 参数的更新,每次迭代中θ0和θ1是同时更新的。

  • 在梯度下降中需要注意α,也就是学习速率(learn rate)。速率过大导致一直发散,速率过小导致迭代过多。这个值需要根据实际调整,具体后续分析。

  • 即使学习率α固定,渐变下降也可以收敛到局部最小值
    ANg-梯度下降算法


梯度下降算法最小化平方误差代价函数

基本概念

首先二者分别如下
ANg-梯度下降算法
所以可以得到下面的迭代
ANg-梯度下降算法

多特征

对于多个特征量,假设函数(hypothesis)应该变化为:
ANg-梯度下降算法

同理,新的算法为:
ANg-梯度下降算法

特征缩放

对于新的算法中,多个特征量由于各自有不同的范围,因此由这些取值可能使得收敛较慢或者没有了理想的效果。所以可以使用特征缩放来解决这个问题:
ANg-梯度下降算法
需要注意的是这里的正负1不是要求绝对的满足,这里的意思是多个特征量的值范围不要差距太大即可

均值归一化

对于特征量除了特征缩放以外还有均值归一化的方法:
ANg-梯度下降算法

这里μ的含义是特征集中特征X1的平均值,S1表示X1的特征值范围,也就是X1_max和X1_min的差值。虽然可以用标准差,但其实是一样的。同理这里的正负0.5也表示相近的值就可以。

学习率α的取值

如果α的取值过大或者过小都有可能导致代价函数不理想:
ANg-梯度下降算法

因此在实际中,ANg推荐的做法是通过取不同的α观察来比较,从中选取合适的学习率。

ANg-梯度下降算法

特征和多项式回归

选取的特征越有效,最终获取的结果就越准确,所以选择正确的特征是很重要的。但实际中可能有一些函数会很复杂,或者非线性。这个时候我们不能直接使用选取特征和对应的函数。此时可以通过拟合的方式获取符合实际的函数。并且特征也可以间接利用。
ANg-梯度下降算法
ANg-梯度下降算法


正规化方程

概念

某一些问题,使用正规化方程可以更好的得到θ。并且正规化方程可以一次性得出θ
对于例子来说,使用正规化方程,可以得出结果。
ANg-梯度下降算法
ANg-梯度下降算法
ANg-梯度下降算法

梯度下降算法和正规化方程的选择

对于二者,最主要的区别就是梯度下降是多次得到结果,正规化方程是一次求解。所以当特征较少的情况下,使用后者更合适。前者适用于大型或者复杂的情况
ANg-梯度下降算法

此外正规化方程有一个使用前提,也就是有逆矩阵的前提下。但这个情况通常极少,可不考虑。

上一篇:时区切换导致quartz定时任务没有触发问题


下一篇:html5中output元素详解