Dlaczego moje wyprowadzenie rozwiązania lasso w zamkniętej formie jest nieprawidłowe?

28

Problem lasso ma rozwiązanie w formie zamkniętej: \ beta_j ^ {\ text {lasso}} = \ mathrm {sgn} (\ beta ^ {\ text {LS}} _ j) (| \ beta_j ^ {\ text {LS }} | - \ alpha) ^ + jeśli X ma kolumny ortonormalne. Pokazano to w tym wątku: Wyprowadzenie zamkniętego rozwiązania lasso .

βlasso=argminβyXβ22+αβ1
βjlasso=sgn(βjLS)(|βjLS|α)+
X

Nie rozumiem jednak, dlaczego ogólnie nie ma rozwiązania w formie zamkniętej. Korzystając z subdifferentials otrzymałem następujące.

( X jest n×p )

f(β)=yXβ22+αβ1
=i=1n(yiXiβ)2+αj=1p|βj|
( Xi to i-ty rząd X )
=i=1nyi22i=1nyiXiβ+i=1nβTXiTXiβ+αj=1p|βj|
fβj=2i=1nyiXij+2i=1nXij2βj+βj(α|βj|)
={2i=1nyiXij+2i=1nXij2βj+α for βj>02i=1nyiXij+2i=1nXij2βjα for βj<0[2i=1nyiXijα,2i=1nyiXij+α] for βj=0
Z fβj=0 otrzymujemy

βj={(2(i=1nyiXij)α)/2i=1nXij2for i=1nyiXij>α(2(i=1nyiXij)+α)/2i=1nXij2for i=1nyiXij<α0 for i=1nyiXij[α,α]

Czy ktoś widzi, gdzie popełniłem błąd?

Odpowiedź:

Jeśli piszemy problem w postaci macierzy, możemy bardzo łatwo zrozumieć, dlaczego rozwiązanie formy zamkniętej istnieje tylko w przypadku ortonormalnym z XTX=I :

f(β)=yXβ22+αβ1
=yTy2βTXTy+βTXTXβ+αβ1
f(β)=2XTy+2XTXβ+(α|β1)
(tutaj zrobiłem wiele kroków naraz. Jednak, do tego momentu jest to całkowicie analogiczne do wyprowadzania rozwiązania najmniejszych kwadratów. Więc powinieneś być w stanie znaleźć tam brakujące kroki.)
fβj=2XjTy+2(XTX)jβ+βj(α|βj|)

Z fβj=0 otrzymujemy

2(XTX)jβ=2XjTyβj(α|βj|)
2(XTX)jjβj=2XjTyβj(α|βj|)2i=1,ijp(XTX)jiβi

Widzimy teraz, że nasze rozwiązanie dla jednego zależy od wszystkich pozostałych więc nie jest jasne, jak postępować tutaj. Jeśli jest ortonormalny, mamy więc na pewno istnieje rozwiązanie w formie zamkniętej.βjβijX2(XTX)jβ=2(I)jβ=2βj

Dziękuję Guðmundurowi Einarssonowi za jego odpowiedź, na której tu opracowałem. Mam nadzieję, że tym razem jest to poprawne :-)

Norbert
źródło
3
Witamy w CrossValidated i gratulujemy bardzo miłego pierwszego postu!
S. Kolassa - Przywróć Monikę

Odpowiedzi:

16

Zwykle odbywa się to z regresją najmniejszego kąta, papier można znaleźć tutaj .

Przepraszam za moje zamieszanie na początku, podejmę kolejną próbę.

Po rozszerzeniu funkcji otrzymujeszf(β)

f(β)=i=1nyi22i=1nyiXiβ+i=1nβTXiTXiβ+αj=1p|βj|

Następnie obliczasz pochodną cząstkową w odniesieniu do . Moje obawy dotyczą twojego wyliczenia pochodnej cząstkowej ostatniego terminu przed normą 1, tj. Wyrażenia kwadratowego. Przeanalizujmy to dalej. Mamy to:βj

Xiβ=βTXiT=(β1Xi1+β2Xi2++βpXip)
Tak więc możesz zasadniczo przepisać swój kwadratowy termin jako: Teraz możemy użyć reguły łańcucha do obliczenia pochodnej tego wrt :
i=1nβTXiTXiβ=i=1n(Xiβ)2
βj
βji=1n(Xiβ)2=i=1nβj(Xiβ)2=i=1n2(Xiβ)Xij

Więc teraz twój problem nie upraszcza się tak łatwo, ponieważ masz wszystkie współczynniki obecne w każdym równaniu.β

To nie odpowiada na pytanie, dlaczego nie ma zamkniętego rozwiązania Lasso, mógłbym dodać coś później.

Gumeo
źródło
1
Wielkie dzięki. Właściwie rozumiem teraz, dlaczego nie ma rozwiązania w formie zamkniętej (zobacz moją edycję).
Norbert,
Słodkie! Świetna robota :)
Gumeo,