Глубокое обучение

Optimizers

Оптимизаторы

актуальноТекущий рабочий стандарт

Направления: Глубокое обучение · Оптимизация

Правила обновления весов по : от чистого до адаптивных методов.

Ключевые тезисы

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

Какую задачу решает

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

Три идеи покрывают почти всё, что используется на практике. Инерция () усредняет и гасит колебания поперёк оврага. Адаптивный масштаб (RMSProp) даёт каждому параметру свой шаг, деля на корень из среднего квадрата градиента. объединяет обе. добавляет четвёртую идею — честно отделяет от адаптивного масштаба.

Что делает momentum в овраге

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

Подробный разбор

2 подтемы — объяснения, формулы, примеры и интерактивные графики.

Обозначения
  • скорость обучения — длина шага оптимизатора
  • коэффициент сглаживания (инерции)
  • веса модели — то, что подбирается при обучении
Обозначения
  • скорость обучения — длина шага оптимизатора
  • коэффициент сглаживания (инерции)
  • малая константа для численной устойчивости
  • скользящие средние градиента и его квадрата в адаптивных оптимизаторах
  • веса модели — то, что подбирается при обучении
методSGD
шагов сделано30
f(x, y)0.2153
‖(x, y)‖0.656
Оптимизатор
Один овраг, три метода: SGD зигзагует поперёк, momentum разгоняется вдоль дна, Adam выравнивает шаги по осям

  • Трансформеры и LLM — , warmup + cosine decay, 0.01–0.1.
  • Компьютерное зрение (свёртки) — с 0.9 часто даёт лучшую обобщающую способность.
  • Быстрый прототип — с lr : почти всегда «просто работает».
  • Табличные нейросети — плюс сильная ; часто проще взять .
На практике

Если обучение расходится в первые сотни шагов, первым делом уменьшайте и добавляйте warmup — это лечит больше проблем, чем смена архитектуры.

Где применяется

  • и с warmup и косинусным спадом — фактически безальтернативный рецепт.
  • с 0.9 при длинном обучении часто даёт лучшую обобщающую способность, чем .
  • с очень маленькой скоростью (…), чтобы не разрушить предобученные веса.
  • Разреженные Adagrad и его родня хорошо работают там, где часть встречается редко: редкие получают большие шаги.

Плюсы, минусы и альтернативы

Плюсы

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

Минусы

  • хранит два дополнительных состояния на параметр: памяти нужно втрое больше, чем на сами веса.
  • иногда обобщает хуже с — на классических свёрточных задачах это воспроизводимый эффект.
  • Без warmup на старте способен сделать разрушительно большой шаг.
  • становится больше: , , , , расписание.
  • Ни один не спасает от плохой инициализации, отсутствия или неверного лосса.

Брать, если

  • Начинайте с : это разумный выбор по умолчанию для любой новой задачи.
  • Длинное обучение свёрточной сети с большим бюджетом — пробуйте с и косинусным спадом.
  • Память на пределе — смотрите на с уменьшенным состоянием (8-битный , Adafactor).

Не брать, если

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

Чем заменяют

Тема также относится к главам:Оптимизация обученияМетоды

Видеолекции

Тайм-кода именно на эту тему в записях нет. Но глава «Глубокое обучение» разобрана в курсах целиком — с той оговоркой, что место в записи придётся искать самому.

Связанные темы

Нейросеть по кирпичикам · Оптимизаторы

Optimization85%

Оптимизация · Основы

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

Gradient Descent85%

Градиентный спуск · Оптимизация обучения

Итеративный шаг против градиента функции потерь — базовый алгоритм обучения.

SGD85%

Стохастический градиентный спуск · Оптимизация обучения

Градиент оценивается по мини-батчу: быстрее, шумнее и, как оказалось, полезнее для обобщения.

Momentum85%

Момент · Оптимизация обучения

Накопление экспоненциального среднего градиентов — движение по инерции сквозь колебания.

Adam85%

Adam · Оптимизация обучения

Адаптивный метод: хранит средние градиента и его квадрата, подбирая шаг для каждого параметра.

AdamW85%

AdamW · Оптимизация обучения

Adam с корректно отделённым weight decay — регуляризация применяется к весам, а не к градиенту.

RMSProp85%

RMSProp · Оптимизация обучения

Нормирует шаг на скользящее среднее квадратов градиента, выравнивая масштаб обновлений.

Learning Rate Scheduling85%

Расписание скорости обучения · Оптимизация обучения

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

Batch size85%

Размер батча · Оптимизация обучения

Число объектов на одно обновление весов: влияет на скорость, память и качество обобщения.

Perceptron80%

Перцептрон · Глубокое обучение

Простейший нейрон: взвешенная сумма входов и пороговая функция. Исторический старт всей области.

MLP80%

Многослойный перцептрон · Глубокое обучение

Несколько полносвязных слоёв с нелинейностями — универсальный аппроксиматор функций.

Activation functions80%

Функции активации · Глубокое обучение

Нелинейности между слоями, без которых сеть не сложнее линейной модели.

Loss functions80%

Функции потерь · Глубокое обучение

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

Backpropagation80%

Обратное распространение ошибки · Глубокое обучение

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

Logistic Regression80%

Логистическая регрессия · Классическое машинное обучение

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

Проверить себя

Тема встречается в тесте по направлениям — ошибки приведут обратно на эту страницу.

Следующий шагПроверить себя: Глубокое обучениеТема встречается в этом тесте 1 раз. Ошибка приведёт обратно на эту страницу — с объяснением, что именно не сошлось.Перейти →

Глава «Глубокое обучение» последний раз правилась . Нашли ошибку — напишите.