目录
前言
本章主要介绍神经网络中的寻找最优参数的最优化方法,权重参数的初始值,超参数的设置方法
1SGD
1.1 参数的更新
之前学习到的随机最优梯度下降法(SGD)
将SGD类
截图
在上面的代码中出现的optimizer是进行最优化的人的意思,
通过单独实现最优化的类,功能的模块化会变得简单,后面的最优化方法Monmentum也会实现update方法,
1.2 SGD 的缺点
我们知道SGD是朝着梯度的方向移动的,但是梯度的方向并不是最小值的方向
下面将介绍Momentum、AdaGrad,Adam这些方法
2Momentum
3AdaGrad
在神经网络的学习中,学习率过小会耗费过多的时间,学习率过大会导致学习发散不能正确进行
AdaGrad 会为每个参数适当的调整学习率。h 表示过去学习梯度的平方和,随着学习的深入,更新的幅度会变得越来越小,实际上,如果无止境的进行学习,更新速度就会变成0,
为了改善这个问题,我们提出了RMSprop方法,RMSprop并不是将过去所有梯度相加,而是逐渐遗忘过去的梯度,在做加法运算的时候将新梯度的信息反映出来,呈现指数型的减小过去的梯度。
4 Adam
Momentum参照小球在碗中滚动的物理规则进行移动,AdaGrad为参数的每个元素来适当的调整步伐。Adam 就是将这两种方法融合在一起,相比Momentum小球摆动的幅度减小了。
Adam会预先设定几个参数,学习率,一次Momentum=0.9,二次Momentum=