Чому моє отримання рішення ласо для закритої форми є неправильним?


28

Проблема з ласою має рішення закритої форми: \ beta_j ^ {\ текст {lasso}} = \ mathrm {sgn} (\ beta ^ {\ текст {LS}} _ j) (| \ beta_j ^ {\ текст {LS }} | - \ alpha) ^ + якщо X має ортонормальні стовпці. Це було показано в цій темі: Виведення розчину ласо закритої форми .

βlasso=argminβ⁡‖y−Xβ‖22+α‖β‖1
βjlasso=sgn(βjLS)(|βjLS|−α)+
X

Однак я не розумію, чому взагалі немає рішення закритої форми. За допомогою піддіфференціалів я отримав наступне.

( X - матриця n×p )

f(β)=‖y−Xβ‖22+α‖β‖1
=∑i=1n(yi−Xiβ)2+α∑j=1p|βj|
( Xi - i-й рядок X )
=∑i=1nyi2−2∑i=1nyiXiβ+∑i=1nβTXiTXiβ+α∑j=1p|βj|
⇒∂f∂βj=−2∑i=1nyiXij+2∑i=1nXij2βj+∂∂βj(α|βj|)
= \ початок {випадків} -2 \ sum_ {i = 1} ^ ny_i X_ {ij} + 2 \ sum_ {i = 1} ^ n X_ {ij} ^ 2 \ beta_j + \ alpha \ текст {for} \ beta_j > 0 \\ -2 \ sum_ {i = 1} ^ ny_i X_ {ij} + 2 \ sum_ {i = 1} ^ n X_ {ij} ^ 2 \ beta_j - \ alpha \ текст {for} \ beta_j <0 \\ [-2 \ sum_ {i = 1} ^ ny_i X_ {ij} - \ alpha, -2 \ sum_ {i = 1} ^ ny_i X_ {ij} + \ alpha] \ текст {for} \ beta_j = 0 \ end { случаи}
={−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
З ∂f∂βj=0 отримаємо

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

Хтось бачить, де я пішов не так?

Відповідь:

Якщо ми запишемо задачу за допомогою матриць, ми можемо легко зрозуміти, чому рішення закритої форми існує лише в ортонормальному випадку з XTX=I :

f(β)=‖y−Xβ‖22+α‖β‖1
=yTy−2βTXTy+βTXTXβ+α‖β‖1
⇒∇f(β)=−2XTy+2XTXβ+∇(α|β‖1)
(тут я зробив відразу багато кроків. Однак, до цього моменту це повністю аналог виведенню рішення з найменшими квадратами. Тому ви повинні мати змогу знайти пропущені кроки там.)
⇒∂f∂βj=−2XjTy+2(XTX)jβ+∂∂βj(α|βj|)

З ∂f∂βj=0 отримаємо

2(XTX)jβ=2XjTy−∂∂βj(α|βj|)
⇔2(XTX)jjβj=2XjTy−∂∂βj(α|βj|)−2∑i=1,i≠jp(XTX)jiβi

Зараз ми можемо бачити, що наше рішення для однієї залежить від усіх інших тому не зрозуміло, як діяти звідси. Якщо є ортонормальним, у нас є тож у цьому випадку, безумовно, існує рішення закритої форми.βjβi≠jX2(XTX)jβ=2(I)jβ=2βj

Дякую Гурмундуру Ейнарссону за його відповідь, про яку я детально розповів тут. Я сподіваюся, що цього разу це правильно :-)


3
Ласкаво просимо в CrossValidated і вітаємо з дуже приємним першим повідомленням!
— S. Kolassa - Відновити Моніку

Відповіді:


16

Зазвичай це робиться з найменшим кутом регресії, ви можете знайти тут папір .

Вибачте за мою плутанину на початку, я збираюся зробити ще одну спробу в цьому.

Тож після розширення вашої функції ви отримаєтеf(β)

f(β)=∑i=1nyi2−2∑i=1nyiXiβ+∑i=1nβTXiTXiβ+α∑j=1p|βj|

Тоді ви обчислюєте часткову похідну відносно . Моє занепокоєння полягає у вашому обчисленні часткової похідної останнього члена перед 1-нормою, тобто квадратичним терміном. Розберемося далі. У нас це є:βj

Xiβ=βTXiT=(β1Xi1+β2Xi2+⋯+βpXip)
Отже, ви можете переписати свій квадратичний термін як: Тепер ми можемо використовувати ланцюгове правило для обчислення похідної цієї wrt :
∑i=1nβTXiTXiβ=∑i=1n(Xiβ)2
βj
∂∂βj∑i=1n(Xiβ)2=∑i=1n∂∂βj(Xiβ)2=∑i=1n2(Xiβ)Xij

Тож тепер ваша проблема не спрощується так легко, оскільки у вас є всі коефіцієнти у кожному рівнянні.β

Це не відповідає на ваше запитання про те, чому немає ласового рішення закритої форми, я можу додати щось пізніше.


1
Дуже дякую. Я фактично зараз бачу, чому немає закритого рішення (див. Мою редакцію).
— Норберт

Солодке! Чудова робота :)
— Gumeo
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.