美文网首页
2018-11-29 Tensorflow中的Optimizer

2018-11-29 Tensorflow中的Optimizer

作者: snow_14b5 | 来源:发表于2018-11-29 12:15 被阅读0次

    之前做textcnn模型训练的时候,最后会用到优化器,tensorflow提供了几种不同的优化函数,对比如下,参考了一篇文章,感觉写的很形象,链接:http://www.imooc.com/article/264477

    这些优化函数都是继承自Optimizer 的子函数。有时候遇到梯度消失,局部最优解导致收敛变慢的情况,可能是优化函数选择的不合适,或者激活函数不合适。
    

    几个常见的

    1. Gradient Decent
      这是最基础的梯度下降算法,更新权重W,不多解释。
      W += - α * dx
      其中 α是learning rate(学习速率)。我们可以把下降的损失函数看成一个机器人,由于在下降的时候坡度不是均匀的,机器人会左右摇摆,所以下降速度会比较慢,有时候遇到局部最优,还可能在原地徘徊好长时间。

    2. Momentum
      顾名思义这个优化算法实际上给了一个动量,让机器人下降的的时候带一个惯性,下降的速度就加快了。
      算法如下:
      m = b1*m - α * dx
      W += m

    3. AdaGrad
      这个算法是通过动态改变学习速率,提高下降速度,相当于给机器人穿上一个左右侧滑有阻力的鞋子,让它只好沿着正确的方向下滑。
      v = dx^2
      W += -(α/sqrt(v)) * dx

    1. RMSProp
      这个算法相当于在AdaGrad中引入了Momentum的惯性
      v = b1 * v + (1-b1)*dx^2
      W += -(α/sqrt(v)) * dx
      但是RMSprop缺少了Momentum的变量m

    2. Adam
      Adam是目前用得最广的优化算法,它结合了AdaGrad和Momentum的优点(所以叫才Adam嘛)
      m = b1m + (1-b1)dx
      v = b2v + (1-b2)dx^2
      W += -(α*m/sqrt(v)) * dx
      这个算法相当于给机器人一个惯性,同时还让它穿上了防止侧滑的鞋子,当然就相当好用用啦。

    相关文章

      网友评论

          本文标题:2018-11-29 Tensorflow中的Optimizer

          本文链接:https://www.haomeiwen.com/subject/kygxcqtx.html