Перейти к основному содержимому

Регуляризация весов нейросети

Идея

Вместо того, чтобы жёстко упрощать модель, исключая лишние признаки, нейроны и целые слои, можно упрощать модель мягко, добавляя в функцию потерь регуляризацию, штрафующую веса по их абсолютной величине.

Пусть XX-вектора признаков всех объектов обучающей выборки, а Y-вектор их откликов (целевых значений), как вводилось ранее.

Чаще всего используется L2L_2 регуляризация (называемая weight decay):

L(X,Y)L(X,Y)+λw22=L(X,Y)+λi=1Iwi2(1)L(X,Y) \to L(X,Y)+\textcolor{red}{\lambda||\mathbf{w}||^2_2} = L(X,Y)+\textcolor{red}{\lambda \sum_{i=1}^I w_i^2}\tag{1}

либо L1L_1 регуляризация:

L(X,Y)L(X,Y)+λw1=L(X,Y)+λi=1Iwi(2)L(X,Y) \to L(X,Y)+\textcolor{red}{\lambda||\mathbf{w}||_1} = L(X,Y)+\textcolor{red}{\lambda \sum_{i=1}^I |w_i|}\tag{2}

Добавление регуляризующих слагаемых делает оптимальные веса более малыми по абсолютной величине, вследствие чего итоговая зависимость fw(x)f_\mathbf{w}(\mathbf{x}) меняется более плавно.

Реальные зависимости в жизни тоже в большинстве случаев обладают плавностью изменений, поэтому эти виды регуляризации весьма естественны и часто приводят к улучшению обобщающей способности.

Контроль силы регуляризации

Сила регуляризации контролируется гиперпараметром λ>0\lambda>0: чем он выше, тем сильнее оптимальные веса будут прижаты к нулю и тем более плавную прогнозную функцию мы получим. Важно не переборщить с регуляризацией, иначе модель выродится в константу, в то время как целевая зависимость будет подвержена изменению.

Обычно λ\lambda подбирают по качеству модели на отдельной валидационной выборке, перебирая логарифическую сетку значений, например, 106,105,...105,10610^{-6},10^{-5},...10^5,10^6.

Различие L1L_1 и L2L_2 регуляризации

Посчитав производную по весу для регуляризаторов в (1) и (2) можно увидеть, что L2L_2 регуляризация сильнее прижимает к нулю большие веса, но слабее - малые. Если сила прижатия весов к нулю (производная регуляризатора по весу) для L1L_1- константа, то для L2L_2 она пропорциональна величине веса.

Вследствие этого при достаточно большом λ\lambda L1L_1 регуляризация в точности занулит (положит равными нулю) часть весов (что эквивалентно удалению соответствующей связи в сети). В то же время у L2L_2 регуляризации все веса будут в общем случае ненулевые даже при сильной степени регуляризации λ\lambda.

Другим обоснованием, почему L2L_2 регуляризация не зануляет веса, а L1L_1 является эквивалентность следующих задач оптимизации для некоторого порога γ=γ(λ)\gamma=\gamma(\lambda):

L(w)+λR(w)minw    {L(w)minwR(w)γL(\mathbf{w})+\lambda R(\mathbf{w})\to\min_\mathbf{w} \iff \begin{cases} L(\mathbf{w})\to\min_\mathbf{w} \\ R(\mathbf{w})\le\gamma \end{cases}

Если визуализировать линии уровня функции потерь и область, задаваемую ограничением второй задачи оптимизации (справа), то видно, что для L2L_2 регуляризации оптимальное значение весов (жёлтый кружок) будет иметь ненулевые веса, а для L1L_1 регуляризации часть оптимальных весов может стать в точности равной нулю:

Особый учёт смещений

Веса в нейросети определяют силу связи между нейронами. Особое место занимают нейроны, принимающие значение тождественной единицы. Веса связей, исходящих из таких нейронов отвечают за смещения (bias) распределений активаций и обычно не регуляризуются, чтобы регуляризация не приводила к смещению прогнозов в сторону нуля. К тому же весов, отвечающих смещениям, существенно меньше, чем всех прочих, поэтому они не сильно влияют на сложность модели.

Обобщение

Вместо того, чтобы подвергать регуляризации все веса сети с одинаковой силой λ\lambda можно подвергать регуляризации веса, отвечающие разным слоям сети, с разной силой. Если слои сети состоят из примерно одинакового числа нейронов, то рекомендуется слабее регуляризовать начальные слои, а сильнее - более поздние.

Это объясняется тем, что первые слои сильно связаны со входами xx, информацию о которых нежелательно потерять из-за чрезмерной регуляризации. В последних же слоях генерируются всевозможные сложные признаки, не все из которых в конечном счёте окажутся полезными.