深度模型中的优化算法
2017-08-29 16:59
218 查看
某猪场的笔试题问到了深度学习中的优化算法,由于准备不足扑街了,后来补了一下这方面的知识,整理如下:
实践中,一般会线性衰减学习率直到第τ次迭代:
ϵk=(1−α)ϵ0+αϵτ
其中,α=kτ。在τ布迭代之后,一般使ϵ保持常数。
如果动量算法总是观测到梯度g,那么它会在方向−g上不停加速,直到达到最终速度,其中步长大小为:
ϵ||g||1−α
因此,α=0.9对应着最大速度10倍于梯度下降算法。
Nesterov 动量中,梯度计算在施加当前速度之后。因此,Nesterov 动量可以解释为往标准动量方法中添加了一个校正因子。
在凸批量梯度下有改进,但是在随机梯度下没有改进收敛率。
在凸优化背景下,AdaGrad算法具有一些令人满意的理论性质。
RMSProp 算法(Hinton, 2012) 修改AdaGrad 以在非凸设定下效果更好,改变梯度积累为指数加权的移动平均。
Adam通常被认为对超参数的选择相当鲁棒。
以上截图出自“花书”——Goodfellow的《深度学习》。
基本算法
随机梯度下降(SGD)
实践中,一般会线性衰减学习率直到第τ次迭代:
ϵk=(1−α)ϵ0+αϵτ
其中,α=kτ。在τ布迭代之后,一般使ϵ保持常数。
动量(momentum)
如果动量算法总是观测到梯度g,那么它会在方向−g上不停加速,直到达到最终速度,其中步长大小为:
ϵ||g||1−α
因此,α=0.9对应着最大速度10倍于梯度下降算法。
Nesterov动量
Nesterov 动量中,梯度计算在施加当前速度之后。因此,Nesterov 动量可以解释为往标准动量方法中添加了一个校正因子。
在凸批量梯度下有改进,但是在随机梯度下没有改进收敛率。
参数初始化策略
Gaussian initialization
Xavier initialization
He initialization
Batch Normlization
参数初始化部分可以参考知乎的这篇文章。自适应学习率算法
AdaGrad
在凸优化背景下,AdaGrad算法具有一些令人满意的理论性质。
RMSProp
RMSProp 算法(Hinton, 2012) 修改AdaGrad 以在非凸设定下效果更好,改变梯度积累为指数加权的移动平均。
Adam
Adam通常被认为对超参数的选择相当鲁棒。
以上截图出自“花书”——Goodfellow的《深度学习》。
相关文章推荐
- 深度学习模型的优化算法及tensorflow实现
- 【直观梳理深度学习关键概念】优化算法、调参基本思路、正则化方式等
- 训练深度模型的优化问题(一)
- 训练深度模型的优化问题(十四)
- 深度学习之几种模型的优化技术
- 吴恩达Coursera深度学习课程 DeepLearning.ai 提炼笔记(2-2)-- 优化算法
- 从修正Adam到理解泛化:概览2017年深度学习优化算法的最新研究进展
- 关于字符串转化为数字的深度优化两种算法
- 训练深度模型的优化问题(十五)
- 使用深度学习检测DGA(域名生成算法)——LSTM的输入数据本质上还是词袋模型
- 用SMO算法优化垃圾标签检测模型
- 【深度学习】常见优化算法
- 深度学习模型压缩与加速算法之SqueezeNet和ShuffleNet
- 数学模型--现代优化算法(启发式算法)
- 前沿 | 利用遗传算法优化神经网络:Uber提出深度学习训练新方式
- 深度学习笔记6:神经网络优化算法之从SGD到Adam
- 马踏棋盘问题解决-利用深度搜索和贪婪算法优化
- 训练深度模型的优化问题(二)
- 训练深度模型的优化问题(十六)
- 深度学习优化算法总结(cs231n)