Training Models: Loss Functions and Optimization
Обучение модели — это процесс подбора её параметров так, чтобы предсказания были «как можно ближе» к правильным ответам на обучающих примерах. В предыдущих статьях мы говорили, что важно честно разделять данные и избегать утечек; здесь фокус — как именно модель учится на train.
1) Идея обучения: минимизируем ошибку на данных
Почти всегда обучение формулируется как задача минимизации функции потерь (loss): она измеряет, насколько плохи предсказания.
Часто оптимизируют среднюю потерю по обучающей выборке:
Разберём обозначения:
— итоговая «стоимость» (objective), которую мы хотим сделать маленькой.
— параметры модели (например, веса в линейной/логистической регрессии, параметры дерева/ансамбля и т.д.).
— число объектов в обучающем наборе.
— индекс объекта.
— истинная метка объекта .
— предсказание модели для объекта .
— потеря на одном объекте (насколько ошиблись именно на нём).Важно: минимизация на train не гарантирует качества на новых данных — поэтому нужны валидация/тест и правильные разбиения (см. статью про data splits).
2) Функции потерь: что именно считается «ошибкой»
Правильная потеря зависит от типа задачи и от того, что вы хотите «наказать» сильнее.
Регрессия
MSE (Mean Squared Error) — средний квадрат ошибки.
- Сильнее штрафует большие промахи.
- Хорошо, если большие ошибки особенно болезненны.
MAE (Mean Absolute Error) — средняя абсолютная ошибка.
- Более устойчив к выбросам (outliers), чем MSE.
- Ошибка растёт линейно, а не квадратично.
Практическая подсказка: если в данных бывают редкие «очень большие» значения (выбросы), MAE часто ведёт себя стабильнее.
Бинарная классификация (0/1)
Часто модель предсказывает вероятность положительного класса , а не сразу 0/1. Популярная потеря — логистическая (log loss), она же бинарная кросс-энтропия:
Объяснение частей:
— истинный класс (0 или 1).
— предсказанная вероятность класса 1 (число от 0 до 1).
— «награда/штраф» за уверенность: если вы уверены в правильном классе, потеря мала.
Минус перед скобками делает так, что более правильные вероятности дают меньшую потерю.Интуиция: эта потеря сильно наказывает «уверенные, но неправильные» ответы (например, при ).
Многоклассовая классификация
Используют кросс-энтропию по всем классам (модель выдаёт распределение вероятностей). Главная идея та же: поощряем высокую вероятность у истинного класса.
3) Оптимизация: как находят параметры, уменьшающие потерю
Когда есть функция , нужно найти такие параметры , чтобы стала минимальной. Для многих моделей это делают итеративно с помощью градиентных методов.
Градиентный спуск (Gradient Descent)
Базовое правило обновления параметров:
Пояснения:
— текущие параметры.
Стрелка означает «заменить текущие параметры новыми».
— learning rate (шаг обучения): насколько большой шаг делаем.
— градиент (вектор направлений, куда растёт быстрее всего).
Знак «минус» означает: идём против градиента, то есть уменьшаем .Batch vs mini-batch vs SGD
Batch GD: градиент считается по всем объектам.
- Стабильно, но может быть медленно на больших данных.
Stochastic GD (SGD): обновление по одному объекту.
- Быстро и «шумно», может лучше выходить из плато.
Mini-batch: компромисс (например, 32–1024 объектов в батче).
- Самый распространённый вариант на практике.
Текстовая схема:
Почему learning rate так важен
Слишком большой :
1) обучение «скачет» и не сходится;
2) loss может расти.
Слишком маленький :
1) обучение идёт очень медленно;
2) может «застрять» в слабом решении из-за ограничения времени/итераций.
На практике часто используют адаптивные методы (например, Adam) и/или расписания изменения шага, но смысл остаётся тем же: контролировать размер и устойчивость шагов.
4) Регуляризация и ранняя остановка: как не переобучиться
Минимизировать loss на train легко; сложнее — сохранить качество на новых данных.
L2-регуляризация (weight decay)
К исходной цели добавляют штраф за большие веса:
Разбор:
— средняя потеря на данных.
— сумма квадратов параметров (мера «размера» весов).
— сила регуляризации: больше → сильнее стремимся к простым (маленьким) весам.Интуиция: мы платим «налог» за слишком сложное решение, что часто улучшает обобщение.
Early stopping
Если качество на validation перестало улучшаться, обучение останавливают до того, как модель начнёт подгоняться под шум train. Это особенно полезно для итеративных методов.
5) Частые практические ошибки
Оптимизируют не ту цель: loss не соответствует реальной стоимости ошибок (например, пропуск мошенничества намного дороже ложной тревоги).
Слишком много «тюнинга» по test: итоговая оценка становится завышенной (test должен быть финальной проверкой).
Неправильный масштаб признаков для градиентных методов: обучение может быть нестабильным или очень медленным.---
Practice tasks
Выберите более подходящую потерю и объясните почему:
1) прогноз цены квартиры, где иногда встречаются «аномально дорогие» объекты;
2) бинарная классификация, где модель должна выдавать калиброванные вероятности.
В формуле объясните смысл и что произойдёт, если выбрать его слишком большим.Что такое mini-batch обучение и почему его часто выбирают вместо чистого batch или чистого SGD?Вам дали две модели. У первой loss на train очень низкий, но на validation заметно хуже. У второй loss на train выше, но на validation лучше. Какую вероятнее стоит выбрать и почему?Что делает L2-регуляризация на интуитивном уровне? Как влияет увеличение ?<details>
<summary>
Ответы
</summary>
1.
1) Часто MAE: она менее чувствительна к редким выбросам (аномально дорогим объектам), чем MSE.
2) Log loss / кросс-энтропия: она напрямую работает с вероятностями и сильно штрафует уверенные неправильные предсказания.
2.
- — размер шага обновления параметров.
- Если слишком большой, обновления будут «перепрыгивать» минимум: loss может колебаться или даже расти, обучение станет нестабильным.
3.
- Mini-batch: градиент считают по небольшому подмножеству данных (например, 128 примеров) и делают обновление.
- Почему часто выбирают: это баланс между скоростью (быстрее, чем full batch на огромных данных) и стабильностью (меньше шума, чем SGD по одному примеру).
4.
- Чаще выбирают вторую: цель — обобщение на новых данных, а validation лучше отражает это.
- Первая выглядит как переобучение (модель «выучила» train и хуже переносит знания).
5.
- L2-регуляризация поощряет «простые» решения с меньшими весами и снижает склонность подгонять шум.
- Чем больше , тем сильнее штраф за большие веса: модель становится более «сглаженной», иногда ценой недообучения, если слишком велик.
</details>