“梯度下降法”理解

在学习神经网络的时候,反向传播,通常会用到梯度下降法去更新权值使得在不断迭代的过程中使得每层网络权值不断调整直到损失函数落入最小值(局部或全局)。

梯度下降法的基本公式是:

w:=wηE

其中E为损失函数,η为步长,下面解释上式如何理解,需要从方向导数开始讲起。

方向导数

偏导数反映的是函数研坐标轴方向的变化率,但仅考虑函数沿坐标轴方向但变化率是不够的。例如热空气要向冷空气的地方流动,气象学中就要确定大气温度、气压沿着某些方向的变化率。因此我们有必要来讨论函数沿任一指定方向的变化率问题。

如下图,lxOy平面上过P0点的直线,el为与直线l同方向的单位向量,el=(cosα,cosβ)

“梯度下降法”理解

则射线l的参数方程为:

{x=x0+tcosαy=y0+tcosβ (t0)

则定义:
P沿l趋于P0(即t0+)时的极限存在,那么称此极限为函数f(x,y)在点P0沿方向l的方向导数,记作fl|(x0,y0),即

fl|(x0,y0)=limt0+f(x0+tcosα,y0+tcosβ)f(x0,y0)t

故可知方向导数就是函数f(x,y)在点P(x0,y0)处沿方向l的变化率

且存在定理:
如果函数f(x,y)在点P0(x0,y0)可微分,那么函数在该点沿任一方向l的方向倒数存在,且有

fl|(x0,y0)=fx(x0,y0)cosα+fy(x0,y0)cosβ

其中cosαcosβ是方向l的方向余弦。

梯度

在二元函数的情形,设函数f(x,y)在平面区域D内具有一阶连续偏导数,则对于每一点P0(x0,y0)D,都可定出一个向量

fx(x0,y0)i⃗ +fy(x0,y0)j⃗ 

这个向量称为函数f(x,y)在点P0(x0,y0)的梯度,记作gradf(x0,y0)f(x0,y0)=fx(x0,y0)i⃗ +fy(x0,y0)j⃗ 

若函数f(x,y)在点P0(x0,y0)可微,且el=(cosα,cosβ)是与方向l同向的单位向量,那么

fl|(x0,y0)====fx(x0,y0)cosα+fy(x0,y0)cosβf(x0,y0)el|f(x0,y0)|1cosθ|f(x0,y0)|cosθ

其中θ=<f(x0,y0),el>

“梯度下降法”理解

由方向导数就是函数f(x,y)在点P0(x0,y0)处沿方向l的变化率:

[ 1 ] 若要求在点P0(x0,y0)趋于最大值最快方向(若比喻成上山,即找到最陡的一条上坡路,使得上山速度最快),则要使fl|(x0,y0)取正最大值,即要:cosθ=1θ=0,即fl|(x0,y0)el方向相同,此时

fl|(x0,y0)=|f(x0,y0)|

[ 2 ] 若要求在点P0(x0,y0)趋于最小值最快方向(若比喻成下山,即找到最陡的一条下坡路,使得下山速度最快),则要使fl|(x0,y0)取负最大值,即要:cosθ=1θ=π,即fl|(x0,y0)el方向相反,此时

fl|(x0,y0)=|f(x0,y0)|

[ 3 ] 同理,若要求在点P0(x0,y0)移动最慢方向(不动),则要使fl|(x0,y0)取最小值,即要:cosθ=0θ=π2,即fl|(x0,y0)el方向垂直,此时

fl|(x0,y0)=0

根据上述可说明

w:==wηEw+η(E)

为最快迭代到极小值点的参数更新方式。

(以上为本人理解,如有错误望诸位读者指教!)

参考:
《高等数学 第七版下册》同济大学数学系编