梯度下降法浅析

1 梯度方向对应函数增长最快方向

二维梯度定义
grad ⁡ f ( x 0 , y 0 ) = ∇ f ( x 0 , y 0 ) = f x ( x 0 , y 0 ) i + f y ( x 0 , y 0 ) j \operatorname{grad} f\left(x_{0}, y_{0}\right)=\nabla f\left(x_{0}, y_{0}\right)=f_{x}\left(x_{0}, y_{0}\right) \boldsymbol{i}+f_{y}\left(x_{0}, y_{0}\right) \boldsymbol{j} gradf(x0,y0)=f(x0,y0)=fx(x0,y0)i+fy(x0,y0)j 是一个向量。
其方向如下图所示:其方向与势场(图中闭合曲线为等势线,也是曲面在平面上的投影)的法向量相同。
在这里插入图片描述
其中
∇ = ∂ ∂ x i + ∂ ∂ y j \nabla=\frac{\partial}{\partial x} \boldsymbol{i}+\frac{\partial}{\partial y} \boldsymbol{j} =xi+yj 是向量微分算子或 Nobla 算子。
在这里插入图片描述
举一个特例 来验证一下:
f ( x , y ) = z = x 2 + y 2 f(x, y)=z=\sqrt{x^{2}+y^{2}} f(x,y)=z=x2+y2
画出旋转锥面 3d 图(z>=0,故实际图是 xOy 平面上半部分)
画出 f(x,y)=1 和 f(x,y)=4 在 xOy 平面上的投影是两个同心圆
在这里插入图片描述
在这里插入图片描述
求出梯度 ∇ f ( x , y ) = x x 2 + y 2 i + y x 2 + y 2 j \nabla f(x, y)=\frac{x}{\sqrt{x^{2}+y^{2}}} \boldsymbol{i}+\frac{y}{\sqrt{x^{2}+y^{2}}} \boldsymbol{j} f(x,y)=x2+y2 xi+x2+y2 yj
∇ f ( 2 2 , 2 2 ) = 2 2 i + 2 2 j \nabla f\left(\frac{\sqrt{2}}{2}, \frac{\sqrt{2}}{2}\right)=\frac{\sqrt{2}}{2} \boldsymbol{i}+\frac{\sqrt{2}}{2} \boldsymbol{j} f(22 ,22 )=22 i+22 j
∇ f ( − 2 2 , 2 2 ) = − 2 2 i + 2 2 j \nabla f\left(-\frac{\sqrt{2}}{2}, \frac{\sqrt{2}}{2}\right)=-\frac{\sqrt{2}}{2} \boldsymbol{i}+\frac{\sqrt{2}}{2} \boldsymbol{j} f(22 ,22 )=22 i+22 j
从投影图上可以看出梯度方向(红色箭头所示)是函数在该点增长最快方向。
同理 f ( x , y ) = z = − x 2 + y 2 f(x, y)=z=-\sqrt{x^{2}+y^{2}} f(x,y)=z=x2+y2 投影与上一致,但是梯度方向相反。
在这里插入图片描述

2 梯度计算算法

由 1 可知梯度方向是函数投影的方向
定义如下图函数 f ( x ) = x 2 f(x)=x^{2} f(x)=x2 求出 f(1)处下降梯度
x 1 = x 0 − α ∇ f ( x 0 ) x_{1}=x_{0}-\alpha \nabla f\left(x_{0}\right) x1=x0αf(x0)
f ( x 1 ) = f ( x 0 − α ∇ f ( x 0 ) ) f\left(x_{1}\right)=f\left(x_{0}-\alpha \nabla f\left(x_{0}\right)\right) f(x1)=f(x0αf(x0))
ε = f ( x 1 ) − f ( x 0 ) = f ( x 0 − α ∇ f ( x 0 ) ) − f ( x 0 ) \varepsilon=f\left(x_{1}\right)-f\left(x_{0}\right)=f\left(x_{0}-\alpha \nabla f\left(x_{0}\right)\right)-f\left(x_{0}\right) ε=f(x1)f(x0)=f(x0αf(x0))f(x0)
在这里插入图片描述
− ∇ f ( x ) = − ∇ x 2 = − 2 x -\nabla f(x)=-\nabla x^{2}=-2 x f(x)=x2=2x
− ∇ f ( 1 ) = − 2 -\nabla f(1)=-2 f(1)=2
其大小方向如上图所示
从图中可看出梯度下降法只有方向和模长变化趋势是可靠的,其模长大小(步长)并不可靠(跳过了最低点)这也是梯度下降法要加入学习速率的原因。

同理,二元函数的计算
x 1 = x 0 − α ∇ f ( x 0 , 0 ) , y 1 = y 0 − α ∇ f ( 0 , y 0 ) x_{1}=x_{0}-\alpha \nabla f\left(x_{0}, 0\right), y_{1}=y_{0}-\alpha \nabla f\left(0, y_{0}\right) x1=x0αf(x0,0),y1=y0αf(0,y0)
f ( x 1 , y 1 ) = f ( x 0 − α ∇ f ( x 0 , 0 ) , y 0 − α ∇ f ( 0 , y 0 ) ) f\left(x_{1}, y_{1}\right)=f\left(x_{0}-\alpha \nabla f\left(x_{0}, 0\right), y_{0}-\alpha \nabla f\left(0, y_{0}\right)\right) f(x1,y1)=f(x0αf(x0,0),y0αf(0,y0))
ε = f ( x 1 , y 1 ) − f ( x 0 , y 0 ) = f ( x 0 − α ∇ f ( x 0 , 0 ) , y 0 − α ∇ f ( 0 , y 0 ) ) − f ( x 0 , y 0 ) \varepsilon=f\left(x_{1}, y_{1}\right)-f\left(x_{0}, y_{0}\right)=f\left(x_{0}-\alpha \nabla f\left(x_{0}, 0\right), y_{0}-\alpha \nabla f\left(0, y_{0}\right)\right)-f\left(x_{0}, y_{0}\right) ε=f(x1,y1)f(x0,y0)=f(x0αf(x0,0),y0αf(0,y0))f(x0,y0)

总结:

梯度下降法与二分法处理方式类似,梯度下降法有如下优势:
1.一开始就知道下降方向,更适合作递归分解。
2.下降步长会越来越小(与二分法一样)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值