LASSO очень практичен, но из-за того, что его штрафной член не может быть получен обычным образом, многие люди думают, что он не может явно найти аналитическое решение. Но это не так.
1 Одномерный случай: метод мягкого порога
1.1 Обсуждение классификации мягкого порога
будетNИстинное значение выборок обозначается какNразмерный векторy,будетNНезависимые переменные выборок обозначаются какz, предполагая, что мы стандартизировали независимые переменные, то естьz'ℓn=0,z'z/N=1, что также означает, что член пересечения в модели LASSO равен0. коэффициентбета— параметр, который необходимо оптимизировать, а параметр штрафного члена —λ>0.
LASSO решает
бетаargmin2N1(y−zбета)'(y−zбета)+λ∣бета∣(1)
После игнорирования константы приведенное выше уравнение эквивалентно
бетаargmin21бета2−Ny'zбета+λ∣бета∣
Запишите функцию потерь в виде кусочной функции:
f(бета)=⎩⎪⎪⎪⎨⎪⎪⎪⎧f1(бета)=21бета2−(Ny'z+λ)бета,бета<0f2(бета)=21бета2−(Ny'z−λ)бета,бета≥0
Обсуждение категории:
- какNy'z>λ,ноf1(бета)>0,f2(бета)существуетбета^=Ny'z−λвзять минимальное значениеf2(бета^)<0, поэтому его можно решить какбета^=Ny'z−λ;
- как∣∣∣∣∣Ny'z∣∣∣∣∣≤λ,ноf1(бета)≥0,f2(бета)≥0, И вбета^=0повсюдуf1(бета^)=f2(бета^)=0, поэтому его можно решить какбета^=0;
- какNy'z<−λ,ноf2(бета)>0,f1(бета)существуетбета^=Ny'z+λвзять минимальное значениеf1(бета^)<0, поэтому его можно решить какбета^=Ny'z+λ.
Использование оператора мягкого порогаSλ(x)=sign(x)(∣x∣−λ)+, приведенные выше три решения могут быть объединены как
бета^=Sλ(y'z/N)
На самом деле, в наших условиях оценка МНКбета~=y'z/N, следовательно, передача оценки OLS через оператор мягкого порога становится оценкой LASSO.
1.2 субградиенты
Если ввести понятие субградиента, его можно решить более непосредственно.(1)Режим. Предполагать∣бета∣Субградиентsеsign(бета), который имеет вид, когдабета=0иногдаs=sign(бета),когдабета=0иногдаsе[−1,1]. Согласно теории выпуклой оптимизации, решить(1)эквивалентно решению
−N1z'(y−zбета)+λs=0
решение(бета^,λ^). После упрощения получаемy'z/N=бета+λsебета+λsign(бета), и, наконец, это может быть решенобета^=Sλ(y'z/N). Напримербета=0, это значитy'z/Nе[−λ,λ].
2 Многомерный случай: циклический метод спуска по координатам
Давайте посмотрим на полную версию многомерной задачи LASSO. Расположите независимые переменные вN×pматрицаX, то, что мы хотим решить, это
бетаеRpargmin2N1∥∥∥y−Xбета∥22+λ∥∥∥бета∥1
Здесь мы используем циклический координатный спуск, идея которого состоит в том, чтобыpпараметры для оптимизации, такие как нажатиеj=1,…,pв порядкеjПри субоптимизации все остальные коэффициенты оставить без изменений, изменитьбетаjМинимизируйте функцию потерь.
На основе изложенных идей будемjВторая цель оптимизации записывается как
бетаjеRpargmin2N1∥∥∥∥∥∥∥y−k=j∑x⋅kбетаk−x⋅jбетаj∥∥∥∥∥∥∥22+λk=j∑∣бетаk∣+λ∣бетаj∣
Помнитеr(j)=y−∑k=jx⋅kбета^k, который называется частичным остатком, то по результатам раздела 1.1 можно получить
бета^j=Sλ(x⋅j'r(j)/N)
Помнитеr=r(j)−x⋅jбета^j, приведенная выше формула эквивалентна правилу обновления
бета^j←Sλ(бета^j+x⋅j'r/N)
Поскольку целевая функция выпукла и не имеет локального минимума, каждый раз, когда координата обновляется, она может со временем сходиться к глобальному оптимальному решению.
Спуск по путевым координатам: сначала можно пройти одинбета^=0самый маленькийλ, затем, немного уменьшаясьλ, а значение, полученное в прошлый разбета^В качестве «теплого старта» используйте метод координатного спуска для итерации до сходимости, непрерывно повторяйте этот процесс и, наконец, получитеλрешения в различных вариациях.
Итак, как сделатьбета^=0? Используя субградиенты, мы можем узнать, что длябета^j=0, должен иметьx⋅j'y/Nе[−λ,λ], что требуетλ≥∣x⋅j'y∣/N, чтобы сделать весьбета^=0, можноλ=maxj∣x⋅j'y∣/N, что сделатьбета^=0самый маленькийλ.
3 Другие решения
Существуют и другие решения для решения LASSO, такие как гомотопический метод, который можно получить из0Первоначально получается путь к последовательному решению, причем путь кусочно-линейный.
Существует также алгоритм LARS (регрессия по наименьшему углу), который является одним из гомотопических методов, позволяющим эффективно получать кусочно-линейные пути.
Здесь не развернуто.
4 Ортогональный базис
В приведенном выше процессе, если независимые переменные ортогонализированы, расчет может быть значительно упрощен. Как и в разделе 2, если независимые переменные ортогональны, тоx⋅j'r(j)/N=x⋅j'y/N,В настоящее времябета^jчто будетyправильноx⋅jСделайте МНК-решение регрессии и передайте значение после оператора мягкого порога.