올가미에서 0 구성 요소를 제공하는 가장 작은


14

올가미 추정치 정의 β λ = ARG 여기서 I ^ {일}x_i로부터 \에서 \ mathbb {R}은 ^ P 설계 행렬 X \에서 \ mathbb {R} ^ {n \ 시간 p를} 벡터 인 확률 론적 반응 y_i ( i = 1의 경우, \ ​​dots n ) 를 설명하기위한 공변량

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

우리는 알고에 대한 λ1nXTy , 올가미 추정 β^λ=0 . (예를 들어, Lasso 및 Ridge 조정 매개 변수 범위 를 참조하십시오 .) 다른 표기법에서는 λmax=1nXTy 냅니다. 그 통지 λmax=supβ^λ0λ.올가미 솔루션 경로를 표시하는 다음 이미지를 통해이를 시각적으로 볼 수 있습니다.

올가미 솔루션 경로

플롯 의 오른쪽에서 모든 계수는 0입니다. 이것은 위에서 설명한 \ lambda_ \ mathrm {max} 지점에서 발생합니다 λmax.

이 그림에서 가장 왼쪽에있는 계수는 모두 0이 아니라는 것을 알 수 있습니다 . 의 모든 구성 요소가있는 의 값β λ λ = Jλβ^λ 처음 제로는? 즉 및 의 함수로서 는 무엇입니까? 닫힌 양식 솔루션에 관심이 있습니다. 특히, 나는 LARS가 계산을 통해 매듭을 찾을 수 있다고 제안하는 것과 같은 알고리즘 솔루션에 관심이 없습니다.XY

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

내 관심사에도 불구하고 은 닫힌 형태로 사용할 수없는 것 같습니다. 그렇지 않으면 올가미 계산 패키지가 교차 유효성 검사 중에 튜닝 매개 변수 깊이를 결정할 때이를 활용할 수 있기 때문입니다. 이것에 비추어, 나는 에 대해 이론적으로 보여 질 수있는 어떤 것에 관심이 있고 (여전히) 닫힌 형태에 특히 관심이 있습니다. λ m i nλminλmin


이것은 glmnet 논문에서 언급되고 입증되었습니다 : web.stanford.edu/~hastie/Papers/glmnet.pdf
Matthew Drury

@MatthewDrury 공유해 주셔서 감사합니다! 그러나이 백서에서는 제안한 내용을 공유하지 않는 것 같습니다. 특히 내 는 입니다. λmaxλmin
user795305

[tuning-parameter] 태그가 필요합니까?
amoeba는 Reinstate Monica

1
올가미 솔루션의 닫힌 양식은 일반적으로 존재하지 않습니다 ( stats.stackexchange.com/questions/174003/… 참조 ). 그러나, lars는 최소한 무슨 일이 일어나고 있는지, 어떤 정확한 조건에서 / 언제나 변수를 추가 / 삭제할 수 있는지 알려줍니다. 나는 이것과 같은 것이 당신이 얻을 수있는 최선이라고 생각합니다.
chRrr

1
@chRrr 나는 이것이 완전히 공정하다고 확신하지 않습니다 : 우리 는 대해 임을 알고 있습니다. 즉, 해가 0 인 극단적 인 경우에는 닫힌 형태입니다. 올가미 추정치가 조밀 한 경우 (0이 없음) 비슷한 경우에도 마찬가지입니다. 사실, 나는 의 정확한 항목에 관심 이 없습니다. β^λ=0λ1nXtyβ^λ
user795305

답변:


15

이 질문에 설명 된 올가미 추정치는 다음 최적화 문제와 동등한 lagrange multiplier입니다.

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]
ε 2 1 + ϵ 2 2 + ϵ 2 3 그리고 우리는 최소화ϵ12+ϵ22+ϵ32 제약 조건 를 합니다abs(β1)+abs(β2)+abs(β3)t

이미지는 다음과 같습니다.

  • 빨간색 표면은 제약 조건, X에 의해 스팬 된 폴리 토프를 나타냅니다.
  • 그리고 녹색 표면은 최소화 된 표면 인 구를 나타냅니다.
  • 파란색 선은 우리가 또는 변경할 때 찾은 올가미 경로를 보여줍니다 .tλ
  • 녹색 벡터는 OLS 솔루션 ( 또는 냅니다.y^β1=β2=β3=1 , Y =X1+X2+X3y^=x1+x2+x3
  • 3 개의 검은 벡터는 , 및 입니다.x1=(0.8,0.6,0)x2=(0,0.6,0.8)x3=(0.6,0.64,0.48)

우리는 세 가지 이미지를 보여줍니다 :

  1. 첫 번째 이미지 에서는 폴리 토프의 한 지점 만 구에 닿아 있습니다. 이 이미지는 올가미 솔루션이 여러 OLS 솔루션이 아닌 이유를 잘 보여줍니다. OLS 솔루션의 방향은 합계에 더 강력합니다 . 이 경우 단일|β|1β iβi 0이 아닙니다.
  2. 두 번째 이미지 에서 폴리 토프의 융기 부분이 구에 닿고 있습니다 (높은 치수에서는 더 높은 치수의 유사체를 얻습니다). 이 경우 여러βi 는 0이 아닙니다.
  3. 세 번째 이미지 에서 폴리 토프의 패싯은 구에 닿아 있습니다. 이 경우 모든 는 0이βi .

또는 의 범위tλ첫 번째와 세 번째 사례가있는 간단한 기하학적 표현으로 인해 쉽게 계산할 수 있습니다.

사례 1 : 단일βi 0이 아닌

0이 아닌 는 연관된 벡터 가 와의 공분산의 절대 값이 가장 높은 것입니다 (이것은 OLS 솔루션에 가장 가까운 parrallelotope의 지점입니다). 우리는 ( 를 음의 방향으로 증가시키는 지 또는 양의 방향으로 증가시키는 지에 따라 부호) 를 취함으로써 적어도 0이 아닌 를 갖는 Lagrange multiplier 계산할 수 있습니다 .βixiY λ m X β ± β β Iy^λmaxβ±βiβi

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

이로 인해

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

이것은 주석에 언급 된 와 같습니다 .||XTy||

여기서 우리는 폴리 토프의 끝이 구체에 닿는 특수한 경우에만 사실입니다 ( 따라서 일반화는 간단하지만 일반적인 해결책은 아닙니다 ).

사례 3 : 모든 는 0이 아닙니다.β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(β^)

아래에서 모든 계수가 0이 아닌 을 찾으십시오 . OLS 솔루션에서 계수 중 하나가 0 인 지점으로 다시 계산하면됩니다.λmin

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

이 시점에서 미분을 평가합니다 (이전의 계산할 때와 같이 ). 우리는 이차 함수에 대해 :λmaxq(x)=2q(1)x

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

이미지

폴리 토프의 한 점이 구에 닿아 있고 단일 가 0이 아닙니다.βi

올가미 경로의 첫 번째 단계

폴리 토프의 융기 부분 (또는 여러 치수가 다름)이 구에 있으며 많은 가 0이 아닙니다.βi

올가미 길의 중간

폴리 토프의 패싯이 구에 있으며 모든 가 0이 아닙니다.β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

참고 : 마지막 3 줄이 가장 중요합니다

> 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에 의해 작성


수정 사항을 포함 해 주셔서 감사합니다! 지금까지 읽은 내용에서는 "case 1"하위 섹션을 지나갔습니다. 파생 된 의 결과 에는 절대 값이나 최대 값이 포함되어 있지 않으므로 잘못되었습니다. 우리는 도출 과정에서 부호 실수, 미분 가능성이 잘못 가정 된 장소, 를 "임의 선택" 으로 구별하기위한 부정확 함, 잘못 평가 된 파생 상품 이 있기 때문에 실수가 있음을 더 알고 있습니다. 솔직히 말해서 유효한 " "부호 가 없습니다 . λmaxi=
user795305

더하기 빼기 기호로 수정했습니다. 베타의 변화는 긍정적이거나 부정적 일 수 있습니다. 최대 및 "임의 선택"... ""관련 벡터 가 " 와 가장 높은 공분산을 갖습니다 xiy^
Sextus Empiricus

업데이트 해 주셔서 감사합니다! 그러나 여전히 문제가 있습니다. 예를 들어, 가 잘못 평가되었습니다. βiyXβ22
user795305

만약 다음 이 상관 관계는 방정식에 들어갑니다. s = 0이면 tangent의 변화 만 벡터β=0βi||yXβ||22
=||yXβ||2βi2||yXβ||2
=||ysxi||2s2||yXβ||2
=2cor(xi,y)||xi||2||y||2
=2xiy
sxiyysxi
Sextus Empiricus

아, 알았어요. 그래서 당신의 주장에는 한계가 있습니다! ( 을 모두 사용 하고 계수가 0이 .) 또한 와 같은 행의 두 번째 등식 은 절대 값의 미분으로 인해 부호가 변경 될 수 있기 때문에 오도의 소지가 있습니다. β=0λmax
user795305
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.