Янник Килчер: «Используйте Adam, этого достаточно — итоги бенчмарка оптимизаторов»

Yannic Kilcher 14,1 тыс. 41 мин 4 мин 11.10.2020
Главное

В области глубокого обучения выбор алгоритма оптимизации часто напоминает магический ритуал, основанный на интуиции и анекдотичных свидетельствах, а не на строгой теории. Янник Килчер разбирает масштабное эмпирическое исследование группы ученых из Тюбингенского университета (Schmidt et al., 2020), которые попытались внести ясность в этот хаос. Статья под названием «Спуск через переполненную долину» (Descending through a Crowded Valley) ставит под сомнение ценность сотен существующих оптимизаторов и предлагает прагматичный взгляд на то, как обучать нейросети сегодня.

📉 Тупик многообразия: сотни оптимизаторов и отсутствие лидера 0:00

Рынок алгоритмов оптимизации перенасыщен: в приложении к статье авторы приводят огромный список методов, накопленных за последние десятилетия . Если классический SGD (стохастический градиентный спуск) стабильно работает уже 70 лет, то основной взрыв активности пришелся на 2016–2020 годы, когда новые методы (Adam, AMSGrad, AdaDelta, Lookahead и др.) стали появляться десятками.

По словам Янника Килчера, ситуация выглядит почти катастрофической:

Килчер резюмирует главный вывод исследования: «Используйте Adam, этого достаточно» . Вторая по значимости рекомендация — если Adam не справляется, переходите на SGD с моментом (momentum), и наоборот .

🧪 Методология бенчмарка и её ограничения 7:07

Для сравнения авторы выбрали 14 популярных алгоритмов и протестировали их на 8 различных задачах. Задачи разделены на «малые» (VAE, небольшие свёрточные сети) и «большие» (CIFAR-100, SVHN, символьные RNN) .

Исследование проводилось в трёх сценариях настройки (tuning):

  1. One-shot: использование параметров по умолчанию, заложенных авторами алгоритмов или фреймворков .
  2. Small budget: небольшое количество итераций случайного поиска (random search) для подбора гиперпараметров .
  3. Large budget: интенсивный поиск лучших параметров .

Янник Килчер подверг критике подход к сценарию «One-shot». Он считает, что сравнение заводских настроек по умолчанию малоинформативно, так как успех алгоритма в этом случае зависит исключительно от того, насколько удачные цифры автор прописал в коде при публикации . Вместо этого бенчмарк должен был самостоятельно определить оптимальные настройки «по умолчанию» для каждого алгоритма на основе половины задач и проверить их на другой половине.

🎲 Проблема «везучего семени» (Seed) 17:20

Одной из самых спорных деталей методологии является использование всего одного случайного зерна (seed) при подборе гиперпараметров (tuning) . Авторы статьи тестируют финальную модель на 10 разных «сидах», чтобы усреднить результат, но сам процесс выбора лучшей скорости обучения (learning rate) жестко привязан к одной начальной точке.

Янник указывает на фундаментальный риск такого подхода:

📊 Результаты: когда настройки важнее алгоритма 23:44

Анализ результатов показывает, что для многих алгоритмов (например, AdaDelta) настройки по умолчанию «просто ужасны» . На графиках видно, что AdaDelta без настройки проигрывает любому другому оптимизатору, у которого была хотя бы минимальная возможность подбора параметров.

Ключевые инсайты из визуализации данных:

🏁 Почему идеального оптимизатора не существует? 39:36

Несмотря на масштаб работы, Килчер называет её «примером того, как можно провести гигантское исследование, которое останется практически бесполезным для практики» . Основная причина — невозможность экстраполяции данных с малых моделей на гигантские (вроде GPT-3). На больших масштабах начинают работать иные эффекты (размер батча, стабильность градиентов на TPU), которые невозможно отследить на CIFAR-10 .

Тем не менее, статья дает сообществу два важных урока:

  1. Никогда не доверяйте настройкам по умолчанию в статьях — они часто не оптимальны .
  2. На современных архитектурах (например, ResNet) оптимизация стала проще благодаря хорошему потоку градиентов, поэтому выбор конкретного метода теперь менее критичен, чем в эпоху ранних нейросетей .

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

💬 Цитаты

«Короткая история этой статьи: используйте Adam, всё будет в порядке. Длинная история — чуть сложнее.»

Янник Килчер 00:13

«Настройка одного оптимизатора помогает примерно так же сильно, как и попытка смены самого оптимизатора.»

Янник Килчер 36:27
👥 Спикер
🔗 Упомянутые сайты и проекты
📖 Термины
Оптимизатор
Алгоритм, который корректирует веса нейронной сети для минимизации ошибки.
Adam
Популярный алгоритм оптимизации, сочетающий идеи адаптивной скорости обучения и инерции.
Learning Rate
Гиперпараметр, определяющий величину шага при обновлении весов модели.
One-shot
Запуск алгоритма с параметрами по умолчанию без дополнительной настройки.
📊 Цифры
⚖️ Другая сторона
Искусственный интеллект Adam SGD обучение нейросетей оптимизаторы Yannic Kilcher