Adam算法
Adam算法可以加快深度神经网络的训练的速度,它实际上是结合了exponentially weighted average算法和RMSprop算法,实际训练过程如下图所示:
Adam algorithm
通常情况下,需要对如下超参进行调整:
hyperparameters choice
通常情况下, β1, β2 以及ε就使用默认的就可以,但是α一般是需要调整的,而且有专门的调整α的算法。
Learning rate decay
在训练的过程中,如果是固定的Learning rate就会存在如下问题,如果Learning rate比较小那么下降就会比较慢,训练就需要很长时间;而如果设置的比较大,那么最终很难收敛到极值,如下图蓝色曲线。
learning rate problem
解决这个问题,我们可以通过动态调节learning rate α来使得在初期的时候快速下降,在接近global minimum的时候α变小,从而可以逐渐收敛到极值。如图绿色曲线。
动态收敛有很多方法,下图是一种常见的learning rate decay算法:
learning rate decay
- 如图所示,1 epoch意味着所有的样本都已经迭代了一遍;
- 通过将epoch number作为动态调节的因子,可以使得每轮epoch都会有一个新的learning rate,如图所示的公式和动态调整图
另外,动态调整α还有很多方式,如下图所示:
learning rate decay methods
大体上就是通过将epoch number或者mini-batch 的t参数作为因子,使得α逐渐减小。