ЛАССО решение

машинное обучение

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

1 Одномерный случай: метод мягкого порога

1.1 Обсуждение классификации мягкого порога

будетNNИстинное значение выборок обозначается какNNразмерный векторyy,будетNNНезависимые переменные выборок обозначаются какzz, предполагая, что мы стандартизировали независимые переменные, то естьz'n=0z' \ell_n=0,z'z/N=1z'z/N=1, что также означает, что член пересечения в модели LASSO равен00. коэффициентбета\beta— параметр, который необходимо оптимизировать, а параметр штрафного члена —λ>0\lambda\gt 0.

LASSO решает

арг минбета12N(yzбета)'(yzбета)+λбета(1)\argmin_\beta \dfrac{1}{2N}(y-z\beta)'(y-z\beta)+\lambda |\beta| \tag{1}

После игнорирования константы приведенное выше уравнение эквивалентно

арг минбета12бета2y'zNбета+λбета\argmin_\beta \dfrac{1}{2}\beta^2 -\dfrac{y'z}{N}\beta+ \lambda |\beta|

Запишите функцию потерь в виде кусочной функции:

f(бета)={f1(бета)=12бета2(y'zN+λ)бета,бета<0f2(бета)=12бета2(y'zNλ)бета,бета0f(\beta)=\begin{cases} f_1(\beta) = \dfrac{1}{2}\beta^2 -\left(\dfrac{y'z}{N} + \lambda\right)\beta , \beta \lt 0\\ f_2(\beta) = \dfrac{1}{2}\beta^2 -\left(\dfrac{y'z}{N}- \lambda\right)\beta, \beta \geq 0 \end{cases}

Обсуждение категории:

  • какy'zN>λ\dfrac{y'z}{N}\gt \lambda,ноf1(бета)>0f_1(\beta) \gt 0,f2(бета)f_2(\beta)существуетбета^=y'zNλ\hat\beta=\dfrac{y'z}{N}- \lambdaвзять минимальное значениеf2(бета^)<0f_2(\hat\beta)\lt 0, поэтому его можно решить какбета^=y'zNλ\hat\beta=\dfrac{y'z}{N}- \lambda;
  • какy'zNλ\left|\dfrac{y'z}{N}\right|\leq \lambda,ноf1(бета)0f_1(\beta) \geq 0,f2(бета)0f_2(\beta) \geq 0, И вбета^=0\hat\beta=0повсюдуf1(бета^)=f2(бета^)=0f_1(\hat\beta)=f_2(\hat\beta)=0, поэтому его можно решить какбета^=0\hat\beta=0;
  • какy'zN<λ\dfrac{y'z}{N}\lt -\lambda,ноf2(бета)>0f_2(\beta) \gt 0,f1(бета)f_1(\beta)существуетбета^=y'zN+λ\hat\beta=\dfrac{y'z}{N}+\lambdaвзять минимальное значениеf1(бета^)<0f_1(\hat\beta)\lt 0, поэтому его можно решить какбета^=y'zN+λ\hat\beta=\dfrac{y'z}{N}+\lambda.

Использование оператора мягкого порогаSλ(x)=sign(x)(xλ)+S_\lambda(x)=\text{sign}(x)(|x|-\lambda)_+, приведенные выше три решения могут быть объединены как

бета^=Sλ(y'z/N)\hat\beta=S_\lambda(y'z/N)

На самом деле, в наших условиях оценка МНКбета~=y'z/N\tilde\beta=y'z/N, следовательно, передача оценки OLS через оператор мягкого порога становится оценкой LASSO.

1.2 субградиенты

Если ввести понятие субградиента, его можно решить более непосредственно.(1)(1)Режим. Предполагатьбета|\beta|Субградиентsеsign(бета)s\in \text{sign}(\beta), который имеет вид, когдабета0\beta \neq 0иногдаs=sign(бета)s= \text{sign}(\beta),когдабета=0\beta = 0иногдаsе[1,1]s\in [-1,1]. Согласно теории выпуклой оптимизации, решить(1)(1)эквивалентно решению

1Nz'(yzбета)+λs=0-\dfrac{1}{N}z'(y-z\beta) +\lambda s =0

решение(бета^,λ^)(\hat\beta,\hat\lambda). После упрощения получаемy'z/N=бета+λsебета+λsign(бета)y'z/N = \beta+\lambda s\in\beta+\lambda \text{sign}(\beta), и, наконец, это может быть решенобета^=Sλ(y'z/N)\hat\beta=S_\lambda(y'z/N). Напримербета=0\beta=0, это значитy'z/Nе[λ,λ]y'z/N \in[-\lambda,\lambda].

2 Многомерный случай: циклический метод спуска по координатам

Давайте посмотрим на полную версию многомерной задачи LASSO. Расположите независимые переменные вN×pN\times pматрицаXX, то, что мы хотим решить, это

арг минбетаеRp12NyXбета22+λбета1\argmin_{\beta\in \mathbb{R}^p} \dfrac{1}{2N}\left\Vert y-X\beta\Vert_2^2+\lambda \right\Vert\beta\Vert_1

Здесь мы используем циклический координатный спуск, идея которого состоит в том, чтобыppпараметры для оптимизации, такие как нажатиеj=1,,pj=1,\ldots,pв порядкеjjПри субоптимизации все остальные коэффициенты оставить без изменений, изменитьбетаj\beta_jМинимизируйте функцию потерь.

На основе изложенных идей будемjjВторая цель оптимизации записывается как

арг минбетаjеRp12Nykjxkбетаkxjбетаj22+λkjбетаk+λбетаj\argmin_{\beta_j\in \mathbb{R}^p} \dfrac{1}{2N}\left\Vert y-\sum_{k\neq j}x_{\cdot k}\beta_k-x_{\cdot j}\beta_j\right\Vert^2_2+\lambda \sum_{k\neq j}|\beta_k| +\lambda |\beta_j|

Помнитеr(j)=ykjxkбета^kr^{(j)}=y-\sum_{k\neq j}x_{\cdot k}\hat{\beta}_k, который называется частичным остатком, то по результатам раздела 1.1 можно получить

бета^j=Sλ(xj'r(j)/N)\hat\beta_j = S_\lambda (x_{\cdot j}' r^{(j)}/N)

Помнитеr=r(j)xjбета^jr = r^{(j)}-x_{\cdot j}\hat\beta_j, приведенная выше формула эквивалентна правилу обновления

бета^jSλ(бета^j+xj'r/N)\hat\beta_j \leftarrow S_\lambda (\hat\beta_j +x_{\cdot j}' r/N)

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

Спуск по путевым координатам: сначала можно пройти одинбета^=0\hat\beta=0самый маленькийλ\lambda, затем, немного уменьшаясьλ\lambda, а значение, полученное в прошлый разбета^\hat\betaВ качестве «теплого старта» используйте метод координатного спуска для итерации до сходимости, непрерывно повторяйте этот процесс и, наконец, получитеλ\lambdaрешения в различных вариациях.

Итак, как сделатьбета^=0\hat\beta=0? Используя субградиенты, мы можем узнать, что длябета^j=0\hat\beta_j=0, должен иметьxj'y/Nе[λ,λ]x_{\cdot j}'y /N \in [-\lambda,\lambda], что требуетλxj'y/N\lambda \geq |x_{\cdot j}'y| /N, чтобы сделать весьбета^=0\hat\beta=0, можноλ=maxjxj'y/N\lambda =\max_j |x_{\cdot j}'y| /N, что сделатьбета^=0\hat\beta=0самый маленькийλ\lambda.

3 Другие решения

Существуют и другие решения для решения LASSO, такие как гомотопический метод, который можно получить из00Первоначально получается путь к последовательному решению, причем путь кусочно-линейный.

Существует также алгоритм LARS (регрессия по наименьшему углу), который является одним из гомотопических методов, позволяющим эффективно получать кусочно-линейные пути.

Здесь не развернуто.

4 Ортогональный базис

В приведенном выше процессе, если независимые переменные ортогонализированы, расчет может быть значительно упрощен. Как и в разделе 2, если независимые переменные ортогональны, тоxj'r(j)/N=xj'y/Nx_{\cdot j}' r^{(j)}/N = x_{\cdot j}' y/N,В настоящее времябета^j\hat\beta_jчто будетyyправильноxjx_{\cdot j}Сделайте МНК-решение регрессии и передайте значение после оператора мягкого порога.