Мониторинг сходимости стохастического градиента

Материал из MachineLearning.

Перейти к: навигация, поиск

Мониторинг сходимости стохастического градиента — совокупность методов, позволяющих во время обучения модели оценивать ход стохастической оптимизации, обнаруживать расходимость, переобучение и выход на плато, а также принимать решение об остановке обучения.

В отличие от обычного градиентного спуска, стохастический градиент вычисляется по одному объекту или небольшой случайной подвыборке. Поэтому значения функции потерь и градиента меняются не только из-за движения параметров к минимуму, но и из-за случайного состава очередного мини-пакета. Непосредственное сравнение соседних значений потерь часто не позволяет определить, улучшается ли модель.

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

Содержание

Постановка задачи

Пусть дана обучающая выборка


X^\ell=\{x_1,\ldots,x_\ell\},

параметрическая модель a(x,w) с вектором параметров w и регуляризованный эмпирический риск


Q(w)=
\frac{1}{\ell}
\sum_{i=1}^{\ell}L(w,x_i)
+\tau R(w),

где L(w,x_i) — функция потерь на объекте x_i, R(w) — регуляризатор, а \tau — коэффициент регуляризации.

В полном градиентном методе на каждой итерации вычисляется градиент по всей выборке:


\nabla Q(w)=
\frac{1}{\ell}
\sum_{i=1}^{\ell}\nabla L(w,x_i)
+\tau\nabla R(w).

Если выборка велика, такой шаг может быть слишком дорогим. В методе стохастического градиента используется один случайный объект или мини-пакет B_t:


g_t=
\frac{1}{|B_t|}
\sum_{i\in B_t}\nabla L(w_t,x_i)
+\tau\nabla R(w_t),


w_{t+1}=w_t-h_tg_t,

где h_t — градиентный шаг, или темп обучения.

При случайном выборе мини-пакетов вектор g_t является шумной оценкой полного градиента. Аналогично, значение


L_t=
\frac{1}{|B_t|}
\sum_{i\in B_t}L(w_t,x_i)

является шумной оценкой текущего качества модели.

Почему значение потерь колеблется

Даже при правильном ходе обучения последовательность L_1,L_2,\ldots обычно не убывает монотонно. Причинами колебаний являются:

  • случайный состав мини-пакетов;
  • различная сложность объектов;
  • наличие выбросов и ошибочной разметки;
  • изменение градиентного шага;
  • случайные преобразования данных;
  • использование Dropout и других стохастических компонентов;
  • изменение параметров модели между соседними измерениями.

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

Для оценки общего направления изменения функции потерь применяют усреднение.

Накопленное среднее

Простейший способ сглаживания — среднее арифметическое всех наблюдавшихся потерь:


\overline{L}_t=
\frac{1}{t}
\sum_{j=1}^{t}L_j.

Его можно вычислять рекуррентно, не сохраняя всю историю:


\overline{L}_t=
\frac{1}{t}L_t+
\left(1-\frac{1}{t}\right)\overline{L}_{t-1}.

Преимущество этой формулы состоит в постоянных затратах памяти и вычислений.

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

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

Среднее по последним K итерациям определяется формулой


M_t=
\frac{1}{K}
\sum_{j=0}^{K-1}L_{t-j}.

При наличии сохранённой истории оно обновляется рекуррентно:


M_t=
M_{t-1}+
\frac{L_t-L_{t-K}}{K}.

Параметр K определяет ширину окна. Малое окно быстро реагирует на изменения, но слабо подавляет шум. Большое окно даёт более гладкую кривую, но обнаруживает изменения с задержкой.

Недостатком является необходимость хранить последние K значений.

Экспоненциальное скользящее среднее

Часто для мониторинга функции потерь используется экспоненциальное скользящее среднее:


S_t=
\lambda L_t+
(1-\lambda)S_{t-1},
\qquad 0<\lambda\leq 1.

После раскрытия рекурсии получается


S_t=
\lambda L_t+
\lambda(1-\lambda)L_{t-1}+
\lambda(1-\lambda)^2L_{t-2}
+\ldots

Таким образом, недавние наблюдения получают больший вес, а влияние старых значений экспоненциально уменьшается.

При малом \lambda среднее изменяется медленно и сильно сглаживает шум. При большом \lambda оно быстрее реагирует на новые данные, но становится менее устойчивым.

Приближённую длину учитываемой истории можно оценить как


K_{\mathrm{eff}}\approx\frac{1}{\lambda}.

Например, при \lambda=0{,}01 существенное влияние оказывают примерно последние сто наблюдений.

Период полураспада веса прошлых наблюдений равен


T_{1/2}=
\frac{\ln 2}{-\ln(1-\lambda)}.

Это количество итераций, через которое вес наблюдения уменьшается приблизительно в два раза.

Следует учитывать, что в некоторых источниках используется другая запись:


S_t=\beta S_{t-1}+(1-\beta)L_t.

В ней коэффициент \beta соответствует величине 1-\lambda. Поэтому фраза «увеличить коэффициент сглаживания» без указания формулы может быть неоднозначной.

Коррекция начального смещения

Если положить S_0=0, то в начале обучения экспоненциальное среднее будет занижено. Сумма накопленных весов после t итераций равна


1-(1-\lambda)^t.

Для устранения начального смещения применяется поправка


\widehat{S}_t=
\frac{S_t}
{1-(1-\lambda)^t}.

Другой простой вариант — инициализировать среднее первым наблюдением:


S_1=L_1.

При мониторинге длительного обучения начальное смещение обычно быстро становится малым, но оно может быть заметно при очень небольшом \lambda.

Что следует измерять

Одного значения функции потерь недостаточно для надёжного вывода о сходимости. Обычно одновременно отслеживают несколько величин.

Потери на обучающей выборке

Обучающая функция потерь показывает, насколько хорошо модель подстраивается под данные, используемые для оптимизации.

Полезно сохранять:

  • потери на текущем мини-пакете;
  • экспоненциальное среднее потерь;
  • среднюю потерю за эпоху;
  • минимальную и максимальную потерю за заданный промежуток;
  • отдельные слагаемые сложной функции потерь.

Средняя потеря за эпоху не всегда равна значению эмпирического риска в конце эпохи. Во время прохода по данным параметры модели изменяются, поэтому потери для первых и последних объектов вычисляются при разных значениях w.

Для точной оценки Q(w) необходимо отдельно применить фиксированную модель ко всей выборке без обновления параметров.

Потери на валидационной выборке

Валидационная выборка не используется для вычисления градиентов. Через заданные интервалы на ней оценивается качество текущей модели:


Q_{\mathrm{val}}(w_t)=
\frac{1}{m}
\sum_{i=1}^{m}
L(w_t,x_i^{\mathrm{val}}).

Валидационная ошибка позволяет отличать оптимизацию обучающего критерия от улучшения обобщающей способности.

Характерная картина переобучения:

  • обучающая ошибка продолжает уменьшаться;
  • валидационная ошибка сначала уменьшается;
  • затем валидационная ошибка начинает расти.

Для сравнения моделей на валидации обычно используют целевую функцию потерь без добавления регуляризационного штрафа. Регуляризатор необходим для обучения, но качество предсказаний должно оцениваться по критерию прикладной задачи. Исключение составляют случаи, когда сложность модели или стоимость её применения непосредственно входят в целевую метрику.

Норма градиента

В детерминированной гладкой оптимизации необходимым условием локального минимума является


\|\nabla Q(w)\|\approx 0.

Поэтому можно отслеживать норму стохастического градиента:


G_t=\|g_t\|.

Из-за шума отдельные значения G_t обычно не стремятся точно к нулю. Для них также применяют сглаживание:


\overline{G}_t=
\lambda G_t+
(1-\lambda)\overline{G}_{t-1}.

Малая норма стохастического градиента не всегда означает достижение хорошего решения. Она может возникнуть из-за:

  • слишком малого градиентного шага;
  • насыщения нелинейных функций;
  • плохого масштабирования признаков;
  • исчезающих градиентов;
  • попадания в седловую область;
  • ошибки в реализации вычисления градиента.

Норма обновления параметров

Изменение параметров на итерации равно


\Delta w_t=w_{t+1}-w_t.

Абсолютная норма \|\Delta w_t\| зависит от масштаба параметров. Поэтому часто используется относительное изменение


D_t=
\frac{\|w_{t+1}-w_t\|}
{\|w_t\|+\varepsilon},

где \varepsilon>0 предотвращает деление на ноль.

Если D_t длительное время остаётся очень малым, параметры почти не меняются. Однако причиной может быть как сходимость, так и слишком маленький темп обучения.

Норма параметров

Полезно отслеживать величину


W_t=\|w_t\|.

Резкий рост нормы параметров может указывать на расходимость, слишком большой шаг, плохую обусловленность задачи или отсутствие необходимой регуляризации.

Для некоторых моделей важны нормы параметров отдельных слоёв, а не только общая норма.

Прикладные метрики

Функция потерь оптимизируется алгоритмом, но не всегда совпадает с показателем, который важен в прикладной задаче.

Дополнительно могут измеряться:

  • доля правильных ответов;
  • точность и полнота;
  • F_1-мера;
  • площадь под ROC-кривой;
  • средняя абсолютная ошибка;
  • коэффициент детерминации;
  • метрики ранжирования;
  • время и стоимость применения модели.

Прикладную метрику следует вычислять на фиксированной валидационной выборке. Сравнение значений на случайных мини-пакетах может быть ненадёжным.

Критерии остановки

Универсального критерия, подходящего для всех задач, не существует. На практике объединяют несколько условий.

Ограничение числа итераций

Заранее задаётся максимальное число обновлений, эпох или обработанных объектов:


t\geq t_{\max}.

Такое ограничение не доказывает сходимость, но защищает от бесконечного обучения и неконтролируемого расхода ресурсов.

Малое изменение сглаженной функции потерь

Обучение может быть остановлено, если относительное изменение сглаженных потерь мало:


\frac{|S_t-S_{t-k}|}
{|S_{t-k}|+\varepsilon}
<\delta

на протяжении нескольких последовательных проверок.

Здесь k задаёт интервал сравнения, а \delta — порог чувствительности.

Сравнивать соседние значения обычно бессмысленно, поскольку экспоненциальное среднее по определению изменяется плавно.

Малая норма градиента

Критерий


\overline{G}_t<\delta_g

полезен в гладких задачах, но в стохастической оптимизации его следует применять осторожно. При постоянном градиентном шаге сохраняется ненулевой уровень шума, и норма градиента может не стать меньше выбранного порога.

Малое изменение параметров

Обучение прекращается, если


D_t<\delta_w

на протяжении заданного числа итераций.

Такой критерий необходимо сопоставлять с текущим градиентным шагом. После сильного уменьшения h_t параметры могут почти перестать меняться даже далеко от оптимума.

Достижение целевого качества

Если прикладная задача задаёт допустимый уровень ошибки, обучение можно завершить при достижении условия


M_{\mathrm{val}}(w_t)\geq M_{\mathrm{target}}

для максимизируемой метрики или


Q_{\mathrm{val}}(w_t)\leq Q_{\mathrm{target}}

для минимизируемой.

Ранняя остановка

Ранняя остановка основана на валидационной выборке. Во время обучения сохраняется модель с лучшим валидационным качеством.

Пусть


Q^*_{\mathrm{val}}=
\min_{s\leq t}Q_{\mathrm{val}}(w_s).

Текущее значение считается улучшением, если


Q_{\mathrm{val}}(w_t)
<
Q^*_{\mathrm{val}}-\delta,

где \delta — минимально значимое улучшение.

Если улучшения нет в течение p проверок, обучение останавливается. Параметр p называют терпением, или patience.

После остановки следует восстановить не последние параметры, а сохранённую модель с лучшим валидационным результатом.

Малое значение p может привести к преждевременной остановке из-за случайного ухудшения. Слишком большое значение увеличивает вычислительные затраты и допускает более сильное переобучение.

Обнаружение расходимости

Расходимость желательно обнаруживать раньше, чем будет исчерпан весь вычислительный бюджет.

К признакам расходимости относятся:

  • появление значений NaN или бесконечности;
  • резкий устойчивый рост функции потерь;
  • взрывной рост нормы градиента;
  • быстрый рост нормы параметров;
  • многократное превышение лучшей потери;
  • потеря численной устойчивости;
  • колебания с возрастающей амплитудой.

Простейший защитный критерий:


L_t>cL_{\mathrm{best}},

где c>1 — допустимый множитель роста. Он должен срабатывать только после нескольких наблюдений или на сглаженной величине, поскольку отдельный сложный мини-пакет может дать большую потерю без настоящей расходимости.

При появлении нечисловых значений обучение обычно прекращают немедленно. Затем проверяют:

  • величину градиентного шага;
  • масштаб входных данных;
  • наличие деления на ноль и логарифма неположительных величин;
  • численно неустойчивые экспоненты;
  • инициализацию параметров;
  • величину градиентов;
  • корректность функции потерь.

Пример алгоритма мониторинга

Ниже приведена упрощённая схема обучения с экспоненциальным сглаживанием и ранней остановкой.

инициализировать параметры w
S := 0
лучшая_ошибка := +бесконечность
лучшие_параметры := w
число_проверок_без_улучшения := 0

для t = 1, ..., t_max:
    выбрать случайный мини-пакет B_t

    вычислить потерю L_t и градиент g_t

    если L_t или g_t не являются конечными:
        остановить обучение как разошедшееся

    w := w - h_t g_t

    S := lambda * L_t + (1 - lambda) * S

    через заданное число итераций:
        вычислить Q_val на фиксированной
        валидационной выборке

        если Q_val < лучшая_ошибка - min_delta:
            лучшая_ошибка := Q_val
            лучшие_параметры := w
            число_проверок_без_улучшения := 0
        иначе:
            число_проверок_без_улучшения += 1

        если число_проверок_без_улучшения >= patience:
            остановить обучение

восстановить лучшие_параметры

В реальных системах дополнительно сохраняют текущий градиентный шаг, номер эпохи, норму градиента, норму параметров и состояние оптимизатора.

Частота измерений

Потери на мини-пакете обычно доступны на каждой итерации, поскольку они уже вычисляются для градиентного шага.

Полная проверка на обучающей или валидационной выборке значительно дороже. Поэтому её проводят:

  • после каждой эпохи;
  • через фиксированное число итераций;
  • после обработки фиксированного числа объектов;
  • при существенном изменении сглаженной обучающей потери;
  • перед уменьшением градиентного шага.

Слишком редкие проверки могут пропустить момент начала переобучения. Слишком частые увеличивают стоимость обучения и усиливают влияние случайных колебаний валидационной оценки.

Частоту лучше задавать через количество обработанных объектов, а не только через число итераций. При изменении размера мини-пакета одна итерация соответствует разному объёму данных.

Типичные ошибки мониторинга

Остановка по одному случайному мини-пакету

Большая потеря на отдельном мини-пакете может быть вызвана его сложным составом. Решение об остановке следует принимать по сглаженной статистике или фиксированной контрольной выборке.

Использование тестовой выборки

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

Сравнение несопоставимых значений

Потери нельзя непосредственно сравнивать, если менялись:

  • размер мини-пакета и способ усреднения;
  • функция потерь;
  • состав данных;
  • предварительная обработка;
  • режим работы модели;
  • веса классов.

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

Остановка только по обучающей ошибке

Низкая обучающая ошибка не гарантирует хорошего качества на новых объектах. Более того, переобученная модель может продолжать уменьшать обучающую ошибку после ухудшения валидационного качества.

Чрезмерное сглаживание

При слишком малом \lambda экспоненциальное среднее реагирует на изменения с большой задержкой. Быстрая расходимость или начало переобучения могут быть обнаружены слишком поздно.

Недостаточное сглаживание

При слишком большом \lambda сглаженная кривая почти повторяет шумные значения мини-пакетов. Это приводит к ложным срабатываниям критериев остановки.

Игнорирование градиентного шага

Плато функции потерь может означать не сходимость, а неправильный темп обучения. Слишком большой шаг вызывает колебания, а слишком малый — почти полное прекращение прогресса.

Сходимость оптимизации и качество модели

Следует различать два вопроса:

  1. сошёлся ли алгоритм оптимизации;
  2. получена ли хорошая модель.

Оптимизатор может успешно минимизировать выбранную функцию потерь, но сама постановка задачи может быть неудачной. Причинами низкого прикладного качества могут быть:

  • неподходящая функция потерь;
  • нерепрезентативная выборка;
  • ошибки в разметке;
  • недостаточное признаковое описание;
  • слишком простая модель;
  • различие обучающего и рабочего распределений;
  • неверно выбранная прикладная метрика.

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

Поэтому решение об остановке должно учитывать и численные признаки сходимости, и качество на независимых данных.

Практический протокол

Для большинства задач обучения с учителем можно использовать следующий протокол:

  1. На каждой итерации измерять потерю на мини-пакете.
  2. Сглаживать её экспоненциальным средним.
  3. С заданной периодичностью оценивать модель на фиксированной валидационной выборке.
  4. Сохранять модель с лучшим валидационным результатом.
  5. Отслеживать норму градиента, норму параметров и относительный размер обновления.
  6. Немедленно останавливать обучение при появлении нечисловых значений.
  7. Использовать максимальный вычислительный бюджет как защитное ограничение.
  8. Применять раннюю остановку с минимальным значимым улучшением и терпением.
  9. После остановки восстанавливать лучший сохранённый вариант модели.
  10. Оценивать итоговое качество один раз на независимой тестовой выборке.

Такой протокол не доказывает математическую сходимость, но позволяет контролировать наиболее распространённые практические проблемы стохастического обучения.

Отличие от усреднения градиентов и параметров

Экспоненциальное сглаживание функции потерь используется для наблюдения за ходом обучения. Оно само по себе не изменяет параметры модели.

Не следует смешивать его с другими методами:

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

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

Заключение

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

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

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

См. также

Литература

  • Robbins H., Monro S. A Stochastic Approximation Method // The Annals of Mathematical Statistics. — 1951. — Т. 22. — № 3. — С. 400—407.
  • Bottou L., Curtis F. E., Nocedal J. Optimization Methods for Large-Scale Machine Learning // SIAM Review. — 2018. — Т. 60. — № 2. — С. 223—311.
  • Prechelt L. Automatic Early Stopping Using Cross Validation: Quantifying the Criteria // Neural Networks. — 1998. — Т. 11. — № 4. — С. 761—767.
  • Hastie T., Tibshirani R., Friedman J. The Elements of Statistical Learning. — 2nd edition. — Springer, 2009. — ISBN 978-0-387-84857-0
Личные инструменты