Learning Rate Grafting: как эффективно скрестить оптимизаторы в нейросетях

Yannic Kilcher 15,8 тыс. 39 мин 2 мин 20.11.2021
Главное

Оптимизатор «Графтинг»: как разделить направление и шаг обучения в нейросетях 0:00

Исследователь и ведущий YouTube-канала Янник Килчер (Yannic Kilcher) представил обзор научной работы, посвященной технике «графтинга» (grafting) — методу, который позволяет переносить график скорости обучения (learning rate) из одного оптимизатора в другой. Авторы статьи, чьи имена были деанонимизированы Килчером в ходе обзора, исследуют фундаментальные различия между адаптивными методами оптимизации и классическим стохастическим градиентным спуском (SGD). Основная идея заключается в том, что успех многих современных методов, таких как Adam или AdaGrad, во многом объясняется специфическим графиком изменения шага обучения, который они генерируют «на лету», а не только уникальными направлениями поиска минимума.

🛠 Метод «графтинга»: как это работает 7:32

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

  1. Направление (Direction): Определяется одним оптимизатором (например, SGD).
  2. Величина шага (Magnitude): Определяется другим оптимизатором (например, Adam).

Алгоритм работает следующим образом: оба оптимизатора получают на вход текущие веса и градиенты и независимо вычисляют предлагаемые шаги. Затем система вычисляет нормы этих шагов и нормализует «направляющий» оптимизатор, чтобы он двигался в заданном направлении, но с «масштабом» (размером шага), предложенным вторым методом.

По словам Килчера, это позволяет, например, использовать простоту и эффективность SGD, добавив ему «умный» график скорости обучения от Adam, при этом не тратя дополнительные ресурсы памяти на хранение состояний Adam.

📉 Аналитика и результаты экспериментов 26:42

В ходе экспериментов, описанных в работе, выяснилось несколько ключевых моментов:

🚀 Практическое применение: извлечение коррекций 31:43

Один из наиболее прикладных результатов исследования заключается в возможности «заморозки» полученных знаний. Авторы предлагают:

  1. Запустить процесс обучения на нескольких тысячах шагов (например, 2000 для архитектуры BERT), используя оба оптимизатора одновременно.
  2. Вычислить медианное соотношение норм шагов между оптимизаторами для каждого слоя нейросети.
  3. В дальнейшем использовать только SGD, применяя к нему зафиксированные коэффициенты коррекции скорости обучения для каждого слоя.

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

💬 Цитаты

«Differences between a lot of these optimizers might just come down to the learning rate schedule.»

Янник Килчер 09:40

«One algorithm dictates where we go, the other algorithm dictates how far we go.»

Янник Килчер 08:36
👥 Спикер
🔗 Упомянутые сайты и проекты
📖 Термины
Графтинг (Grafting)
Метод комбинирования двух оптимизаторов, при котором направление обновления весов берется от одного, а размер шага — от другого.
Адаптивные методы
Алгоритмы оптимизации (например, Adam), которые автоматически подстраивают параметры обучения для каждого веса в процессе работы.
SGD (Stochastic Gradient Descent)
Классический метод стохастического градиентного спуска, являющийся базовым алгоритмом обучения нейронных сетей.
Норма вектора
Математическая мера «длины» вектора, используемая в алгоритме для масштабирования шагов обучения.
📊 Цифры
⚖️ Другая сторона
Искусственный интеллект Learning Rate Grafting SGD Adam Deep Learning AdaGrad