​Flux.jl​​​ 中网络参数的更新方法为 ​​update!(opt, p, g)​​​,​​update!(opt, ps::Params, gs)​​​,其中 ​​p​​​ 或者 ​​ps​​​ 是网络的参数,​​g​​​ 和 ​​gs​​ 是参数对应的梯度。网络参数更新的优化器有很多的选择,但是大部分都是 Adam 算法的变种或者优化,下面是关于这些优化器的一些介绍和参数的意义,详细的可以去看不同算法的论文深入了解。

1、:最原始的梯度下降优化器,参数 为学习率。对于每一个参数 以及对应的梯度 ,会执行 .

2、:带有动量的梯度下降算法。 控制梯度下降在主要方向上的加速度,可以看成是一个阻尼。

3、:带有 Nesterov 动量的梯度下降算法。 控制梯度下降在主要方向上的加速度,可以看成是一个阻尼。

4、:RMSProp 算法,通常在循环网络上使用,除了学习率 之外其他的参数通常不用调参。

5、:ADAM 算法, 为动量的衰减系数,是一个 Tuple 分别为第一个()和第二个()动量估计的指数衰减。

6、:Rectified ADAM 算法。

7、:基于 范数的 ADAM 变种

8、:ADAGrad 算法,它具有基于其更新频率的参数特定学习率。所有的参数都不需要调整。

9、:ADADelta 是 ADAGrad 的一个版本,它根据过去的梯度更新窗口调整其学习率。参数不需要调整。 是梯度在每个时间步衰减的因子。

10、:ADAM 优化器的 AMSGrad 版本。参数不需要调整。

11、:ADAM 优化器的 Nesterov 版本。参数不需要调整

12、:ADAMW 是修正其权重衰减正则化的 ADAM 的变体。decay 参数在优化期间应用于权重的衰减。

13、:OADAM (Optimistic ADAM) 是 ADAM 的一个变体,增加了一个适合对抗性训练的「优化项」。

14、:AdaBelief 是 ADAM 优化器的变体。


参考:

[1] ​​Training, Optimisers, Document of Flux.jl

[2] ​​Geoffrey H., Nitish S. and Kevin S. Neural Networks for Machine Learning - Lecture 6a Overview of mini-batch gradient descent.​

[3] ​​Kingma, D. P. and Ba, J. Adam: A Method for Stochastic Optimization. arXiv (2014)​

[4] ​​Liu, L., Jiang, H. and He, P. et al. On the Variance of the Adaptive Learning Rate and Beyond. arXiv (2019)​

[5] ​​John D., Elad H. and Yoram S. Adaptive Subgradient Methods for Online Learning and Stochastic Optimization. J. Mach. Learn. Res. 12, 2121-2159 (2011)​

[6] ​​Matthew D. Z. ADADELTA: An Adaptive Learning Rate Method. arXiv.​

[7] ​​Sashank J. R., Satyen K. and Sanjiv K. On the Convergence of Adam and Beyond. ICLR 2018 Conference (2018)​

[8] ​​Timothy D. Incorporating Nesterov Momentum into Adam. ICLR 2016 Workshop (2016)​

[9] ​​Ilya L. and Frank H. Decoupled Weight Decay Regularization. ICLR 2019 Conference (2019)​

[10] ​​Daskalakis, C., Ilyas, A., yrgkanis, V. and Zeng, H. Training GANs with Optimism. arXiv (2017)​

[11] ​​Zhuang, J., Tang, T., Ding, Y. et al. AdaBelief Optimizer: Adapting Stepsizes by the Belief in Observed Gradients. arXiv (2020)​