Изменения

Перейти к: навигация, поиск

Регуляризация

1482 байта добавлено, 05:57, 5 апреля 2021
Градиентный спуск
{{Определение
|definition=
'''Регуляризация''' (англ. ''regularization'') в статистике, машинном обучении, теории обратных задач — метод добавления некоторых дополнительных ограничений к условию с целью решить неккоректно некорректно поставленную задачу или предотвратить переобучение. Чаще всего эта информация имеет вид штрафа за сложность модели.
}}
|}
На Рис . 1. представлена зависимость, которая хорошо подходит для описания данных, а на Рис. 2 {{---}} модель, слишком сильно заточенная под обучающую выборку.
Однин из способов бороться с негативным эффектом излишнего подстраивания под данные {{---}} использование регуляризации, т. е. добавление некоторого штрафа за большие значения коэффициентов у линейной модели. Тем самым запрещаются слишком "резкие" изгибы, и предотвращается переобучение.
Переобучение в большинстве случаев проявляется в том, что итоговые модели имеют слишком большие значения параметров. Соответственно, необходимо добавить в целевую функцию штраф за это. Наиболее часто используемые виды регуляризации {{---}} <tex>L_{1}</tex> и <tex >L_{2}</tex>, а также их линейная комбинация {{---}} эластичная сеть.
В представленных ниже формулах для эмпирического риска <tex>Q</tex>: <tex>\mathcal{L}</tex> является функцией потерь, а <tex>\beta</tex> {{---}} вектором параметров элемента <tex>g(x, \beta)</tex> из [[Модель алгоритма и ее выбор | модели алгоритмовалгоритма]], а <tex>\lambda</tex> {{---}} неотрицательный гиперпараметр, являющийся коэффициентом регуляризации.
===<tex>L_{2}</tex>-регуляризация===
{{Определение
|definition=
<tex>L_{1}</tex>-регуляризация (англ. ''lasso regularization''), или регуляризация через [[Метрический классификатор и метод ближайших соседей#Использование различных метрик расстояния | манхэттенское расстояние]]:
:<tex>Q(\beta, X^l)=\sum\limits_{i=1}^l\mathcal{L}(y_{i}, g(x_{i}, \beta))+\lambda \sum\limits_{j=1}^n{|\beta_{j}|}</tex>.
}}
В новых переменных функционал становится гладким, но добавляются ограничения-неравенства:
:<tex>\begin{cases} Q(u, v) = \sum\limits_{i=1}^l\mathcal{L}_{i}(u - v) + \lambda \sum\limits_{j=1}^n(u_{j} + v_{j}) \rightarrow \min\limits_{u,v} \\ u_{j} \geq 0, v_{j} \geq 0, \: j=1,\ldots,n\end{cases} </tex>
Для любого <tex>j</tex> хотя бы одно из ограничений <tex>u_{j} \geq 􏰧00</tex> и <tex>v_{j} 􏰧\geq 0</tex> обращается в равенство, иначе второе слагаемое в <tex>Q(u, v)</tex> можно было бы уменьшить, не изменив первое. Если гиперпараметр <tex>\lambda</tex> устремить к <tex>\infty</tex>, в какой-то момент все <tex>2n</tex> ограничений обратятся в равенство. Постепенное увеличение гиперпараметра <tex>\lambda</tex> приводит к увеличению числа таких <tex>j</tex>, для которых <tex>u_{j} = v_{j} = 0</tex>, откуда следует, что <tex>\beta_{j} = 0</tex>. Как говорилось ранее, в линейных моделях это означает, что значения <tex>j</tex>-го признака игнорируются, и его можно исключить из модели.
===Эластичная сеть===
|definition=
Эластичная сеть (англ. ''elastic net regularization''):
:<tex>Q(\beta, X^l)=\sum\limits_{Ii=1}^l\mathcal{L}(y_{i}, g(x_{i}, \beta))+\lambda_{1} \sum\limits_{j=1}^n{|\beta_{j}|}+\lambda_{2} \sum\limits_{j=1}^n{\beta_{j}}^{2}</tex>.
}}
Приведенная регуляризация использует как <tex>L_{1}</tex>, так и <tex>L_{2}</tex> регуляризации, учитывая эффективность обоих методов. Ее полезной особенностью является то, что она создает условия для группового эффекта при высокой корреляции переменных, а не обнуляет некоторые из них, как в случае с <tex>L_{1}</tex>-регуляризацией.
:<tex>\beta \sim N(0, \sigma^2)</tex>
Логарифмируя, получаем ''квадратичный регуляризатор'':
:<tex>\ln p(\beta; \sigma) = \ln \left(\dfrac{1}{(2 \pi \sigma)^{n/2}} \exp\left(- \dfrac{\| \beta \| ^ 2}{2 \sigma}\right)\right) = - \dfrac{1}{2 \sigma}\| \beta \| ^ 2 + const(\beta),</tex>
где <tex>const(\beta)</tex> {{---}} слагаемое, не зависящее от <tex>\beta</tex>, которым можно пренебречь, поскольку оно не влияет на решение оптимизационной задачи. В итоге имеем <tex>L_{2}</tex>-регуляризатор.
:<tex>\beta \sim Laplace(0, C)</tex>
Тогда:
:<tex>\ln p(\beta; C) = \ln \left(\dfrac{1}{(2C)^n} \exp\left(- \dfrac{\| \beta \|_{1}}{C}\right)\right) = - \dfrac{1}{C}\| \beta \|_{1} + const(\beta), \| \beta \|_{1} = \sum\limits_{j}|\beta_{j}|</tex>Аналогично случаю с нормальным регуляризатором, <tex>const(\beta)</tex> можно опустить и, таким образом, получаем <tex>L_{1}</tex> -регуляризатор. Распределение Лапласа имеет более острый пик и более тяжёлые «хвосты», по сравнению с нормальным распределением, как можно видеть на Рис. 4. Его дисперсия Дисперсия Лапласовского распределения равна <tex>2C^2</tex>.
Аналогично случаю с нормальным регуляризатором, <tex>const(\beta)</tex> можно опустить и, таким образом, получаем <tex>L_{1}</tex> |align="center" |-регуляризаторvalign="top" |[[Файл:laplace_and_normal.png|400px|thumb|Рис. 4. Сравнение нормального и Лапласовского распределений при одинаковых математических ожиданиях и дисперсиях.]] |}
==Регуляризация в линейной регрессии==
В [[Линейная регрессия | линейной регрессии]] моделируется линейная зависимость между зависимой и независимой переменной. Таким образомКаждому объекту $x \in X^l$ соответствует признаковое описание $(f_{1}(x), модель \dots,f_{n}(x))$, где $f_{j}:X \rightarrow \mathbb{R}$ {{---}} числовые признаки. Модель алгоритмов для нее линейной регрессии состоит из функций вида::$g(x, \beta) = \sum\limits_{j}^n \beta_{j} \,f_{j}(x)$
В итоге оптимизируемый функционал эмпирического риска выглядит следующим образом:
:$Q(a) = \|F\beta - y\|^2$,
где $F = (f_{j}(x_{i}))_{l \times n}$ {{---}} матрица объекты-признаки, $y = (y_{i})_{l \times 1}$ {{---}} целевой вектор, $\beta = (\beta_{j})_{n \times 1}$ {{---}} вектор параметров.
Приравняв нулю производную $Q(\beta)$ по параметру $\beta$, получаем:
:$\beta^* = (F^TF)^{-1}F^Ty$
К сожалению, могут возникнуть проблемы мультиколлинеарности и переобучения в случае, если ковариационная матрица $\sum = F^T F$ плохо обусловлена. Одним из способов борьбы с этими проблемами, как говорилось ранее, является регуляризация.
В статье о [[Виды Вариации регрессии | видах вариациях регрессии]] представлены модификации линейной регресиии с различными регуляризаторами ($L_{1}$ и $L_{2}$) и их отличие. Описание в данном разделе будет похожим, однако здесь будет рассмотрен эффект от добавления регуляризаторов немного подробнее.
===Гребневая регрессия===
К В [[Вариации регрессии#Гребневая регрессия (ридж-регрессия) | гребневой регрессии]] к функционалу $Q$ добавляется $L_{2}$-регуляризатор.
Итоговый минимизируемый функционал с поправкой:
:$\beta_{t}^* = (UD^2U^T + \tau I_{n})^{-1}UDV^{T}y=U(D^2+\tau I_{n})^{-1}DV^Ty=\sum\limits_{j=1}^n \dfrac{\sqrt{\lambda_{j}}}{\lambda_{j} + \tau}u_{j}(v_{j}^Ty)$
Теперь найдём регуляризованную МНК-аппроксимацию целевого вектора y:
:$F \beta_{\tau}^* = VDU^T \beta_{\tau}^* = V diag\left(\dfrac{\lambda_{j}}{\lambda_{j} + \tau}\right)V^Ty = \sum\limits_{j=1}^n \dfrac{\lambda_{j}}{\lambda_{j} + \tau}v_{j}(v_{j}^Ty)$
Как можно видеть, проекции на собственные векторы сокращаются, умножаясь $\dfrac{\lambda_{j}}{\lambda_{j} + \tau} \in (0, 1)$.
В случае с гребнем:
:$n_{effective} = tr\:F(F^TF + \tau I_{n})^{-1}F^T = tr\:diag\left(\dfrac{\lambda_{j}}{\lambda_{j} + \tau}\right) = \sum\limits_{j=1}^n \dfrac{1}{\lambda_{j}} < n$
===Лассо регрессия===
К В [[Вариации регрессии#Лассо-регрессия | лассо регрессии]] к функционалу $Q$ добавляется $L_{1}$-регуляризатор.
Итоговый минимизируемый функционал с поправкой:
Основное различие лассо и гребневой регрессий заключается в том, что первая может приводить к обращению некоторых независимых переменных в ноль (используется $L_{1}$-регуляризатор), тогда как вторая уменьшает их до значений, близких к нулю (используется $L_{2}$-регуляризатор).
Продублируем наглядный пример из статьи о [[Вариации регрессии | вариациях регрессии]]. Рассмотрим для простоты двумерное пространство независимых переменных. В случае лассо регрессии органичение на коэффициенты представляет собой ромб (<tex>|\beta_1| + |\beta_2| \leq t</tex>), в случае гребневой регрессии {{---}} круг (<tex>\beta_1^2 + \beta_2^2 \leq t^2</tex>). Необходимо минимизировать функцию ошибки, но при этом соблюсти ограничения на коэффициенты. С геометрической точки зрения задача состоит в том, чтобы найти точку касания линии, отражающей функцию ошибки с фигурой, отражающей ограничения на <tex>\beta</tex>. Из Рис. 3 5 интуитивно понятно, что в случае лассо регрессии эта точка с большой вероятностью будет находиться на углах ромба, то есть лежать на оси, тогда как в случае гребневой регрессии такое происходит очень редко. Если точка пересечения лежит на оси, один из коэффициентов будет равен нулю, а значит, значение соответствующей независимой переменной не будет учитываться.
{|align="center"
|-valign="top"
|[[Файл: Ridge_and_Lasso.png|400px|thumb|Рис.35. Сравнение лассо (слева) и гребневой (справа) регрессий, пример для двумерного пространства независимых переменных.<br/>Бирюзовые области изображают ограничения на коэффициенты <tex>\beta</tex>, эллипсы {{---}} некоторые значения функции наименьшей квадратичной ошибки.]]
|}
Также полезно будет рассмотреть простую модельную задачу. Пусть $l = n$ и матрица объекты-признаки является единичной $F = I$. Тогда МНК-решение дает вектор коэффициентов $\beta$:
:$\beta^* = argmin\left(\sum\limits_{i=1}^l(\beta_{i} - y_{i})^2\right)$
:$\beta_{j}^* = y_{j}$
В случае с гребневой регрессией:
В случае с лассо регрессией:
:$\beta_{j}^* = \begin{cases} y_{j} - \lambda / 2, y_{j} > \lambda / 2 \\ y_{j} + \lambda / 2, y_{j} < -\lambda / 2 \\ 0, |y_{j}| \leq \lambda / 2 \end{cases}$
В итоге на Рис. 4 6 на графиках с зависимостями $\beta_{j}^*$ от $y_{j}$ можно увидеть описанные ранее особенности данных регуляризованных линейных регрессий.
{|align="center"
|-valign="top"
|[[Файл: regularization_comparing.png|400px|thumb|Рис.46. Сравнение лассо и гребневой регрессий, пример с простой модельной задачи.]]
|}
:<tex>Q_{\tau}(w) = Q(w) + \dfrac{\tau}{2}\|w\|^2</tex>
Это приводит к появлению аддитивной поправки в градиенте:
:<tex>Q_{\tau}'(w) = Q′(w) + \tauw</tex>
В результате правило обновления весов принимает вид:
:<tex>w := w(1 - \eta \tau) - \eta Q'(w)</tex>
Также существуют разновидности SVM с другими регуляризаторами.
* Метод релевантных векторов (англ. ''RVM, Relevance vector Machine''):
:$\dfrac{1}{2}\sum\limits_{i=1}^l\left(\ln w_{i} + \dfrac{\lambda_{i}^2}{w_{i}}\right)$
* Метод опорных векторов с лассо (англ. ''LASSO SVM''):
:$\mu \sum\limits_{i=1}^n|w_{i}|$
===Нейронные сети===
Регуляризация также используется и в [[Нейронные сети, перцептрон | нейронных сетях]] для борьбы со слишком большими весами сети и переобучением. Однако, в этом случае зануление коэффициентов при использовании $L_{1}$-регуляризатора не несет в себе смысл "отбора признаков", как в случае с линейными моделями. Регуляризация К сожалению, регуляризация не снижает число параметров и не упрощает структуру сети.
Для нейронной сети помимо добавления штрафного слагаемого к эмпирическому риску активно используют и другой метод регуляризации борьбы с переобучением {{---}} ''прореживание сети'' (англ. ''dropout''), в ходе которого упрощают сеть, руководствуясь правилом {{---}} если функция ошибки не изменяется, то сеть можно упрощать и дальше. Подробнее об этом можно почитать в статье, рассказывающей о [[Практики реализации нейронных сетей | практике реализации нейронных сетей]].
==См. также==
* [https://en.wikipedia.org/wiki/Elastic_net_regularization Wikipedia {{---}} Elastic net regularization]
* [http://bjlkeng.github.io/posts/probabilistic-interpretation-of-regularization/ Keng B. {{---}} A Probabilistic Interpretation of Regularization]
 
[[Категория: Машинное обучение]]
[[Категория: Регрессия]]
Анонимный участник

Навигация