оценивается по мини-батчу: быстрее, шумнее и, как оказалось, полезнее для обобщения.
Ключевые тезисы
- Шум помогает выбираться из узких плохих минимумов.
- Стандарт обучения глубоких сетей вместе с .
- Требует перемешивания данных на каждой эпохе.
Какую задачу решает
Полный по миллиону объектов даёт один шаг оптимизации. За то же время сделает тысячу шагов по мини-батчам — каждый неточный, но в среднем ведущий туда же. На больших данных это разница между «обучается» и «не обучается».
Неожиданный побочный эффект: шум мини-батчей помогает. Он выбивает из узких острых минимумов, в которых модель , и оставляет в широких пологих, которые обобщаются лучше. Поэтому — не просто дешёвое приближение полного , а метод с собственным регуляризующим свойством.
Обучали с батчем 256 и . Переходите на 8 и 2048 — увеличили в 8 раз. По линейному правилу возьмите , иначе большой даст меньше шума и меньше эффективных шагов, и модель недообучится. Но при первые итерации почти наверняка разойдутся, поэтому добавьте разогрев: линейный рост от 0 до 0.8 за первые 5 эпох. Эта связка «линейное масштабирование + warmup» — стандартный рецепт .
Подробный разбор
| Метод | Объектов на шаг | Стоимость итерации | Свойства |
|---|---|---|---|
| Full-batch GD | все | точный , мало обновлений | |
| 1 | очень шумно, но быстро | ||
| Mini-batch | 32–1024 | стандарт: векторизация + разумный шум |
За одну эпоху full-batch делает одно обновление весов, а mini-batch с батчем 64 при 640 000 объектах — 10 000. Именно поэтому обучают мини-батчами.
Оценка по батчу несмещена, но шумна. Этот шум мешает застревать в узких «острых» минимумах и подталкивает решение в широкие пологие области, которые лучше обобщаются на новые данные.
- Данные нужно перемешивать каждую эпоху, иначе порядок объектов создаст систематическое смещение.
- Слишком большой убирает полезный шум — приходится компенсировать увеличением lr и warmup.
- Правило масштабирования: увеличили в раз — увеличьте lr примерно в раз (для умеренных ).
Где применяется
- Обучение на больших данныхЕдинственный практичный вариант, когда выборка не помещается в память.
- с при длинном обучении часто обобщает лучше .
- Онлайн-обучениеМодель обновляется по мере поступления данных, без с нуля.
- через шумНебольшой работает как дополнительная .
Плюсы, минусы и альтернативы
Плюсы
- Не требует держать всю выборку в памяти.
- Много дешёвых шагов вместо одного дорогого — быстрее прогресс на старте.
- Шум помогает выбираться из плохих точек и улучшает обобщение.
- Естественно поддерживает потоковое .
Минусы
- Траектория шумная, точной сходимости нет — нужен спад .
- Требует подбора и .
- Медленнее адаптивных методов на задачах с разномасштабными параметрами.
- Слишком маленький плохо утилизирует .
Брать, если
- Данных много и полный невозможен.
- Обучается с большим бюджетом эпох.
- Нужно онлайн-дообучение на потоке.
Не брать, если
- Данных мало и они помещаются в память — полный даст более гладкую траекторию.
- Обучается : там практически безальтернативен .
Чем заменяют
Видеолекции
Тайм-кода именно на эту тему в записях нет. Но глава «Оптимизация обучения» разобрана в курсе целиком — с той оговоркой, что место в записи придётся искать самому.
Связанные темы
Оптимизаторы
Optimization85%
Оптимизация · ОсновыПоиск параметров, минимизирующих функцию потерь. Свойства задачи — выпуклость, гладкость, обусловленность — определяют, насколько это просто.
Optimizers85%
Оптимизаторы · Глубокое обучениеПравила обновления весов по градиенту: от чистого SGD до адаптивных методов.
Gradient Descent85%
Градиентный спуск · Оптимизация обученияИтеративный шаг против градиента функции потерь — базовый алгоритм обучения.
Momentum85%
Момент · Оптимизация обученияНакопление экспоненциального среднего градиентов — движение по инерции сквозь колебания.
Adam85%
Adam · Оптимизация обученияАдаптивный метод: хранит средние градиента и его квадрата, подбирая шаг для каждого параметра.
AdamW85%
AdamW · Оптимизация обученияAdam с корректно отделённым weight decay — регуляризация применяется к весам, а не к градиенту.
RMSProp85%
RMSProp · Оптимизация обученияНормирует шаг на скользящее среднее квадратов градиента, выравнивая масштаб обновлений.
Learning Rate Scheduling85%
Расписание скорости обучения · Оптимизация обученияИзменение шага по ходу обучения: большой в начале для исследования, малый в конце для точной настройки.
Batch size85%
Размер батча · Оптимизация обученияЧисло объектов на одно обновление весов: влияет на скорость, память и качество обобщения.
Всё, что названо в описании, разобрано здесь же или в соседней теме — переходы под каждым определением.
Мини-батч
Подвыборка (32–1024 объекта), по которой считается . Компромисс между шумом и стоимостью шага.
Разбор ниже: Full-batch, SGD и mini-batchШум градиента
Отклонение батчевого от полного. Мешает точной сходимости и помогает обобщению.
Разбор ниже: Почему шум полезенЭпоха
Полный проход по обучающей выборке. Единица измерения длительности обучения.
Разбор ниже: Full-batch, SGD и mini-batchШирокие и острые минимумы
Шум вытесняет из острых минимумов — эмпирически это связано с лучшим обобщением.
Разбор ниже: Почему шум полезенЛинейное правило масштабирования
Увеличили в раз — увеличьте примерно во столько же.
Разбор ниже: Full-batch, SGD и mini-batchПрофильная компетенция для ролей: ML Engineer, CV-инженер, Исследователь, Инженер речи.
Усиливает профиль: NLP-инженер.
Глава «Оптимизация обучения» последний раз правилась . Нашли ошибку — напишите.