机器学习之梯度下降法
1 梯度的定义
梯度的本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。
在单变量的实值函数的情况,梯度只是导数,或者,对于一个线性函数,也就是线的斜率。
(注意:梯度是一个向量)
梯度的方向是函数f增长最快的方向,梯度的反方向是f降低最快的方向;在远离最优解的时候梯度大,在靠近最优解的时候梯度小。
(注意:梯度是一个向量)
梯度的方向是函数f增长最快的方向,梯度的反方向是f降低最快的方向;在远离最优解的时候梯度大,在靠近最优解的时候梯度小。
2 梯度法思想
梯度法思想的三要素:出发点、下降方向、下降步长。图1表明了梯度下降的过程;
图1 梯度下降历程
一次梯度下降的公式如下式(1)所示:
此公式的意义是:J是关于Θ的一个函数,我们当前所处的位置为Θ0点,要从这个点走到J的最小值点。首先我们先确定前进的方向,也就是梯度的反向,然后走一段距离的步长,也就是α,走完这个段步长,就到达了Θ1这个点!
α在梯度下降算法中被称作为学习率或者步长,意味着我们可以通过α来控制每一步走的距离。
当α的取值过大或过小时,均会出现如图2和图3所示的现象。
为什么要梯度要乘以一个负号?
梯度前加一个负号,就意味着朝着梯度相反的方向前进!我们在前文提到,梯度的方向实际就是函数在此点上升最快的方向!而我们需要朝着下降最快的方向走,自然就是负的梯度的方向,所以此处需要加上负号。
3 梯度下降的数学解释
梯度下降的迭代公式:
根据泰勒公式,则
4 梯度下降算法的实例
4.1 单变量函数的梯度下降
则根据梯度下降计算公式,开始进行梯度下降的迭代计算过程:
经过四次的运算,也就是走了四步,基本就抵达了函数的最低点,它的迭代过程如图4所示:
图4 梯度下降寻优过程
4.2 多变量函数的梯度下降
多变量的目标函数如式(7)所示:
4.3 梯度下降算法在线性回归中的应用
线性回归的一般形式如式(8)所示:
线性回归的损失函数如式(9)所示:
线性回归模型可以依据梯度下降法进行求解,其求解步骤为求梯度、负梯度更新、迭代收敛。具体过程如下:
即可求取其批量梯度和随机梯度:
5 参考资料
https://www.jianshu.com/p/424b7b70df7b