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β⁡‖y−Xβ‖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(β)=‖y−Xβ‖22+α‖β‖1
=∑i=1n(yi−Xiβ)2+α∑j=1p|βj|
( Xi to i-ty rząd X )
=∑i=1nyi2−2∑i=1nyiXiβ+∑i=1nβTXiTXiβ+α∑j=1p|βj|
⇒∂f∂βj=−2∑i=1nyiXij+2∑i=1nXij2βj+∂∂βj(α|βj|)
={−2∑i=1nyiXij+2∑i=1nXij2βj+α for βj>0−2∑i=1nyiXij+2∑i=1nXij2βj−α for βj<0[−2∑i=1nyiXij−α,−2∑i=1nyiXij+α] for βj=0
Z ∂f∂βj=0 otrzymujemy

βj={(2(∑i=1nyiXij)−α)/2∑i=1nXij2for ∑i=1nyiXij>α(2(∑i=1nyiXij)+α)/2∑i=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(β)=‖y−Xβ‖22+α‖β‖1
=yTy−2β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|)−2∑i=1,i≠jp(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βi≠jX2(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 :-)


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=1nyi2−2∑i=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
∂∂βj∑i=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.


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,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.