Machine Learning第一讲[单变量线性回归] --(二)参数学习

来源:互联网 发布:电脑音效软件 编辑:程序博客网 时间:2024/06/05 10:17

内容来自Andrew老师课程Machine Learning的第一章内容的Parameter Learning部分。

一、Gradient Descent(梯度下降)

梯度下降算法可将代价函数J最小化,梯度下降算法不仅应用在线性回归中,也应用在机器学习的其他诸多领域。

使用梯度下降算法最小化函数J的过程:
S1:初试化这里写图片描述这里写图片描述的值,一般都将其设为0。
S2:使用算法不断变化这里写图片描述这里写图片描述的值,使得这里写图片描述的值不断减小,直到J为最小。

下图是一个数据集对应的轮廓图,将这图中的两个高点想象为两座山,在梯度下降算法中,如果你想要尽快走下山,你需要思考以什么样的小碎步迈下山。
1、如果现在你站在A的位置上,环顾四周,找到一个最快的方向,跨出一步,到达A1位置,再在A1位置上,环顾四周,找到一个最快的方向,到达A2位置,依次循环,最终到达A End位置,这是A点下山的最快的方向。
这里写图片描述
2、如果现在你站在B的位置上,环顾四周,找到一个最快的方向,跨出一步,到达B1位置,再在B1位置上,环顾四周,找到一个最快的方向,到达B2位置,依次循环,最终到达B End位置,这是B点下山的最快的方向。
这里写图片描述
观察可知,无论是A End位置还是B End位置都是轮廓图中的低点,即梯度下降算法最终会落在低点的位置(此位置J值最小)。
实质上,我们这样做的方法是借助代价函数在某点的导数。切线的斜率是在那个点的导数,它会给我们一个方向,这就是我们的走向(其实是J函数的偏导数),我们不断朝着最陡的下降方向前进,最终会到达最低点。每个步骤的大小由参数α确定,这称为学习速率。(α越小,我们每次迈的步子越小,α越大,我们每次迈的步子越大)

下图是梯度下降算法的定义:

这里写图片描述
这里需要强调的是这里写图片描述这里写图片描述同时更新,如上图左半部分所示,右半部分所对应的是不同时更新的情况,这种情况虽然有时候能得到正确的结果,但是存在一定的误差,在机器学习算法中并不使用这种方法,我们使用同步更新的算法思想。

二、Gradient Descent Intuition(梯度下降直观过程)

梯度下降算法:
Repeat until convergence:
                                       这里写图片描述
其中,α表示学习速率,这里写图片描述表示J函数的偏导数。

1、无论偏导数的符号是正是负,梯度下降算法最后都能在最优处收敛,如下图,是对偏导数符号为正和为负的分析:
这里写图片描述

2、学习速率α过大或者过小对梯度下降过程的影响:
这里写图片描述

3、如下图:局部最优点的斜率为0,即J函数右侧偏导数为0,因此在这个位置这里写图片描述,即此时梯度算法已收敛,再次循环时,这里写图片描述值不变。
这里写图片描述

4、怎样理解即使学习速率α不变,梯度下降算法仍能收敛于局部最优值?
这里写图片描述
如上图,
(1)在A处,斜率比较大,因此这里写图片描述的变化比较大,所以可能从A跨到B(这个之间的跨度比较大)。
(2)在B处,斜率比A小一些,因此这里写图片描述的变化比在A点的变化小,所以可能从B跨到C(这个之间的跨度比A到B小一些)。
(3)在C处,斜率比B小一些,因此这里写图片描述的变化比在B点的变化小,所以可能从C跨到D(这个之间的跨度比B到C小一些)。
…………
(n-1)在F处,斜率比E小一些,因此这里写图片描述的变化比在E点的变化小,所以可能从F跨到P(这个之间的跨度比E到F小一些)。
(n)P处,在不断梯度下降的过程中,点的斜率越来越趋于0,因此变化的幅度越来越小,直到到达最优点P,P点的斜率为0,因此梯度下降趋于收敛。
因此,在梯度下降的过程中,即使α的值不变,由于斜率的不断变化,梯度下降算法的步伐会自动变小,故梯度下降算法仍能收敛于局部最优值。

三、Gradient Descent For Linear Regression(线性回归的梯度下降函数)

梯度下降应用在线性回归、线性回归模型和平方误差代价函数……

这里将梯度下降和代价函数结合,如下图:
这里写图片描述
将 这里写图片描述代入梯度下降算法中,并进行J函数偏导数运算,运算结果如下:
这里写图片描述
强调:这里对这里写图片描述这里写图片描述的求导,需要将两者当成未知数,这里写图片描述的导数为1(相当于x对于x的导数为1),这里写图片描述这里写图片描述的导数为这里写图片描述

这里写图片描述这里写图片描述执行梯度下降算法运算,如下图,注意两者的更新需要同步进行:
这里写图片描述

举例:下图是使用梯度下降算法不断更新这里写图片描述这里写图片描述的过程,更新轨迹为A -> B -> C -> …… -> P(更新过程中二者的值为这些点对应的横纵坐标值),P为最优点。
这里写图片描述

因上述算法针对的是整个数据集,通过对所有的样本的计算来求解梯度的方向。因此其叫做批梯度下降法(Batch Gradient Descent)。

一般情况下,梯度下降算法可得到局部最优值,但是在线性回归中使用梯度下降算法只能得到一个全局最优值,没有局部最优值,因此在线性回归中梯度下降算法总是收敛于全局最优值。

事实上,J是一个凸函数,其没有局部最优解,只有全局最优解。如下图:
这里写图片描述
上面所示的椭圆是二次函数的轮廓,其是梯度下降的轨迹,它的初始化值为(48,30)。中间点是梯度下降算法收敛的最小值。

0 0
原创粉丝点击