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

Источник: https://www.youtube.com/watch?v=DiNzQP7kK-s
Канал: Yannic Kilcher
Опубликовано: 11.10.2020

---

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

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

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

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

*   Каждая новая работа утверждает, что предложенный алгоритм работает быстрее, точнее или потребляет меньше памяти [04:53].
*   На практике «независимые бенчмарки» часто показывают, что заявленные преимущества исчезают при выходе за пределы специфических условий оригинальной статьи [05:22].
*   Выбор оптимизатора до сих пор основывается на личных предпочтениях исследователей или настройках «по умолчанию» в популярных фреймворках [02:22].

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

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

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

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

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

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

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

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

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

*   Алгоритм может «выиграть» настройку просто потому, что ему повезло с ландшафтом функции потерь в конкретной точке старта [18:40].
*   Если перенести тот же алгоритм в другую точку ландшафта, он может показать катастрофические результаты [19:08].
*   Хотя авторы оправдывают это экономией вычислительных ресурсов и приближением к «реальному пользователю», Килчер утверждает, что для научного бенчмарка это снижает информативность результатов почти до нуля [22:52].

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

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

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

*   **Тюнинг важнее выбора алгоритма:** Исследователи утверждают, что настройка одного выбранного оптимизатора дает такой же прирост качества, как перебор нескольких разных оптимизаторов с их настройками по умолчанию [36:27].
*   **Алгоритмы как «маскировка» для параметров:** Янник предполагает, что смена алгоритма (например, с Adam на RMSprop) по сути является формой настройки скорости обучения. Поскольку параметры входят в формулы разных методов по-разному, переключая метод, вы просто меняете «эффективную» скорость обучения, что в итоге и дает результат [37:48].
*   **Высокий уровень шума:** На графиках разброс результатов одного и того же Adam (в зависимости от seed) часто перекрывает разницу между средними значениями всех остальных 13 алгоритмов [34:28].

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

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

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

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

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