Регуляризация в ML
Регуляризация — это набор методов, которые помогают моделям лучше обобщать данные и избегать переобучения. Переобучение происходит, когда модель слишком хорошо подстраивается под обучающую выборку и теряет способность работать с новыми данными, которых ещё не видела.
Важно, что регуляризация — это именно все методы, которые помогают бороться с переобучением, а не только L1 и L2:) Глобально можно разделить их на те, что применяются для моделей классического ML, и для нейросетей.
Регуляризация в классических моделях
Здесь всё просто: L1, L2 и L1+L2 (ElasticNet). Они помогают снизить переобучение, добавляя штраф к функционалу ошибки за большие веса.
L1-регуляризация
L1-регуляризация добавляет к функционалу потерь линейный штраф на абсолютные значения весов.
Из минусов — такое выражение сложнее оптимизировать, т.к. функция негладкая (у модуля нет производной в нуле). Из плюсов — этот метод зануляет некоторые веса, поэтому L1-регуляризацию можно считать одним из методов отбора признаков.
L2-регуляризация
В этом подходе добавляется квадратичный штраф на веса, поэтому такой функционал не усложняет оптимизацию.
Кстати, названия берутся от одноимённых названий соответствующих типов норм векторов.
ElasticNet
Этот метод объединяет L1 и L2-регуляризации, добавляя штраф как на абсолютные значения весов, так и на их квадраты. Это позволяет использовать преимущества обоих способов.
Регуляризация в нейросетях
В нейросетях всё хитрее, и способов предотвратить переобучение больше. Идеи с L1, L2 и ElasticNet регуляризацией тоже работают, но есть кое-что поинтереснее...
Dropout
Этот метод случайным образом исключает нейроны из обучения на каждом шаге, предотвращая их избыточную адаптацию к обучающим данным и тем самым улучшая обобщающую способность модели.
В популярных фреймворках TensorFlow и Pytorch он указывается как отдельный слой, в качестве гиперпараметра передаётся одно число — вероятность, с которой некоторый случайно взятый нейрон будет отключен.
Важно, что на этапе инференса dropout не применяется, все нейроны участвуют в вычислении предсказаний. Их веса уже были подстроены под "случайное отключение", и теперь это позволяет сети делает более стабильные и уверенные предсказания.
Batch Normalization
Суть этого метода — нормализовать входы после каждого слоя, чтобы уменьшить смещение и отмасштабировать данные. Это стабилизирует обучение и добавляет небольшой эффект регуляризации.
В формуле μ и σ — среднее и дисперсия для набора данных (батча), ϵ — небольшая константа для численной стабильности, а γ и β — обучаемые параметры, которые подбираются в ходе обучения.
Идея батч-нормализации берёт начало из классического ML. Как известно, для обычных ML-моделей нормализация данных положительно влияет на сходимость алгоритмов, особенно линейных. Нейросети же тоже состоят из нескольких слоёв, в основе которых — линейное преобразование. Поэтому нормализация после каждого слоя аналогично положительно сказывается на работе алгоритмов.
Early Stopping
Или ранняя остановка. Суть метода проста: при обучении нейронной сети отслеживается ошибка на валидационной выборке, и если она перестаёт уменьшаться, обучение останавливается. Это помогает вовремя обнаружить признаки переобучения и остановить процесс, получив на выходе "на грани" обученную модель.
Напомним главный сигнал переобучения, который здесь отслеживается: ошибка на валидационных данных растёт, даже если на тренировочной выборке она продолжает снижаться.
Data Augmentation
Этот приём больше применим к задачам компьютерного зрения. Заключается в генерации новых данных путём небольших изменений исходных. Например, можно отразить, повернуть, обрезать картинки, пошатать цветовые каналы... Для модели технически это будут новые изображения. Главное — сильно не переусердствовать с изменениями, чтобы всё ещё можно было определить, что находится на картинках.
Вместо заключения
Методы регуляризации — важные инструменты, которые позволяют улучшить обобщающую способность моделей и избежать переобучения. Но стоит применять их только при необходимости: если модель, наоборот, недообучается или и бех того нормально сходится, то регуляризация может оказаться излишней.