Adam优化算法(Ada optimization algorithm),
在深度学习的历史上,包括许多知名研究者在内,提出了优化算法,并很好地解决了一些问题。Adam优化算法基本上就是将momentum和rmsprop结合在一起,那么来看看如何使用Adam算法。Adam代表的是adaptive moment estimation,本质上是带有动量项的RMSprop,它利用梯度的一阶矩阵估计和二阶矩估计动态调整每个参数的学习率。它的优点主要在于经过偏置校正后,每一次迭代学习率都有个确定范围,使得参数比较平稳。
Adam函数实现在torch.optim.adam.py
class Adam(Optimizer):
#Implements Adam algorithm.
def __init__(self, params, lr=1e-3, betas=(0.9, 0.999), eps=1e-8,
weight_decay=0, amsgrad=False):
参数:
params(iterable)--待优化参数的iterable或者是定义了参数组的dict
lr (float,可选),学习率(步长因子),默认le-3=0.001,控制了权重的更新比率.较大的值(如织0.3)在学习率更新前会有更快地初始学习,而较小的值如le-5会令训练收敛到更好的性能。
betas=[beta1,beta2],可选,用于计算梯度以及梯度平方的运行平均值的系数,默认为[0.9,0.999],beta1是一阶矩阵的指数衰减率,beta2是二阶矩阵的指数衰减率,该超参数在稀疏梯度&