В области глубокого обучения выбор алгоритма оптимизации часто напоминает магический ритуал, основанный на интуиции и анекдотичных свидетельствах, а не на строгой теории. Янник Килчер разбирает масштабное эмпирическое исследование группы ученых из Тюбингенского университета (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):
- One-shot: использование параметров по умолчанию, заложенных авторами алгоритмов или фреймворков .
- Small budget: небольшое количество итераций случайного поиска (random search) для подбора гиперпараметров .
- Large budget: интенсивный поиск лучших параметров .
Янник Килчер подверг критике подход к сценарию «One-shot». Он считает, что сравнение заводских настроек по умолчанию малоинформативно, так как успех алгоритма в этом случае зависит исключительно от того, насколько удачные цифры автор прописал в коде при публикации . Вместо этого бенчмарк должен был самостоятельно определить оптимальные настройки «по умолчанию» для каждого алгоритма на основе половины задач и проверить их на другой половине.
🎲 Проблема «везучего семени» (Seed) 17:20
Одной из самых спорных деталей методологии является использование всего одного случайного зерна (seed) при подборе гиперпараметров (tuning) . Авторы статьи тестируют финальную модель на 10 разных «сидах», чтобы усреднить результат, но сам процесс выбора лучшей скорости обучения (learning rate) жестко привязан к одной начальной точке.
Янник указывает на фундаментальный риск такого подхода:
- Алгоритм может «выиграть» настройку просто потому, что ему повезло с ландшафтом функции потерь в конкретной точке старта .
- Если перенести тот же алгоритм в другую точку ландшафта, он может показать катастрофические результаты .
- Хотя авторы оправдывают это экономией вычислительных ресурсов и приближением к «реальному пользователю», Килчер утверждает, что для научного бенчмарка это снижает информативность результатов почти до нуля .
📊 Результаты: когда настройки важнее алгоритма 23:44
Анализ результатов показывает, что для многих алгоритмов (например, AdaDelta) настройки по умолчанию «просто ужасны» . На графиках видно, что AdaDelta без настройки проигрывает любому другому оптимизатору, у которого была хотя бы минимальная возможность подбора параметров.
Ключевые инсайты из визуализации данных:
- Тюнинг важнее выбора алгоритма: Исследователи утверждают, что настройка одного выбранного оптимизатора дает такой же прирост качества, как перебор нескольких разных оптимизаторов с их настройками по умолчанию .
- Алгоритмы как «маскировка» для параметров: Янник предполагает, что смена алгоритма (например, с Adam на RMSprop) по сути является формой настройки скорости обучения. Поскольку параметры входят в формулы разных методов по-разному, переключая метод, вы просто меняете «эффективную» скорость обучения, что в итоге и дает результат .
- Высокий уровень шума: На графиках разброс результатов одного и того же Adam (в зависимости от seed) часто перекрывает разницу между средними значениями всех остальных 13 алгоритмов .
🏁 Почему идеального оптимизатора не существует? 39:36
Несмотря на масштаб работы, Килчер называет её «примером того, как можно провести гигантское исследование, которое останется практически бесполезным для практики» . Основная причина — невозможность экстраполяции данных с малых моделей на гигантские (вроде GPT-3). На больших масштабах начинают работать иные эффекты (размер батча, стабильность градиентов на TPU), которые невозможно отследить на CIFAR-10 .
Тем не менее, статья дает сообществу два важных урока:
- Никогда не доверяйте настройкам по умолчанию в статьях — они часто не оптимальны .
- На современных архитектурах (например, ResNet) оптимизация стала проще благодаря хорошему потоку градиентов, поэтому выбор конкретного метода теперь менее критичен, чем в эпоху ранних нейросетей .
Итоговый совет для инженеров остается неизменным: возьмите Adam, немного подкрутите скорость обучения, и если сеть не взорвется — вы, скорее всего, получили результат, близкий к максимуму для данной архитектуры .