Два момента и два знаменателя
Adam соединяет EMA направления и второго момента. При нулевой инициализации первые оценки смещены к0: сумма использованных EMA-весов меньше1. Для постоянного g сумма весов равна1−βᵏ, что объясняет bias correction. M06; происхождение алгоритма M09 abstract.
Все операции с векторами в последней дроби покоординатные. В лаборатории β₁=.9,β₂=.999,ε=1e−8; k начинается с1для первого update. При g=[4,6]:m₁=[.4,.6],v₁=[.016,.036]; после correction получаем[4,6] и[16,36]. Сη=.1 новыйθпочти[1.9,.9], с микроскопической поправкой epsilon.
Debug. Без correction первый шаг масштабируется примерно на.1/√.001≈3.1623 по отношению к нормированному g. Выражение eta*mhat/sqrt(vhat) + eps не равно eta*mhat/(sqrt(vhat)+eps). Важны скобки, место epsilon и номер шага.
Исследовать. Поставьте старт[0,0]. При нулевых moments и gradient все алгоритмы должны остаться вначале без NaN. Затем верните обычный старт и сравните1,10,50шагов. Adam не гарантирует лучшего результата при каждом k и не является универсально сходящимся для любых последовательностей gradients.