梯度下降 — Gradient Descent

来源:互联网 发布:富人国 知乎 编辑:程序博客网 时间:2024/05/22 12:48

想要理解梯度下降,我们需要先认识梯度这一概念。首先回顾一下偏微分。对于函数z=f(x,y)自变量取值(x0,y0)时,偏导数fx(x0,y0)fy(x0,y0)表示fx轴与y轴方向上的变化率。而z=f(x0,y0)在其它方向u=<u1,u2>上的变化率则可通过计算f的方向导数Duf(x0,y0)得到。方向导数公式如下:

Duf(x0,y0)=fx(x0,y0)u1+fy(x0,y0)u2

其中,u是单位向量,即u=1z=f(x0,y0)在方向u上的变化率,即fx轴方向上的变化率乘以u1fy轴方向上的变化率乘以u2的组合。上式可改写成向量的形式:
Duf(x0,y0)=<fx(x0,y0),fy(x0,y0)><u1,u2>

由此,我们将得到梯度向量的定义。函数z=f(x,y)(x0,y0)处的梯度:
f(x0,y0)=<fx(x0,y0),fy(x0,y0)>

梯度有个重要的性质需要牢记,即梯度的方向始终指向函数f上升最快的方向,即z值增大最快的方向。
roof:

Duf(x0,y0)=<fx(x0,y0),fy(x0,y0)><u1,u2>=f(x0,y0)u=f(x0,y0)ucos(θ)

u指向与梯度方向相同时(θ=0,cos(θ)=1),又因为u=1,方向导数取得最大值f(x0,y0)。此处,我们回忆一下一元微积分。当一个函数在x轴方向上某处的导数为正时,是否函数在该处递增呢?答案是肯定的,在多元微积分中,同样适用。因此,梯度的方向始终指向函数f上升最快的方向。

梯度下降则是利用梯度的反向去求函数的极小值。给定一个学习率α和初始的θ值,逐步更新目标函数J(θ)中的自变量θ。每次更新得到一个较先前更小的函数值,逐渐逼近极小值。θ更新公式如下:

θj:=θjαJ(θ)θj

将上式写成向量形式,即:θ=θα<Jθ1,Jθ2,,Jθn>=θαJ(θ)