Регуляризация модели
Регуляризация моделей (model regularization) - распространённый приём в машинном обучении, позволяющий контролировать сложность получаемой модели (model complexity) за счёт внесения ограничений в её настройку. Под сложностью модели в этой книге будет подразумеваться её гибкость, т.е. способность подстаиваться под наблюдения обучающей выборки. Например, полином - более сложная функция, чем линейная зависимость, поскольку за счёт большего числа коэффициентов обладает более высокой способностью подстраиваться под наблюдаемые данные.
Существуют разные способы регуляризации, но самый популярный - добавление регуляризующего слагаемого в минимизируемую функцию потерь:
Функция называется р егуляризатором и штрафует параметры модели за излишнюю сложность. Гиперпараметр выбирается пользователем и определяет, насколько важна точность по сравнению с простотой получаемой модели.
Почему является именно гиперпараметром, т.е. почему её нельзя настраивать по обучающей выборке вместе с параметрами модели ?
При настройке по критерию выше можно сразу сказать, чему равно его оптимальное значение: ! Поскольку это соответствует удалению регуляризующего слагаемого из штрафа и настройке самой сложной (гибкой) модели, обеспечивающей наиболее точную подстройку под обучающие объекты. Но не обязательно под тестовые. То есть обобщающая способность модели на новых данных (generalization ability) может оказаться неоптимальной.
Популярные функции регуляризации
Популярными способами выбора являются:
-
L2-регуляризация
-
L1-регуляризация
-
ElasticNet-регуляризация
Все эти виды регуляризации поощряют выбор более малых по абсолютной величине весов в векторе . Это ограничивает гибкость настройки весов и препятствует переобучению модели под обучающую выборку.
ElasticNet требует спецификации дополнительного гиперпараметра .
Особенностью L1 регуляризации является то, что она приводят к решению, в котором часть найденных весов может получаться в точности равными нулю. Это достигается за счет слагаемого - см. обоснование. Если в прогностической модели веса входят как мультипликативные множители при признаках (как, например, в линейных моделях или на первом слое нейросетей), то это приводит к отбору признаков (feature selection)- модель полностью перестаёт учитывать признаки, при которых получились нулевые веса! Это позволяет получать более эффективные и интерпретируемые модели и не собирать значения тех признаков, которые в конечном счёте не будут использоваться.
В L2 регуляризации штраф квадратично возрастает при увеличении веса. Если вес - коэффициент при признаки (как, например, в линейных моделях или на первом слое нейросетей), то это приводит к более равномерному распределению весов по признакам, что способствует более полному учёту их значений. В частности, если два признака принимают в точности одинаковые значения, то вес при этих признаках L2-регуляризация распределит поровну, в то время как L1-регуляризация может их распределить произвольным образом.
Так как L1 и L2 регуляризации обладают разными достоинствами, для их совмещения и используется регуляризация ElasticNet.
Можно специфицировать и собственный вид регуляризатора , исходя из логики решаемой задачи и представлений о том, модель с какими именно весами можно считать простой. Например, можно поощрять модели с более близкими весами друг к другу.
Другие виды регуляризации
Помимо дополнительного штрафа за величину весов, можно препятствовать переобучению моделей, за счёт дополнительных ограничений на веса. Например, можно требовать, чтобы часть весов были неотрицательными. Или одни веса в точности совпадали по величине с другими.
Также можно ограничивать максимальное число итераций оптимизации при настройке функции потерь (early stopping). Это также препятствует переобучению модели под обучающую выборку.
Существуют и другие подходы к регуляризации. Особенно остро проблема переобучения стоит для нейросетей. Со всевозможными видами их регуляризации вы можете ознакомиться в соответствующей главе учебника по глубокому обучению.