Adam (Adaptive moment estimation) представляет собой сочетание алгоритмов Gradient Descent with momentum и RMSprop.
На самом начальном этапе переменные \(V_{db}\), \(S_{db}\), \(V_{dw}\) и \(S_{dw}\) инициализируются нулями. Затем на каждой итерации \(t\) считается производная для текущей порции данных (mini-batch) и затем производится подсчёт этапа GD with momentum:
\[ \begin{aligned} V_{dw} &= \beta_1 V_{dw} +(1- \beta_1)\frac{\partial \mathcal{L}}{\partial w} \\ \\ V_{db} &= \beta_1 V_{db} +(1- \beta_1)\frac{\partial \mathcal{L}}{\partial b} \end{aligned} \]и корректируется bias:
\[ \begin{aligned} V_{dw} &= \frac{V_{dw}}{1-\beta_1^t}\\ \\ V_{db} &= \frac{V_{db}}{1-\beta_1^t} \end{aligned} \]После этого производится подсчёт этапа RMSprop:
\[ \begin{aligned} S_{dw} &= \beta_2 S_{dw}+(1-\beta_2)\bigg(\frac{\partial \mathcal{L}}{\partial w}\bigg)^2\\ \\ S_{db} &= \beta_2 S_{db}+(1-\beta_2)\bigg(\frac{\partial \mathcal{L}}{\partial b}\bigg)^2 \end{aligned} \]и также корректируется bias:
\[ \begin{aligned} S_{dw} &= \frac{S_{dw}}{1-\beta_2^t}\\ \\ S_{db} &= \frac{S_{db}}{1-\beta_2^t} \end{aligned} \]В конце производится комбинированное обновление переменных:
\[ \begin{aligned} w &:= w - \alpha\frac{V_{dw}}{\sqrt{S_{dw}}+\varepsilon}\\ \\ b &:= b - \alpha\frac{V_{db}}{\sqrt{S_{db}}+\varepsilon} \end{aligned} \]У этого алгоритма довольно много гиперпараметров. Так, гиперпараметр \(\alpha\) требует подбора, в зависимости от исходных данных. Для остальных параметров начальные, хорошо работающие значения, будут таковы:
\[ \begin{aligned} \beta_1 &= 0.9\\ \beta_2 &= 0.999\\ \varepsilon &= 10^{-8} \end{aligned} \]Diederik P. Kingma, Jimmy Ba. Adam: A Method for Stochastic Optimization. arXiv:1412.6980