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

Обрезка градиента

Решаемая проблема

Нейросети моделируют сложные нелинейные зависимости, вследствие чего рельеф функции потерь может быть сложным и подверженным резким изменениям, как показано на рисунке (источник):

Поскольку при итеративной настройке сети веса сдвигаются в сторону антиградиента (градиента функции потерь со знаком минус), а сам градиент ведёт себя нестабильно для функции с резкими изменениями, это приводит к нестабильному обучению, как показано на рисунке выше синими стрелками, отображающими изменение весов.

Обрезка градиента

Обрезка градиента (gradient clipping, [1]) - популярная процедура, повышающая стабильность обучения. Поскольку при изменчивом ландшафте функции потерь могут возникать большие по норме градиенты, то перед каждым обновлением весов в методе стохастического градиентного спуска норма градиента сравнивается с порогом λ\lambda. Если норма меньше порога, то веса обновляются как обычно, а если больше - то норма градиента, на который осуществляется сдвиг, ограничивается величиной λ\lambda:

w{wεwL(y^i,yi),если wL(y^i,yi)<λwελwL(y^i,yi)wL(y^i,yi)если wL(y^i,yi)λw\to\begin{cases} w-\varepsilon\nabla_{w}\mathcal{L}(\widehat{y}_{i},y_{i}), & \text{если }\left\lVert \nabla_{w}\mathcal{L}(\widehat{y}_{i},y_{i})\right\rVert <\lambda\\ w-\varepsilon\lambda\frac{\nabla_{w}\mathcal{L}(\widehat{y}_{i},y_{i})}{\left\lVert \nabla_{w}\mathcal{L}(\widehat{y}_{i},y_{i})\right\rVert } & \text{если }\left\lVert \nabla_{w}\mathcal{L}(\widehat{y}_{i},y_{i})\right\rVert \ge\lambda \end{cases}

Этот приём позволил существенно повысить стабильность и скорость настройки рекуррентных нейронных сетей.

Адаптивная обрезка градиента

Проблемой использования обрезки градиента является необходимость выбора единого порога λ\lambda, который вряд ли будет оптимальным для всех весов, поскольку одни веса изменяются в широком, а другие - в узком диапазоне значений. Поэтому лучше использовать адаптивное ограничение градиента (adaptive gradient clipping, [2]):

w{wεwL(y^i,yi),если wL(y^i,yi)/w<λwελwwL(y^i,yi)wL(y^i,yi)если wL(y^i,yi)/wλw\to\begin{cases} w-\varepsilon\nabla_{w}\mathcal{L}(\widehat{y}_{i}, y_{i}), & \text{если }\left\lVert \nabla_{w}\mathcal{L}(\widehat{y}_{i},y_{i})\right\rVert /\left\Vert w\right\Vert <\lambda\\ w-\varepsilon\lambda\left\Vert w\right\Vert \frac{\nabla_{w}\mathcal{L}(\widehat{y}_{i},y_{i})}{\left\lVert \nabla_{w}\mathcal{L}(\mathbf{\widehat{y}_{i}},y_{i})\right\rVert } & \text{если }\left\lVert \nabla_{w}\mathcal{L}(\widehat{y}_{i},y_{i})\right\rVert /\left\Vert w\right\Vert \ge\lambda \end{cases}

Теперь λ\lambda контролирует ограничение на максимальное относительное изменение весов, поэтому выбор порога упрощается. Однако порог по-прежнему единый как для сильно, так и для слабо изменяющихся отдельных весов. Поэтому лучше работает адаптивное ограничение градиента для каждого веса wiw_i (и его градиента) в отдельности:

wi{wiεwiL(y^i,yi),если wiL(y^i,yi)/wi<λwiελwiwiL(y^i,yi)wiL(y^i,yi)если wiL(y^i,yi)/wiλw_{i}\to\begin{cases} w_{i}-\varepsilon\nabla_{w_{i}}\mathcal{L}(\widehat{y}_{i},y_{i}), & \text{если }\left\lVert \nabla_{w_{i}}\mathcal{L}(\widehat{y}_{i},y_{i})\right\rVert /\left\Vert w_{i}\right\Vert ^{*}<\lambda\\ w_{i}-\varepsilon\lambda\left\Vert w_{i}\right\Vert ^{*}\frac{\nabla_{w_{i}}\mathcal{L}(\widehat{y}_{i},y_{i})}{\left\lVert \nabla_{w_{i}}\mathcal{L}(\widehat{y}_{i},y_{i})\right\rVert } & \text{если }\left\lVert \nabla_{w_{i}}\mathcal{L}(\widehat{y}_{i},y_{i})\right\rVert /\left\Vert w_{i}\right\Vert ^{*}\ge\lambda \end{cases}

где wi=max(wi,ν),ν=103\left\lVert w_{i}\right\rVert ^{*}=\max\left(\left\lVert w_{i}\right\rVert ,\nu\right),\nu=10^{-3} - гиперпараметр для исключения деления на ноль и нулевых изменений весов при их инициализации нулём.

Замена батч-нормализации в сети ResNet (для классификации изображений) адаптивным ограничением градиента позволило обучить сеть быстрее и с более высоким качеством.

Литература

  1. Pascanu R., Mikolov T., Bengio Y. On the difficulty of training recurrent neural networks //International conference on machine learning. – Pmlr, 2013. – С. 1310-1318.
  2. Brock A. et al. High-performance large-scale image recognition without normalization //International conference on machine learning. – PMLR, 2021. – С. 1059-1071.