Мониторинг сходимости
Для анализа сходимости метода стохастического градиентного спуска важно смотреть на динамику потерь на каждой итерации алгоритма. Особенно это важно при долгой и трудоёмкой настройке нейросетей, чтобы на ранней стадии оптимизации увидеть некорректную настройку определённых параметров. Поскольку в стохастическом градиентном спуске сдвиг весов производится на антиградиент по случайному минибатчу объектов, то и величина этого сдвига будет подвержена случайным колебаниям, как в примере ниже:
Для большей наглядности нам хотелось бы отслеживать сглаженную версию этой динамики, показанную зелёной кривой. Для этого существуют два подхода - скользящее среднее и экспоненциальное сглаживание. Оба метода на вход принимают зашумлённый временной ряд (в нашем случае - потерь на объектах минибатча), а на выходе выдают его сглаженную версию , причем сглаживание осуществляется динамически в каждый момент времени.
Скользящее среднее
Идея скользящего среднего заключается в выдаче усреднения по последним наблюдениям:
Это среднее можно эффективно пересчитывать по формуле
Вначале, пока наблюдений еще не накоплены, нужно усреднять по всем располагаемым наблюдениям.
Экспоненциальное сглаживание
Экспоненциальное сглаживание вычисляет сглаженную версию временного ряда по следующей формуле:
Как влияет на степень сглаживания?
Увеличение приводит к меньшей адаптации для новых данных, и выходной временной ряд получается более гладким. Уменьшение уменьшает сглаживание. В частности, когда , сглаженный ряд совпадает с исходным.
Если рекуррентно переписать зависимость только от , то получим, что экспоненциальное сглаживание выдаёт взвешенное усреднение по всем прошлым наблюдениям с экспон енциально убывающими весами: