前言
在机器学习领域,梯度下降法作为基础优化算法,在该领域具有较多的应用,而如何理解梯度下降法是引起初学者困惑的来源之一。本文通过图片阐述,公式推导等,从个人角度描述什么是梯度下降法。并通过梯度下降方法解释线性回归算法的参数收敛情况。
向量与方向:
在生活中,我们时常提到方向一词,如去东南方向,西北方向等。
而描述方向我们通常用东南西北将我们要去的位置进行标记,而我们走去的地方就是方向。
方向在几何学中我们称之为向量,有方向的量。
而对于二维坐标系中来说我们所谓的方向就是向量指向的位置,如图的东北方向。
当图像扩充到三维坐标系中,就有了三维空间的向量,其代表空间的方向。
方向导数与梯度:
导数反应的是函数的变化率,而偏导数反应的是函数沿坐标轴方向的变化率。
方向导数:
是与射线同方向的单位向量,这里的 叫做方向余弦(即射线与x轴y轴夹角的余弦值)。
该式子就是在 点沿 方向的方向导数,描述的就是沿着 方向的变化情况。
梯度:
在函数上标注一点,沿着该点偏导方向组成的向量就是梯度,也就是函数在该点的移动方向。
方向导数与梯度的关系:
图中我们假设函数是 ,射线AB为梯度方向,AC是我们移动方向,可以看到AC方向与AB方向存在一个夹角α。
方向导数与梯度的关系公式,随着角度的变化而变化:
而随着夹角的变化我们可以获得方向导数与梯度之间的关系如下:
(1)当α=0,选取方向与梯度方向相同,此时函数增加(上升)最快。
(2)当α=π,选取方向与梯度方向相反,此时函数减少(下降)最快。
(3)当α=π/2,选取方向与梯度方向正交,此时函数变化率为0。
(4)当α=任意值时,选取方向与梯度方向呈α角度,此时函数变化率如下。
由于取值在[0,1]之间,因此方向导数是小于等于梯度的。
可能有人不理解为什么沿梯度方向是最快的其他方向为什么就慢,我们可以参考物体受力问题。
只有沿着正受力方向才是最快的。
梯度下降公式推导:
通过线性回归获取最小二乘:
我们可以把 系数与值得乘积求和形式 写成 的形式
我们可以把上图写成如下函数, 一条模拟的回归曲线 与随机震荡 的求和
由于实际样本值很多,因此由中心极限定理我们可以知道 服从期望为0方差为 的正态分布。
因此我们假设其正态分布公式为:
由于 转化为 , 因此 是由 变化决定的
因此我们可以求取其最大似然估计,找出合适的 使得震荡数据落在高斯分布的中间,也就是让震荡越小。
这里为什么用极大似然估计,因为我们原始的目标是为了让变小,从而相当让最小,让最小就相当于让整体式子最大,因此求最大概率就相当于让最小。
两边取对数:
对分布函数求取最大似然估计,可以看到 影响该函数最值的其实是下面的目标函数,也就是最小二乘目标函数。
梯度下降更新系数值:
到此我们推出了最小二乘目标函数,而该函数有什么作用?
由于上文我们推断,要想求取一个合适的 使得在回归线附近的震荡最小,那么就相当于求取最小二乘目标函数的极小值。
只要我们找到了该目标函数的极小值,那么极小值对应的 就是我们要求的回归函数的系数。
所以现在我们知道我们的目的是什么了。
那么怎样求取最小值,为什么能求取最小值呢?
由于该函数的项数为2次,因此很容易得到该函数是凸函数
求取凸函数的下确界对应的值就是我们要选取的最小值。
因此求取最小值,我们对目标函数求偏导:
每一个 都是由组成的,因此对 总体求和的求导相当于对单项求导再求和
进行求偏导,获取其梯度方向:
因此该结果就是目标函数沿着方向的变化率
这里可以这样理解
由于x已知,为了让震荡方差最小,从而优化值,使结果目标震荡最小。
而对目标函数求偏导就是让沿梯度上升方向变化
因此我们可以根据梯度下降得到更新值公式
值沿着梯度下降方向更新,随着迭代次数增长,最终会收敛到最优的值使得回归函数点在直线附近震荡最小。
图解理解梯度下降:
前文中提到,偏导数反应的是函数沿坐标轴方向的变化率。
下面图中描述梯度方向下降是怎样的过程:
(1)初始值
(2)迭代,至收敛。表示在处的负梯度方向即,表示学习率
可以很容易计算,函数 在A点的导数为正 ,因而函数在A点的梯度方向为正,梯度方向为,故由梯度下降法可知,下一个迭代值,也就是说x0向左移动一小步到了x1,同理在x1点的导数同样大于零,下一次迭代x1向左移动一小步到达x2,一直进行下去,只要每次移动的步数不是很大,我们就可以得到收敛1的解x。
同样针对函数反方向,由于是小于零的,因此梯度方向为负,负梯度方向为正,因此移动的位置是依次向右的。
以下是二维梯度下降图
由物理现象理解偏导和步长:
我们会发现x移动的长度越来越短,这是由于在步长相同的条件下,梯度越来越小。这就相当于越靠近最小值点,梯度的值越小,同样乘以步长,x的变化量就越小。如图可以看见grad1>grad3。
就相当于物体从斜面上的各点放置一个小球,在不同高度其力分量不同,因此单位时间(步长)其瞬时加速度不同(),因此物体瞬时移动位移是不同的。
以上是关于梯度下降法原理的理解,后期如有新的理解,会在基础上增加内容。
本文是作者个人理解,希望讲述内容为大家提供帮助,如有理解或推导错误,忘批评指正。
参考资料:
高等数学同济版
Prof. Andrew Ng, Machine Learning, Stanford University
该作者对梯度下降理解:https://blog.csdn.net/zhulf0804/article/details/52250220