梯度下降算法及其改进

1.梯度和梯度值

一个函数f(x,y,z),求其在x,y,z上的偏导\frac{\partial f}{\partial x},\frac{\partial f}{\partial y},\frac{\partial f}{\partial z},比如要求其在M(a,b,c)上的梯度,则将a,b,c带入(\frac{\partial f}{\partial x},\frac{\partial f}{\partial y},\frac{\partial f}{\partial z})中,可以得到一个新的向量(A,B,C),那么这个新的向量就是梯度。梯度值就是这个向量的模,即\sqrt{A^{2}+B^{2}+C^{2}}


2.梯度下降算法

给定f(x)和初始点x_{0}

重复执行以下过程直到满足条件

\Delta x_{t}=-\bigtriangledown f(x_{t})       这里的\bigtriangledown f(x_{t})就是求x_{t}的梯度

x_{t+1}=xt+\eta \Delta x_{t}       \eta是学习率

普通梯度下降容易陷入局部最优,所以需要改进。


3.基于冲量的梯度下降算法

冲量其实叫动量更合适,加了一个冲量,也许可以冲出局部最优点。

给定f(x)、初始点x_{0}和初始动量v_{0}

重复执行以下过程直到满足条件

\Delta x_{t}=-\bigtriangledown f(x_{t})       这里的\bigtriangledown f(x_{t})就是求x_{t}的梯度

v_{t+1}=\gamma v_{t}+\eta \Delta x_{t}      其实就是在这里加了一个动量

x_{t+1}=xt+v_{t}       


4.NAG改进

这个是对基于冲量的梯度下降的改进算法。在基本梯度下降和冲量梯度下降中,都是在x_{t}处计算梯度,要是我们能够在x_{t}附近探索一下,找到一个好一点的新的点计算梯度,会更好吧?所以NAG改进就是基于这个思路来的。

给定f(x)、初始点x_{0}和初始动量v_{0}

重复执行以下过程直到满足条件

\Delta x_{t}=-\bigtriangledown f(x_{t}+\gamma v_{t})       这里的\bigtriangledown f(x_{t})就是求x_{t}的梯度

v_{t+1}=\gamma v_{t}+\eta \Delta x_{t}      其实就是在这里加了一个动量

x_{t+1}=xt+v_{t}       

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值