исследования 1 мин

Почему Adam забывает про низкоранговость, а градиентный спуск — нет

Исследователи обнаружили, что Adam и похожие оптимизаторы теряют неявное смещение градиентного спуска к простым (низкоранговым) решениям. Причина — в покоординатной нормализации второго момента, которая ломает инвариантность к поворотам базиса. GD, Shampoo и Muon сохраняют смещение, Adam/RMSProp/Lion — нет. Эксперименты на matrix sensing показывают: проблема не в адаптивности вообще, а именно в анизотропии обновлений.

Это объясняет, почему в одних задачах Adam рулит, а в других SGD неожиданно бьёт его на validation — и даёт конкретный способ предсказать и исправить это. Для ML-инженеров это новый инструмент диагностики и оптимизации.

Что произошло

Исследователи из MIT и DeepMind опубликовали работу о том, почему Adam и семейство адаптивных оптимизаторов теряют implicit regularization — неявное смещение к простым решениям, которое есть у градиентного спуска.

Суть в том, что в факторизованной модели W = UV^T функция потерь не меняется при одновременном повороте U и V на одну и ту же матрицу Q. Градиентный спуск уважает эту симметрию. Adam — нет, потому что его покоординатная нормализация второго момента зависит от выбора базиса.

Авторы прогнали 9 оптимизаторов на задаче matrix sensing (восстановление матрицы по неполным измерениям) при одинаковой ошибке на обучении. Результат: два чётких кластера. GD, shared-scalar Adam, Muon и Shampoo сохраняют низкоранговое смещение. Adam, RMSProp, Lion, signum и Adafactor — теряют.

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

Неожиданный результат — Muon. Он идеален на чисто низкоранговых целях, но деградирует быстрее всех при добавлении спектрального хвоста и уступает GD в районе 4% энергии хвоста. Это объясняет противоречия в литературе: одни работы находят у Muon сильное смещение к простоте, другие — что он переобучается на шум в глубоких линейных моделях. Авторы показывают оба режима на одной оси.

Бонус: авторы проверили свой собственный оптимизатор и обнаружили, что покоординатный клиппинг ломал ту самую структуру, для которой он был сделан. Замена на глобальный norm clip снизила ошибку восстановления с 0.347 до 0.220.

Оговорка: 43-44% снижение ошибки на гиперспектральных данных получено при выборе learning rate только по train loss. Если дать каждому методу выбрать свой лучший lr по validation, разрыв сильно меньше. Авторы оставили train-only правило, чтобы не вносить implicit bias через валидацию — но акцент на механизме, не на абсолютной цифре.

Теория покрывает только optimizers без памяти. Momentum здесь эмпирически, без доказательств.

оптимизаторыimplicit-regularizationнизкоранговые-моделитеория-обученияLoRA

Автор: Ксения Лаврова · Источник: reddit.com

Разработчикам. Если тренируете модели с факторизованными весами (LoRA, матричные декомпозиции, рекомендательные системы) — Adam может незаметно терять implicit regularization. Попробуйте Shampoo или shared-scalar вариант Adam (код в репо). Если используете кастомные оптимизаторы с клиппингом — проверьте, что клиппинг глобальный, а не покоординатный.

Бизнесу. Для задач, где важна обобщающая способность и простота модели (компрессия, федеративное обучение, interpretable ML) — выбор оптимизатора напрямую влияет на качество решения. Adam может переобучаться не только из-за overfitting, но и из-за потери структурного смещения. Это объясняет, почему в некоторых задачах SGD до сих пор бьёт Adam.

Инвесторам. Работа показывает, что эффективность обучения зависит не только от скорости сходимости, но и от implicit biases оптимизатора. Это открывает нишу для специализированных оптимизаторов под разные классы задач. Компании, работающие над efficient training (Cohere, Anthropic, Cerebras), будут встраивать эти находки в свои стеки. Потенциальный рост в секторе ML tooling и hardware (Graphcore, SambaNova).

Хайп20
Реальная польза65
Заработать55
  • Сделать библиотеку drop-in replacements для PyTorch Optimizers с учётом basis invariance (shared-scalar Adam, Muon с автоматическим переключением режимов)
  • Создать сервис автоматического подбора оптимизатора под задачу на основе анализа спектра градиентов и структуры модели
  • Оптимизировать LoRA fine-tuning: заменить Adam на basis-invariant оптимизатор и продать как managed service для корпоративных LLM
  • Интегрировать эти оптимизаторы в ML-платформы (Weights & Biases, Neptune.ai) как одну кнопку для улучшения generalization
  • Консалтинг для компаний с рекомендательными системами: аудит оптимизаторов + переход на варианты с сохранением низкоранговости
  • Результаты получены на matrix sensing и гиперспектральных данных — насколько это переносится на реальные deep networks, пока вопрос
  • Теория не покрывает momentum — а в проде почти всегда используют AdamW с momentum, не чистый Adam
  • Shared-scalar Adam может быть медленнее на GPU из-за дополнительных редукций — нужно мерить wall-clock time, не только качество
  • Авторы сами признают, что с правильным tuning Adam разрыв сильно меньше — значит, на практике может не быть драматической разницы

Это одна из тех работ, которые объясняют «народную мудрость» ML точной математикой. Все знали, что Adam иногда переобучается сильнее SGD, но объясняли через learning rate и weight decay. Авторы показали: дело в том, что Adam не уважает симметрии задачи — и это ломает implicit regularization. Практический вывод: если у вас факторизованные веса (LoRA, матричные декомпозиции, embeddings в рекомендациях) — попробуйте Shampoo или shared-scalar Adam. Разница может быть ощутимой.

Но не переоцениваем: это не значит, что Adam «сломан». Для большинства задач разница терпимая, и правильный tuning её сглаживает. Авторы честно признают это в appendix. Но теперь есть диагностический инструмент: если модель должна быть низкоранговой, а не получается — проверьте оптимизатор. И да, авторы сами нашли баг в своём оптимизаторе благодаря этому критерию — это вызывает уважение.

Ещё по теме

Комментарии