谷歌大脑提出“洗发水”二阶优化算法,Transformer训练时间减少40%
机器学习的优化步骤,目前都是一阶方法主导。
无论是SGD还是Adam,此类优化算法在都是计算损失函数的一阶导数——梯度,然后按照某种规定的方式让权重随梯度下滑方向迭代。
其实二阶梯度会有更好的特性,因为它是计算梯度的导数,能够更快地找到最合适的下降方向和速度。
然而出于计算量和存储成本的考虑,二阶优化算法很少用到。
最近,谷歌大脑提出了一种新的二阶预处理方法,带来很大改进,优于SGD、Adam和AdaGrad等一阶算法,缩短了神经网络的训练时间。它是对之前一种二阶方法洗发水算法(Shampoo algorithm)做的实用化改进。
它在Transformer训练任务中比任何一阶方法都快得多,而且能达到相同甚至更高的精度。连Jeff Dean也不禁在Twi上点赞。