梯度下降法浅析

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

二维梯度定义
grad⁡f(x0,y0)=∇f(x0,y0)=fx(x0,y0)i+fy(x0,y0)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 是一个向量。
其方向如下图所示:其方向与势场(图中闭合曲线为等势线,也是曲面在平面上的投影)的法向量相同。
在这里插入图片描述
其中
∇=∂∂xi+∂∂yj\nabla=\frac{\partial}{\partial x} \boldsymbol{i}+\frac{\partial}{\partial y} \boldsymbol{j}=xi+yj 是向量微分算子或 Nobla 算子。
在这里插入图片描述
举一个特例 来验证一下:
f(x,y)=z=x2+y2f(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)=xx2+y2i+yx2+y2j\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+y2xi+x2+y2yj
∇f(22,22)=22i+22j\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)=22i+22j
∇f(−22,22)=−22i+22j\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)=22i+22j
从投影图上可以看出梯度方向(红色箭头所示)是函数在该点增长最快方向。
同理 f(x,y)=z=−x2+y2f(x, y)=z=-\sqrt{x^{2}+y^{2}}f(x,y)=z=x2+y2 投影与上一致,但是梯度方向相反。
在这里插入图片描述

2 梯度计算算法

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

同理,二元函数的计算
x1=x0−α∇f(x0,0),y1=y0−α∇f(0,y0)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(x1,y1)=f(x0−α∇f(x0,0),y0−α∇f(0,y0))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(x1,y1)−f(x0,y0)=f(x0−α∇f(x0,0),y0−α∇f(0,y0))−f(x0,y0)\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.下降步长会越来越小(与二分法一样)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值