实现Adam算法。
它在Adam: A Method for Stochastic Optimization中被提出。
参数:
float
, 可选) – 学习率(默认:1e-3)float
, float
], 可选) – 用于计算梯度以及梯度平方的运行平均值的系数(默认:0.9,0.999)float
, 可选) – 为了增加数值计算的稳定性而加到分母里的项(默认:1e-8)float
, 可选) – 权重衰减(L2惩罚)(默认: 0)个人理解:
lr:同样也称为学习率或步长因子,它控制了权重的更新比率(如 0.001)。较大的值(如 0.3)在学习率更新前会有更快的初始学习,而较小的值(如 1.0E-5)会令训练收敛到更好的性能。
betas = (beta1,beta2)
beta1:一阶矩估计的指数衰减率(如 0.9)。
beta2:二阶矩估计的指数衰减率(如 0.999)。该超参数在稀疏梯度(如在 NLP 或计算机视觉任务中)中应该设置为接近 1 的数。
eps:epsilon:该参数是非常小的数,其为了防止在实现中除以零(如 10E-8)。
读者可结合官方文档中的参数说明和我的个人理解掌握该函数的用法。