Перейти к основному содержимому

Мониторинг сходимости

Для анализа сходимости метода стохастического градиентного спуска важно смотреть на динамику потерь на каждой итерации алгоритма. Особенно это важно при долгой и трудоёмкой настройке нейросетей, чтобы на ранней стадии оптимизации увидеть некорректную настройку определённых параметров. Поскольку в стохастическом градиентном спуске сдвиг весов производится на антиградиент по случайному минибатчу объектов, то и величина этого сдвига будет подвержена случайным колебаниям, как в примере ниже:

smoothed-loss.png

Для большей наглядности, нам хотелось бы отслеживать сглаженную версию этой динамики, показанную зелёной кривой. Для этого существуют два подхода - скользящее среднее и экспоненциальное сглаживание. Оба метода на вход принимают зашумлённый временной ряд ztz_t (в нашем случае - потерь на объектах минибатча), а на выходе выдают его сглаженную версию sts_t, причем сглаживание осуществляется динамически в каждый момент времени.

Скользящее среднее

Идея скользящего среднего заключается в выдаче усреднения по KK последним наблюдениям:

st=1Ki=tK+1tzts_t=\frac{1}{K}\sum_{i=t-K+1}^t z_t

Это среднее можно эффективно пересчитывать по формуле

st:=st1+ztKztKKs_t:=s_{t-1}+\frac{z_t}{K}-\frac{z_{t-K}}{K}

Вначале, пока KK наблюдений еще не накоплены, нужно усреднять по всем располагаемым наблюдениям.

Экспоненциальное сглаживание

Экспоненциальное вычисляет сглаженную версию временного ряда по следующей формуле:

{s1=z1α[0,1) - степень сглаживанияst=(1α)zt+αst1перевычисляется за O(1)\begin{cases} s_{1}=z_{1} & \alpha\in [0,1)\text{ - степень сглаживания}\\ s_{t}=(1-\alpha)z_{t}+\alpha s_{t-1} & \text{перевычисляется за }O(1) \end{cases}

Как α\alpha влияет на степень сглаживания?

Увеличение α\alpha приводит к меньшей адаптации для новых данных и выходной временной ряд sts_t получается более гладким. Уменьшение α\alpha уменьшает сглаживание. В частности, когда α=0\alpha=0, сглаженный ряд совпадает с исходным.

Если рекуррентно переписать зависимость sts_t только от zt,zt1,zt2,...z_t,z_{t-1},z_{t-2},..., то получим, что экспоненциальное сглаживание выдаёт взвешенное усреднение по всем прошлым наблюдениям с экспоненциально убывающими весами:

st=(1α)(zt+αzt2+α2zt2+α3zt3+...)s_t = (1-\alpha)(z_{t}+\alpha z_{t-2}+\alpha^{2}z_{t-2}+\alpha^{3}z_{t-3}+...)