上图就是Adam算法在深度学习中更新参数时应用的详细过程,下面对一些参数进行一下说明:
1、t:更新的步数(steps)
2、:学习率,用于控制参数更新的步幅(stepsize)
3、:要求解更新的参数
4、:带有参数的目标函数,通常指损失函数
5、g:目标函数对求导的梯度
6、:一阶矩衰减系数
7、:二阶矩衰减系数
8、s:梯度g的一阶矩,即梯度g的期望
9、r:梯度g的二阶矩,即梯度的期望
10、s三角:s的偏置矫正,考虑到s在零初始值情况下向零偏置
11、r三角:r的偏置矫正,考虑到r在零初始值情况下向零偏置
上图中while循环实现了整个Adam算法在梯度下降中的优化过程
1、计算目标函数对的梯度
2、更新steps
3、计算梯度的一阶矩s,即过往梯度与当前梯度的平均,如上图s即是steps=t时的梯度一阶矩
4、计算梯度的二阶矩r,即过往梯度与当前梯度平方的平均,如上图r即是steps=t时的梯度二阶矩
5、修正梯度的一阶矩s,因为s的初始值为零,它容易向零偏置,这样处理后会减少这种偏置的影响,其公式中的是指beat1的t次方
6、修正梯度的二阶矩r,因为r的初始值为零,它容易向零偏置,这样处理后会减少这种偏置的影响。
7、更新参数,可以将看成更新参数的学习率,s三角:看成更新参数的梯度