Яка найменша яка дає 0 компонент у ласо?


14

Визначте оцінку ласо де i ^ {th} рядок x_i \ в \ mathbb {R} ^ p проектної матриці X \ in \ mathbb {R} ^ {n \ times p} - вектор коваріатів для пояснення стохастичної відповіді y_i (для i = 1, \ крапки n ).

β^λ=argminβRp12nyXβ22+λβ1,
ithxiRpXRn×pyii=1,n

Ми знаємо, що для λ1nXTy , оцінка ласо β^λ=0 . (Дивіться, наприклад, область параметрів настройки Лассо та Рідж .) В інших позначеннях це виражає, що λmax=1nXTy . Зауважте, що λmax=supβ^λ0λ.Це ми можемо побачити візуально із наступним зображенням, що відображає шлях рішення ласо:

шлях рішення лассо

Зверніть увагу , що на далеко правій стороні ділянки, всі коефіцієнти дорівнюють нулю. Це відбувається в описаній вище точці λmax .

З цього сюжету ми також помічаємо, що на крайній лівій стороні всі коефіцієнти є ненульовими: яке значення при якому будь-який компонент спочатку дорівнює нулю? Тобто, що дорівнює, як функція і ? Мене цікавить рішення закритої форми. Зокрема, мене не цікавить таке алгоритмічне рішення, як, наприклад, припущення, що LARS може знайти вузол шляхом обчислення.λβ^λ

λmin=minjs.t.β^j=0λ
Xy

Незважаючи на мої інтереси, здається, що може бути недоступним у закритому вигляді, оскільки, в іншому випадку, обчислювальні пакети ймовірно, скористаються цим при визначенні глибини параметрів настройки під час перехресної перевірки. Зважаючи на це, мене цікавить все, що теоретично можна показати про та (досі), особливо зацікавлене у закритій формі.λminλmin


Про це йдеться і доводиться у статті glmnet
Метью Дрюрі

@MatthewDrury Дякую за те, що поділився цим! Однак цей документ, схоже, не поділяє те, що ви, начебто, пропонуєте зробити. Зокрема, зауважте, що мій є їх . λmaxλmin
user795305

Ви впевнені, що нам потрібен тег [настройка-параметр]?
амеба каже, що повернеться до Моніки

1
Ви маєте право, закрита форма для рішення ласо взагалі не існує (див. stats.stackexchange.com/questions/174003/… ). однак, lars принаймні повідомляє, що відбувається і за яких точних умов / у який час можна додати / видалити змінну. я думаю, що щось подібне - це найкраще, що ти можеш отримати.
chRrr

1
@chRrr Я не впевнений, що це цілком справедливо сказати: ми знаємо, що для . Тобто, в крайньому випадку рішення, що дорівнює 0, ми маємо закриту форму. Я запитую, чи подібне вірно в крайньому випадку, коли оцінка ласо є щільною (тобто немає нулів). Дійсно, мене навіть не цікавлять точні записи --- просто вони нульові чи ні. β^λ=0λ1nXtyβ^λ
user795305

Відповіді:


15

Оцінка ласо, описана у запитанні, є еквівалентом множника лагранжу в наступній задачі оптимізації:

minimize f(β) subject to g(β)t

f(β)=12n||yXβ||22g(β)=||β||1

Цей оптимізація має геометричне зображення пошуку точки дотику між багатовимірною сферою та політопом (що охоплюється векторами X). Поверхня політопа являє собою . Квадрат радіуса сфери представляє функцію і мінімізується при контакті поверхонь.g(β)f(β)

На малюнках нижче наведено графічне пояснення. Зображення використовували наступну просту задачу з векторами довжиною 3 (для простоти, щоб можна було зробити креслення):

[y1y2y3]=[1.41.840.32]=β1[0.80.60]+β2[00.60.8]+β3[0.60.640.48]+[ϵ1ϵ2ϵ3]
і ми мінімізуємо з обмеженнямϵ12+ϵ22+ϵ32abs(β1)+abs(β2)+abs(β3)t

На зображеннях показано:

  • Червона поверхня зображує обмеження, багатогранник, що охоплюється X.
  • А зелена поверхня зображує мінімізовану поверхню, сферу.
  • Синя лінія показує шлях lasso, рішення, які ми знаходимо, змінюючи або .tλ
  • Зелений вектор показує рішення OLS (який було обрано як або .y^β1=β2=β3=1y^=x1+x2+x3
  • Три чорні вектори: , і .x1=(0.8,0.6,0)x2=(0,0.6,0.8)x3=(0.6,0.64,0.48)

Ми показуємо три зображення:

  1. На першому зображенні лише точка політопа стосується сфери . Це зображення дуже добре демонструє, чому рішення ласо не є просто кратним рішенням OLS. Напрямок рішення OLS додає сильнішої суми . У цьому випадку лише один не дорівнює нулю.|β|1βi
  2. У другому зображенні хребет багатогранника торкається сфери (у більш високих розмірах ми отримуємо аналоги більш високих розмірів). У цьому випадку множина не дорівнює нулю.βi
  3. На третьому зображенні грань політопа торкається сфери . У цьому випадку всі є нульовимиβi .

Діапазон або для якого ми маємо перший та третій випадки, можна легко обчислити завдяки їх простому геометричному зображенню.tλ

Випадок 1: Лише одиничний не нульовийβi

Ненульовий - це той, для якого асоційований вектор має найбільшу абсолютну величину коваріації з (це точка паралелетотопа, найближчого до рішення OLS). Ми можемо обчислити множник Lagrange нижче якого у нас є принаймні ненульовий , взявши похідну з (знак залежно від того, збільшуємо в негативному чи позитивному напрямку):βixiy^λmaxβ±βiβi

(12n||yXβ||22λ||β||1)±βi=0

що призводить до

λmax=(12n(||yXβ||22±βi)(||β||1)±βi)=±(12n||yXβ||22βi=±1nxiy

що дорівнює згаданому в коментарях.||XTy||

де слід зазначити, що це справедливо лише для особливого випадку, коли кінчик політопа торкається сфери ( тому це не є загальним рішенням , хоча узагальнення є прямим).

Випадок 3: Усі не нульові.βi

У цьому випадку грань політопа торкається сфери. Тоді напрямок зміни шляху ласо є нормальним до поверхні конкретної грані.

Політоп має багато аспектів, з позитивним і негативним внеском . У випадку останнього етапу ласо, коли розчин ласо близький до розчину ols, тоді внески повинні визначатися знаком рішення OLS. Нормальність грані можна визначити, взявши градієнт функції , значення суми бета в точці , яке становить:xixi||β(r)||1r

n=r(||β(r)||1)=r(sign(β^)(XTX)1XTr)=sign(β^)(XTX)1XT

і еквівалентна зміна бета-версії для цього напрямку:

βlast=(XTX)1Xn=(XTX)1XT[sign(β^)(XTX)1XT]

який після деяких алгебраїчних трюків зі зміщенням транспозитів ( ) і розподілом дужок стаєATBT=[BA]T

βlast=(XTX)1sign(β^)

ми нормалізуємо цей напрямок:

βlast,normalized=βlastβlastsign(β^)

Щоб знайти нижче якого всі коефіцієнти не дорівнюють нулю. Нам залишається лише обчислити назад від рішення OLS до точки, коли один із коефіцієнтів дорівнює нулю,λmin

d=min(β^βlast,normalized)with the condition that β^βlast,normalized>0

, і в цей момент ми оцінюємо похідну (як і раніше, коли обчислюємо ). Ми використовуємо, що для квадратичної функції маємо :λmaxq(x)=2q(1)x

λmin=dn||Xβlast,normalized||22

Зображення

точка політопа стосується сфери, одиничний не дорівнює нулю:βi

перший крок ласового шляху

хребет (або різняться в декількох вимірах) політопа торкається сфери, багато не нульові:βi

середина шляху Ласо

грань політопа торкається сфери, всі не нульові:βi

заключний крок ласового шляху

Приклад коду:

library(lars)    
data(diabetes)
y <- diabetes$y - mean(diabetes$y)
x <- diabetes$x

# models
lmc <- coef(lm(y~0+x))
modl <- lars(diabetes$x, diabetes$y, type="lasso")

# matrix equation
d_x <- matrix(rep(x[,1],9),length(x[,1])) %*% diag(sign(lmc[-c(1)]/lmc[1]))
x_c = x[,-1]-d_x
y_c = -x[,1]

# solving equation
cof <- coefficients(lm(y_c~0+x_c))
cof <- c(1-sum(cof*sign(lmc[-c(1)]/lmc[1])),cof)

# alternatively the last direction of change in coefficients is found by:
solve(t(x) %*% x) %*% sign(lmc)

# solution by lars package
cof_m <-(coefficients(modl)[13,]-coefficients(modl)[12,])

# last step
dist <- x %*% (cof/sum(cof*sign(lmc[])))
#dist_m <- x %*% (cof_m/sum(cof_m*sign(lmc[]))) #for comparison

# calculate back to zero
shrinking_set <- which(-lmc[]/cof>0)  #only the positive values
step_last <- min((-lmc/cof)[shrinking_set])

d_err_d_beta <- step_last*sum(dist^2)

# compare
modl[4] #all computed lambda
d_err_d_beta  # lambda last change
max(t(x) %*% y) # lambda first change
enter code here

зауважте: останні три рядки є найважливішими

> modl[4]            # all computed lambda by algorithm
$lambda
 [1] 949.435260 889.315991 452.900969 316.074053 130.130851  88.782430  68.965221  19.981255   5.477473   5.089179
[11]   2.182250   1.310435

> d_err_d_beta       # lambda last change by calculating only last step
    xhdl 
1.310435 
> max(t(x) %*% y)    # lambda first change by max(x^T y)
[1] 949.4353

Автор StackExchangeStrike


Дякуємо, що включили правки! Поки в своєму читанні я застряг лише біля підрозділу "випадок 1". Результат для є неправильним, оскільки він не містить абсолютного значення або максимуму. Далі ми знаємо, що є помилка, оскільки у деривації є помилка ознаки, місце, де диференційованість помилково припускається, "довільний вибір" для диференціювання стосовно та неправильно оцінене похідне. Якщо чесно, то не один знак " ", який би був дійсним. λмаксi=
користувач795305

Я виправив це зі знаком плюс мінус. Зміна бета-версії може бути позитивною чи негативною. Щодо максимального та "довільного вибору" ... ", для якого асоційований вектор має найбільшу коваріацію з "хiу^
Секст Емпірік

Дякуємо за оновлення! Однак проблеми все ще є. Наприклад, оцінюється неправильно. βiyXβ22
користувач795305

Якщо то ця кореляція входить у рівняння, оскільки, якщо s = 0, то лише зміна дотичної до - це зміна довжини вектораβ=0βi||yXβ||22
=||yXβ||2βi2||yXβ||2
=||ysxi||2s2||yXβ||2
=2cor(xi,y)||xi||2||y||2
=2xiy
sxiyysxi
Секст Емпірік

Ну добре, значить, у ваших аргументах є обмеження! (Ви використовуєте обидва , а коефіцієнт - ненульовий.) Крім того, друга рівність у рядку з вводить в оману, оскільки знак може змінитися через диференціювання абсолютного значення. β=0λmax
користувач795305
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.