с корректно отделённым — применяется к весам, а не к .
Ключевые тезисы
- В обычном L2-штраф искажается адаптивным масштабированием.
- Де-факто стандарт обучения .
- Типичный : 0.01–0.1.
Какую задачу решает
В классическом добавляли, прибавляя к . Кажется эквивалентным — но не в адаптивном методе: это слагаемое проходит через деление на , и сила у каждого параметра оказывается разной, обратно пропорциональной масштабу его . Регуляризация превращается в неуправляемую.
отделяет от адаптивного шага: вес умножается на напрямую, минуя моменты. Изменение выглядит косметическим, но эффект на качество заметный, и именно поэтому стал стандартом обучения .
с , (для больших моделей ниже стандартных 0.999), 0.1 на все веса кроме bias и параметров , линейный warmup на 2000 шагов до пиковой скорости , дальше косинусный спад до 10% от пика, обрезка на 1.0. Это не универсальная истина, но точка старта, от которой отклоняются осознанно, а не наугад.
Подробный разбор
- сила регуляризации: штраф за сложность модели
- веса модели — то, что подбирается при обучении
- функция потерь — то, что минимизируется при обучении
- скорость обучения — длина шага оптимизатора
- сила регуляризации: штраф за сложность модели
- малая величина: шум, допуск или защита от деления на ноль
- веса модели — то, что подбирается при обучении
В обычном параметры с большими получают ослабленную — это не то, что задумано. разделяет два механизма, и снова работает предсказуемо.
К bias и параметрам обычно не применяют: их сжатие к нулю только мешает.
optimizer = torch.optim.AdamW(
[{"params": decay_params, "weight_decay": 0.1},
{"params": no_decay_params, "weight_decay": 0.0}],
lr=3e-4, betas=(0.9, 0.95), eps=1e-8)
scheduler = get_cosine_schedule_with_warmup(
optimizer, num_warmup_steps=2000, num_training_steps=total_steps)вместо стандартных 0.999 — распространённая практика для : оценка второго адаптируется быстрее и обучение устойчивее.
Где применяется
- и Стандартный рецепт: + warmup + косинусный спад.
- Умеренный удерживает веса рядом с предобученными.
- Vision-трансформерыТам, где с систематически проигрывал, закрыл разрыв с .
Плюсы, минусы и альтернативы
Плюсы
- ведёт себя предсказуемо и настраивается независимо от .
- Заметно лучшее обобщение по сравнению с + .
- Стал де-факто стандартом: рецепты и значения по умолчанию хорошо изучены.
- Стоимость та же, что у .
Минусы
- Ещё один , и он взаимодействует с расписанием .
- По памяти не дешевле .
- Требует аккуратности с тем, к каким параметрам применять затухание.
Брать, если
- Практически всегда, где раньше взяли бы .
- Обучение или .
Не брать, если
- не нужна вовсе (крайне редкий случай) — тогда разницы с не будет.
Чем заменяют
Видеолекции
Тайм-кода именно на эту тему в записях нет. Но глава «Оптимизация обучения» разобрана в курсе целиком — с той оговоркой, что место в записи придётся искать самому.
Связанные темы
Оптимизаторы
Optimization85%
Оптимизация · ОсновыПоиск параметров, минимизирующих функцию потерь. Свойства задачи — выпуклость, гладкость, обусловленность — определяют, насколько это просто.
Optimizers85%
Оптимизаторы · Глубокое обучениеПравила обновления весов по градиенту: от чистого SGD до адаптивных методов.
Gradient Descent85%
Градиентный спуск · Оптимизация обученияИтеративный шаг против градиента функции потерь — базовый алгоритм обучения.
SGD85%
Стохастический градиентный спуск · Оптимизация обученияГрадиент оценивается по мини-батчу: быстрее, шумнее и, как оказалось, полезнее для обобщения.
Momentum85%
Момент · Оптимизация обученияНакопление экспоненциального среднего градиентов — движение по инерции сквозь колебания.
Adam85%
Adam · Оптимизация обученияАдаптивный метод: хранит средние градиента и его квадрата, подбирая шаг для каждого параметра.
RMSProp85%
RMSProp · Оптимизация обученияНормирует шаг на скользящее среднее квадратов градиента, выравнивая масштаб обновлений.
Learning Rate Scheduling85%
Расписание скорости обучения · Оптимизация обученияИзменение шага по ходу обучения: большой в начале для исследования, малый в конце для точной настройки.
Batch size85%
Размер батча · Оптимизация обученияЧисло объектов на одно обновление весов: влияет на скорость, память и качество обобщения.
Всё, что названо в описании, разобрано здесь же или в соседней теме — переходы под каждым определением.
Отвязанный weight decay
Затухание применяется к весам напрямую, а не подмешивается в .
Разбор ниже: Отвязанный weight decayпротив weight decay
Для это одно и то же; для адаптивных методов — принципиально разные вещи.
Разбор ниже: Отвязанный weight decayТипичные значения
от 0.01 до 0.1 при обучении — заметно больше, чем привычные значения .
Разбор ниже: Готовый рецепт для трансформеровИсключения из decay
К bias и параметрам затухание обычно не применяют.
Разбор ниже: Готовый рецепт для трансформеровТема встречается в тесте по направлениям — ошибки приведут обратно на эту страницу.
Глава «Оптимизация обучения» последний раз правилась . Нашли ошибку — напишите.