AI学习笔记——Tensorflow中的Optimizer(优化器)

在使用Tensorflow搭建神经网络的时候,最后一步总会用到tf.train.XxxOptimizer(). 然后会有很多Optimizer()

AI学习笔记——Tensorflow中的Optimizer(优化器)

在使用Tensorflow搭建神经网络的时候,最后一步总会用到tf.train.XxxOptimizer(). 然后会有很多Optimizer()如下图

AI学习笔记——Tensorflow中的Optimizer(优化器)

其实这些Optimizer 都是优化算法下面重点介绍几个常见的

1. Gradient Decent

这是最基础的梯度下降算法,更新权重W,不多解释。

W += – α * dx

其中 α是learning rate(学习速率)。我们可以把下降的损失函数看成一个机器人,是由于在下降的时候不是均匀的,机器人会左右摇摆,所以下降速度会比较慢,有时候遇到局部最优,还可能在原地徘徊好长时间。

 

AI学习笔记——Tensorflow中的Optimizer(优化器)

2. Momentum

顾名思义这个优化算法实际上给了一个动量,让机器人下降的的时候带一个惯性,下降的速度就加快了。

算法如下:
m = b1*m – α * dx
W += m

3. AdaGrad

这个算法是通过动态改变学习速率,提高下载速度,相当于给机器人穿上一个左右侧滑有阻力的鞋子,让它只好沿着正确的方向下滑。

v = dx^2
W += -(α/sqrt(v)) * dx

4. RMSProp

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

5. Adam

Adam是目前用得最广的优化算法,它结合了AdaGrad和Momentum的优点(所以叫才Adam嘛)

m = b1m + (1-b1)dx
v = b2v + (1-b2)dx^2
W += -(α*m/sqrt(v)) * dx

这个算法相当于给机器人一个惯性,同时还让它穿上了防止侧滑的鞋子,当然就相当好用用啦。

给大家看看不同优化算法下降速度的差距

AI学习笔记——Tensorflow中的Optimizer(优化器)


文章首发steemit.com 为了方便墙内阅读,搬运至此,欢迎留言或者访问我的Steemit主页

来源:https://www.jianshu.com/p/8f9247bc6a9a

本文采用「CC BY-SA 4.0 CN」协议转载自互联网、仅供学习交流,内容版权归原作者所有,如涉作品、版权和其他问题请给「我们」留言处理。

(0)
张乐的头像张乐编辑
上一篇 2018-08-17 13:47
下一篇 2018-08-18 16:25

相关文章

关注我们
关注我们
分享本页
返回顶部