梯度下降 — Gradient Descent

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

其中, u \mathbf u u是单位向量,即 ∥ u ∥ = 1 \Vert \mathbf u \Vert = 1 u=1 z = f ( x 0 , y 0 ) z = f(x_0, y_0) z=f(x0,y0)在方向 u \mathbf u u上的变化率,即 f f f x x x轴方向上的变化率乘以 u 1 u_1 u1 f f f y y y轴方向上的变化率乘以 u 2 u_2 u2的组合。上式可改写成向量的形式:
D u f ( x 0 , y 0 ) = &lt; f x ( x 0 , y 0 ) , f y ( x 0 , y 0 ) &gt; ⋅ &lt; u 1 , u 2 &gt; D_{\mathbf u}f(x_0, y_0) = &lt;f_x(x_0, y_0), f_y(x_0, y_0)&gt;\centerdot&lt;u_1, u_2&gt; Duf(x0,y0)=<fx(x0,y0),fy(x0,y0)><u1,u2>

由此,我们将得到梯度向量的定义。函数 z = f ( x , y ) z = f(x, y) z=f(x,y) ( x 0 , y 0 ) (x_0, y_0) (x0,y0)处的梯度:
▽ f ( x 0 , y 0 ) = &lt; f x ( x 0 , y 0 ) , f y ( x 0 , y 0 ) &gt; \bigtriangledown f(x_0, y_0) = &lt;f_x(x_0, y_0), f_y(x_0, y_0)&gt; f(x0,y0)=<fx(x0,y0),fy(x0,y0)>

梯度有个重要的性质需要牢记,即梯度的方向始终指向函数 f f f上升最快的方向,即 z z z值增大最快的方向。
P r o o f : \mathcal Proof: Proof:
D u f ( x 0 , y 0 ) = &lt; f x ( x 0 , y 0 ) , f y ( x 0 , y 0 ) &gt; ⋅ &lt; u 1 , u 2 &gt; = ▽ f ( x 0 , y 0 ) ⋅ u = ∥ ▽ f ( x 0 , y 0 ) ∥ ∥ u ∥ cos ⁡ ( θ ) D_{\mathbf u}f(x_0, y_0) = &lt;f_x(x_0, y_0), f_y(x_0, y_0)&gt;\centerdot&lt;u_1, u_2&gt; = \bigtriangledown f(x_0, y_0) \centerdot \mathbf u = \Vert \bigtriangledown f(x_0, y_0) \Vert \Vert \mathbf u \Vert \cos(\theta) Duf(x0,y0)=<fx(x0,y0),fy(x0,y0)><u1,u2>=f(x0,y0)u=f(x0,y0)ucos(θ)

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

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

将上式写成向量形式,即: θ = θ − α &lt; J θ 1 , J θ 2 , … , J θ n &gt; = θ − α ▽ J ( θ ) \theta = \theta - \alpha&lt;J_{\theta_1}, J_{\theta_2}, \dots, J_{\theta_n}&gt; = \theta - \alpha \bigtriangledown J(\theta) θ=θα<Jθ1,Jθ2,,Jθn>=θαJ(θ)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值