例如对于回归问题,如果有两个变量之间,有很强的共线性关系,听说L1正则,会倾向于让其中一个变量的权值为0,那么想了解一下,实际中,L1正则会让哪个变量的权值变为0,这个是随机的,还是有什么规律可以解释?直观而言,L1会倾向于把相对更“没用”的特征权值变成0。不过既然已经知道两个变量有线性关系,可以考虑做回归之前先去相关吧(比如PCA)。如果两个共线性很强的变量都是noise,都变0。如果有一个是signal或都是signal,如果p>n,那就是随机压缩到0;如果p<n,那都不会被压缩到0。去看Lasso Consistency那篇paper吧,有个Lasso Irrepresentable Condition。当signal 和noise共线性很强的时候,lasso 无法选出true model 。L1的作用是近似L0,而L0就是用在线性回归上就是特征选择,直觉上意在扔掉冗余特征,如果按照题目中说的有两个变量线性相关,往往(由于L1是近似L0,所以并不总是)最后最多留一个非零权重。L1要想和L0表现完全一致需要满足一些假设和理论条件。这个跟解法有关。lar和shooting可能会有不同结果。如果知道有相关性但是不知道是哪些,可以用elastic net。假如知道是哪些variable,可以用group lasso。假设两个变量分别是x,y, x≈t y. 那么在regression函数里,假设只有x,系数为a_0,假设只有y,系数为b_0。那么a_0 x≈b_0 y, a_0 ≈ b_0 / t. 加上L1 penalty之后,a_0产生的penalty是b_0/t, b_0当然产生b_0。优化后会选择一个小的penalty,也就是如果|t|>1,则|a_0|<|b_0|, y的系数b会被赶到0. 如果|t|<1, x的系数a会被赶到0. 如果|t|=1,那么a和b会随机生成一个组合,和为a_0+b_0。