神经网络参数优化器
神经网络的训练过程是通过迭代更新超参数来最小化损失函数的过程,最终目标是找到使损失函数最小,最能准确预测的超参数组合。而在更新迭代超参数时就需要用到不同的优化器,本文简要介绍几种常用的优化器。
1.优化器通用步骤
①计算t时刻损失函数关于当前参数的梯度:
②计算t时刻的一阶动量mt(与梯度相关的函数)和二阶动量Vt(与梯度平方相关的函数)
③计算t时刻下降梯度:
④更新t+1时刻参数:
各个优化器的基本步骤和原理都是这样的,优化器的区别就是一阶动量和二阶动量的设计不同。
2.SGD
SGD优化器是最常用的一种梯度下降法,是没有动量的,其一阶动量直接使用梯度,二阶动量为1,即:
因此将其带入下降梯度计算式中可得:
因此参数更新公式为:
#SGD
w1.assign_sub(lr*grads[0])
b1.assign_sub(lr*grads[1])
这里assign_sub是参数自更新的函数,grads是损失函数关于当前参数的梯度
3.SGDM
SGDM是在SGD的基础上增加了一阶动量,二阶动量仍为1,即:
因此将其带入下降梯度计算式中可得:
因此参数更新公式为:
#SGDM
m_w=beta*m_w+(1-beta)*grads