梯度方向,梯度下降法,牛顿法

一、直观理解

梯度方向与等高线的切线方向垂直

等高线
假设一函数为: f ( x , y ) = x 2 + y 2 f(x,y)=x^2+y^2 f(x,y)=x2+y2,该函数的梯度为 [ 2 x , 2 y ] [2x,2y] [2x,2y];
选择其中一条等高线: c = x 2 + y 2 c=x^2+y^2 c=x2+y2 ( c c c为常数), 该等高线在任意一点的斜率为 − x c − x 2 \frac{-x}{\sqrt{c-x^2}} cx2 x,则切线方向为 [ x , − c − y 2 y ] [x,-\frac{c-y^2}{y}] [x,ycy2];
可以验证 [ 2 x , 2 y ] ⋅ [ x , − c − y 2 y ] T = 0 [2x,2y]\cdot[x,-\frac{c-y^2}{y}]^T=0 [2x,2y][x,ycy2]T=0,故得等高线的切线方向与梯度方向垂直。
在这里插入图片描述

二、方向导数

梯度是函数上升的方向,且在该方向上的方向导数最大

多元函数 f ( x , y ) f(x,y) f(x,y)的方向导数代表了函数在 ( x , y ) (x,y) (x,y)点上, l ⃗ \vec{l} l 方向的瞬时变化率。
设函数 f ( x , y ) f(x,y) f(x,y) 在点 ( x , y ) (x,y) (x,y)的某一邻域 U 0 U_0 U0内有定义,自点 ( x , y ) (x,y) (x,y)引射线 l l l,自 x x x轴的正向到射线 l l l的转角为 α \alpha α,则 f ( x , y ) f(x,y) f(x,y)在点 ( x , y ) (x,y) (x,y)沿方向 l l l的方向导数为: ∂ f ∂ l = ∂ f ∂ x ⋅ cos ⁡ α + ∂ f ∂ y ⋅ sin ⁡ α \frac{\partial f}{\partial l}=\frac{\partial f}{\partial x}\cdot\cos\alpha+\frac{\partial f}{\partial y}\cdot\sin\alpha lf=xfcosα+yfsinα
我们知道梯度为: g r a d = [ ∂ f ∂ x , ∂ f ∂ y ] grad=[\frac{\partial f}{\partial x},\frac{\partial f}{\partial y}] grad=[xf,yf],所以方向导数可写为: ∂ f ∂ l = g r a d ⋅ l ⃗ = ∣ g r a d ∣ ∣ l ⃗ ∣ cos ⁡ θ \frac{\partial f}{\partial l}=grad\cdot\vec l=|grad||\vec l|\cos\theta lf=gradl =gradl cosθ
θ \theta θ为梯度方向和 l l l方向的夹角,由上式可知,当夹角为 0 0 0时,即梯度方向,方向导数最大,函数上升最快;当夹角为 180 180 180时,梯度的反方向,方向导数为负,最小,函数下降地最快,这就是梯度下降法的本质。

三、从泰勒级数展开来看

对函数 f ( x , y ) f(x,y) f(x,y)进行一阶泰勒展开:
f ( x + δ 1 , y + δ 2 ) ≈ f ( x 0 , y 0 ) + ∇ f ( x 0 , y 0 ) ⋅ ( δ 1 , δ 2 ) T f(x+\delta_1,y+\delta_2)\approx f(x_0,y_0)+\nabla f(x_0,y_0)\cdot(\delta_1,\delta_2)^T f(x+δ1,y+δ2)f(x0,y0)+f(x0,y0)(δ1,δ2)T
f ( x + δ 1 , y + δ 2 ) − f ( x 0 , y 0 ) ≈ ∇ f ( x 0 , y 0 ) ⋅ ( δ 1 , δ 2 ) T f(x+\delta_1,y+\delta_2)-f(x_0,y_0)\approx\nabla f(x_0,y_0)\cdot(\delta_1,\delta_2)^T f(x+δ1,y+δ2)f(x0,y0)f(x0,y0)(δ1,δ2)T
由上可知,当 ( δ 1 , δ 2 ) (\delta_1,\delta_2) (δ1,δ2)与梯度方向一致时,函数增长速度最快。

四、牛顿法

在函数的某一点 ( x 0 , y 0 ) (x_0,y_0) (x0,y0)处用二次函数进行逼近,即二阶泰勒展开,如:
f ( x 0 + δ 1 , y + δ 2 ) ≈ f ( x 0 , y 0 ) + f ′ ( x 0 , y 0 ) ⋅ ( δ 1 , δ 2 ) T + f ′ ′ ( x 0 , y 0 ) 2 ⋅ ( δ 1 , δ 2 ) T f(x_0+\delta_1,y+\delta_2) \approx f(x_0,y_0)+f'(x_0,y_0)\cdot(\delta_1,\delta_2)^T+\frac{f''(x_0,y_0)}{2}\cdot(\delta_1,\delta_2)^T f(x0+δ1,y+δ2)f(x0,y0)+f(x0,y0)(δ1,δ2)T+2f(x0,y0)(δ1,δ2)T
找到二次函数最小值点: ( x 1 , y 1 ) = ( x 0 , y 0 ) − f ′ ( x 0 , y 0 ) f ′ ′ ( x 0 , y 0 ) (x_1,y_1)=(x_0,y_0)-\frac{f'(x_0,y_0)}{f''(x_0,y_0)} (x1,y1)=(x0,y0)f(x0,y0)f(x0,y0)
然后,在 ( x 1 , y 1 ) (x_1,y_1) (x1,y1)处二阶泰勒展开,找到 ( x 2 , y 2 ) (x_2,y_2) (x2,y2),…,直到收敛。

五、梯度下降与牛顿法的区别

梯度下降:梯度下降是用一次函数来对目标函数进行逼近,需要设置学习率,学习率过小收敛速度慢,过大容易造成震荡不收敛;
牛顿法:牛顿法是用二次函数对目标函数的逼近,但是需要计算目标函数的二次偏导数,当参数较多时,计算和存储的开销都比较大。当目标函数非凸时,容易收敛到鞍点等其他极值为0的点。

参考:
[1]: https://baike.baidu.com/item/方向导数/8923917?fr=aladdin
[2]: https://www.jianshu.com/p/af3492b5e49c

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值