梯度下降 — Gradient Descent

想要理解梯度下降,我们需要先认识梯度这一概念。首先回顾一下偏微分。对于函数 z=f(x,y) 自变量取值 (x0,y0) 时,偏导数 fx(x0,y0) fy(x0,y0) 表示 f x 轴与 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=1 z=f(x0,y0) 在方向 u 上的变化率,即 f x 轴方向上的变化率乘以 u1 f y 轴方向上的变化率乘以 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(θ)

猜你喜欢

转载自blog.csdn.net/u012841922/article/details/78703623