深度学习_深度学习基础知识_RAdam详解
SGD收敛较好,但是需要耗费很多时间。
Adam收敛快,但是容易陷入局部解中。
Adam的核心思想是用指数滑动平均去估计梯度每个分量的一阶矩(动量)和二阶矩(自适应学习率),并用二阶矩去normalize一阶矩,得到每一步的更新量:
其中,是一阶矩(动量),是二阶矩(自适应学习率),是学习率,是偏差修正项(bias correction),防止除零错误以及控制更新量的最大scale,是参数更新量,和是指数滑动平均的超参,越小说明倾向于局部平均。
RAdam指出在训练初期Adam中的方差会非常大,而起到修正更新方向的作用,因此Adam参数的更新量的方差也会非常大。
Radam使用预热(warmup)的方法来解决Adam容易收敛到局部最优解的问题,作者前期选用比较稳的SGD + Momentum来进行训练,来稳定缩小方差。
下面是RAdam的算法流程:
和Adam一样,使用的是滑动平均的方法。而在训练初期的时候,切换到SGD + Momentum进行预热。