在套索中给出0分量的最小


14

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

我们知道,对于,套索估计\ hat \ beta ^ \ lambda = 0。(例如,请参阅Lasso和Ridge调整参数范围。)用另一种表示法表示\ lambda_ \ max = \ frac {1} {n} \ | X ^ T y \ | _ \ infty。请注意,\ lambda_ \ mathrm {max} = \ sup _ {\ hat \ beta ^ \ lambda \ ne 0} \ lambda。我们可以通过以下显示套索求解路径的图像直观地看到这一点: β λ=0λ1nXTyβ^λ=0λmax=1nXTyλmax=supβ^λ0λ.

套索解决方案路径

请注意,在图的右侧,所有系数均为零。这发生在上述λmax点。

从该图中,我们也注意到在远处左侧,所有的系数是非零:什么是价值在其中的任何组件最初为零?也就是说,作为和的函数,等于多少?我对封闭式解决方案感兴趣。特别是,我对算法解决方案不感兴趣,例如,暗示LARS可以通过计算找到结。λβ^λ

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

尽管有我的兴趣,但是可能无法以封闭形式使用,因为否则,套索计算包可能会在交叉验证期间确定调整参数深度时利用它。有鉴于此,我对理论上可以证明的关于任何内容都感兴趣,并且(仍然)对封闭形式特别感兴趣。λminλmin


在glmnet论文中对此
Matthew Drury

@MatthewDrury感谢您的分享!但是,本文似乎没有分享您似乎建议他们这样做的内容。特别是,通知我的是他们λ 分钟λmaxλmin
user795305

您确定我们需要[tuning-parameter]标签吗?
变形虫说莫妮卡(Reonica Monica)

1
没错,套​​索解决方案的封闭形式通常不存在(请参阅stats.stackexchange.com/questions/174003/…)。但是,lars至少会告诉您发生了什么情况以及在什么确切条件下/何时可以添加/删除变量。我认为类似的东西是您可以获得的最好的东西。
chRrr

1
@chRrr我不知道这是完全公平地说:我们知道,β λ = 0λ 1β^λ=0。也就是说,在解决方案为0的极端情况下,我们具有封闭形式。我想问在套索估计为密集(即无零)的极端情况下,类似情况是否成立。事实上,我还没有兴趣的确切条目 β λ---他们只是无论是零。λ1nXtyβ^λ
user795305

Answers:


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+ϵ32与约束abs(β1)+abs(β2)+abs(β3)t

图片显示:

  • 红色表面描述了约束,X跨越了一个多面体。
  • 绿色表面表示最小化的表面,即球体。
  • 蓝线显示套索路径,即我们更改tλ发现的解。
  • 绿色矢量示出了OLS溶液ÿ(其被选择作为β 1 = β 2 = β 3 = 1Ý = X 1 + X 2 + X 3y^β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非零

非零βi是一个给其相关联的向量xi具有与协方差的绝对值最高 y^这是其中parrallelotope最接近于OLS溶液的点)。我们可以计算拉格朗日乘数λmax下面,我们有至少一个非零β通过取导数±βi(取决于我们是否增加的符号βi在负方向或正方向):

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

这导致

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

等于||XTy||注释中提到了

在这里我们应该注意到,这仅适用于多面体的尖端接触球体的特殊情况(因此,虽然一般化很简单,但这不是一般性的解决方案)。

案例3:所有的βi是非零。

在这种情况下,多面体的一个小面正在接触球体。然后套索路径的变化方向垂直于特定小平面的表面。

多面体具有许多方面,具有xi正负贡献。在最后的套索步骤中,当套索解决方案接近ols解决方案时,则xi的贡献必须由OLS解决方案的符号来定义。可以通过采用||β(r)||1的梯度来定义构面的法线。| β r | | 1,在点r处beta的和的值是:

ñ=-[R||β[R||1个=-[R标志β^XŤX-1个XŤ[R=-标志β^XŤX-1个XŤ

而该方向的beta的等效变化为:

β一种sŤ=XŤX-1个Xñ=-XŤX-1个XŤ[标志β^XŤX-1个XŤ]

which after some algebraic tricks with shifting the transposes (ATBT=[BA]T) and distribution of brackets becomes

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

we normalize this direction:

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

To find the λmin below which all coefficients are non-zero. We only have to calculate back from the OLS solution back to the point where one of the coefficients is zero,

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

,此时我们评估导数(与之前计算时一样) λ一种X)。我们将其用于二次函数qX=2q1个X

λ一世ñ=dñ||Xβ一种sŤñØ[R一种一世žËd||22

图片

多角形的一个点接触球体,一个 β一世 不为零:

套索路径的第一步

一个多面体的脊(或在多个维度上不同)正在接触球体,许多 β一世 不为零:

套索路径的中间

多面体的一个面正接触球体,所有 β一世 不为零:

套索路径的最后一步

代码示例:

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”小节的后面。的结果λ最大值派生那里是错误的,因为它不包含绝对值或最大值。我们进一步知道存在一个错误,因为在推导中存在一个符号错误,一个错误地假定可微性的地方,一个“任意选择”。一世区分和评估错误的导数。坦率地说,没有一个“=”有效的标志。
user795305 '17

我已经用加减号纠正了。Beta的变化可以是正的或负的。关于最大和“任意选择” ... “相关的向量X一世 与的协方差最高 ÿ^
Sextus Empiricus

感谢更新!但是,仍然存在问题。例如,β一世ÿ-Xβ22 评估不正确。
user795305

如果 β=0 然后 β一世||ÿ-Xβ||22
=||ÿ-Xβ||2β一世2||ÿ-Xβ||2
=||ÿ-sX一世||2s2||ÿ-Xβ||2
=2CØ[RX一世ÿ||X一世||2||ÿ||2
=2X一世ÿ
该相关性进入方程式是因为,如果s = 0,则仅改变 sX一世 切线 ÿ 正在改变向量的长度 ÿ-sX一世
Sextus Empiricus

啊,好的,所以您的论点有限制!(您同时使用β=0 并且系数不为零。)此外, λ最大值 这是一种误导,因为符号可能会因绝对值的差异而改变。
user795305 '17
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.