Lookahead:快权重更新k次,慢权重更新1次.
对梯度下降算法进行的改进可分为两种,自适应学习率(如AdaGrad)和动量(如momentum)。作者提出了一种新的优化算法lookahead,与上述优化算法是正交的,可以提高任意优化算法的性能。lookahead迭代地更新两组权重,能够提高学习稳定性,降低优化器的方差,而额外的计算成本可以忽略不计。
1. Lookahead
lookahead算法维护两组权重,即慢权重(slow weight) 和快权重(fast weight) 。
快权重 是通过任意一种标准优化算法进行更新的。在第轮更新中,快权重首先被初始化为上一轮慢权重,之后进行次更新。若记批量数据为,损失函数为,则第轮中快权重的第次更新为:
慢权重 是通过在参数空间中进行线性插值得到的。快权重每经过次更新后,慢权重更新次:
慢权重也可以看作每次更新的快权重的指数滑动平均:
直观上,lookahead算法使用任何标准优化器更新“快权重”次,然后沿最终快权重的方向更新一次“慢权重”;相比于直接使用优化器更新次,运算操作数变为倍。
当快权重沿低曲率方向进行更新时,慢权重通过参数插值平滑振荡,实现快速收敛。下图显示了在CIFAR-100上优化ResNet-32模型时快权重和慢权重的更新轨迹。当快权重在极小值附近探索时,慢权重更新将推向一个测试精度更高的区域。
2. 实验分析
lookahead算法需要设置两个超参数,快权重每轮更新次数和慢权重的步长。通过对超参数不同取值的实验表明,模型对这两个超参数具有一定的鲁棒性,在实践中可以不对它们进行调整,默认。
作者绘制了在不同阶段的快权重和慢权重更新导致的损失曲线。在每个阶段中,快权重更新可能导致任务性能的大幅下降,结果具有较高的方差。慢权重通过插值降低了方差,稳定模型性能。
Related Issues not found
Please contact @0809zheng to initialize the comment