发起人:方想 初入职场

回复 ( 10 )

  1. 林林林
    理由
    举报 取消

    引用自PRML,说的很清楚。

  2. 王赟 Maigo
    理由
    举报 取消

    假设费用函数 L 与某个参数 x 的关系如图所示:

    则最优的 x 在绿点处,x 非零。

    现在施加 L2 regularization,新的费用函数(L + Cx^2)如图中蓝线所示:

    最优的 x 在黄点处,x 的绝对值减小了,但依然非零。

    而如果施加 L1 regularization,则新的费用函数(L + C|x|)如图中粉线所示:

    最优的 x 就变成了 0。这里利用的就是绝对值函数的尖峰。

    两种 regularization 能不能把最优的 x 变成 0,取决于原先的费用函数在 0 点处的导数。

    如果本来导数不为 0,那么施加 L2 regularization 后导数依然不为 0,最优的 x 也不会变成 0。

    而施加 L1 regularization 时,只要 regularization 项的系数 C 大于原先费用函数在 0 点处的导数的绝对值,x = 0 就会变成一个极小值点。

    上面只分析了一个参数 x。事实上 L1 regularization 会使得许多参数的最优值变成 0,这样模型就稀疏了。

  3. amnesia
    理由
    举报 取消

    首先你要知道L1范式和L2范式是怎么来的,然后是为什么要把L1或者L2正则项加到代价函数中去.

    L1,L2范式来自于对数据的先验知识.如果你认为,你现有的数据来自于高斯分布,那么就应该在代价函数中加入数据先验P(x),一般由于推导和计算方便会加入对数似然,也就是log(P(x)),然后再去优化,这样最终的结果是,由于你的模型参数考虑了数据先验,模型效果当然就更好.

    哦对了,如果你去看看高斯分布的概率密度函数P(x),你会发现取对数后的log(P(x))就剩下一个平方项了,这就是L2范式的由来–高斯先验.

    同样,如果你认为你的数据是稀疏的,不妨就认为它来自某种laplace分布.不知你是否见过laplace分布的概率密度函数,我贴出一张维基上的图,

    laplace分布是尖尖的分布,是不是很像一个pulse?从这张图上,你应该就能看出,服从laplace分布的数据就是稀疏的了(只有很小的概率有值,大部分概率值都很小或为0).

    那么,加入了laplace先验作为正则项的代价函数是什么?

    再看看laplace分布的概率密度函数(还是来自维基百科),

    看到没,如果取对数,剩下的是一个一次项|x-u|,这就是L1范式.

    所以用L1范式去正则,就假定了你的数据是laplace分布,是稀疏的.

  4. 十方
    理由
    举报 取消

    王赟 Maigo的答案特别棒!

    我还有几个理解这个问题的方式,不过自己没有搞清楚,想拿出来探讨一下。

    1.假设原先损失函数是C0,那么在L2和L1正则条件下对参数求导分别是:

    可以想象用梯度下降的方法,当w小于1的时候,L2正则项的惩罚效果越来越小,L1正则项惩罚效果依然很大,L1可以惩罚到0,而L2很难。

    2.我们假设有两个完全一样的特征,使用L2正则想的话,两个特征权重相等的时候惩罚最小,所以L2具有权重平均分配的效果。

    3.第三个说法是我听说的,如果我们使用L0作为正则项,三个系数不为零则惩罚力度 3 alpha,五个不为零则惩罚力度 5 alpha,很容易理解它有让稀疏稀疏的效果。在某些条件下L0和L1正则项是等价的(不要问我是什么条件,我查了没看懂……),所以L1容易得到稀疏解。

    以上个人的理解,有错误的地方欢迎指正。

  5. Jingwei Liang
    理由
    举报 取消

    关于为什么\ell_1-norm regularization会使得结果稀疏,从几何角度可以很好的解释,以Basis Pursuit(BP)为例,最简单也是最经典的问题。先从BP问题起源说起,假设关于变量x \in \mathbb{R}^n,我们有

    b = Ax,

    其中A:\mathbb{R}^n \to \mathbb{R}^m是一个线性算子(linear operator),b \in \mathbb{R}^m是观察量(observation)。如下图所示(2D example)

    已知bAx的过程称作最小二乘(least square),当A^TA可逆时,那么x可以由如下显式表达

    x = (A^TA)^{-1} A^T b.

    但是,对于A,很多时候,m<n,或者m=n\mathrm{rank}(A)<m,这使得问题时病态的(ill-posed),并且存在无穷多的解。

    对于这类情形,为了得到一些有意义的解,需要对x进行正则化(regularization)。下面就对比下,对x施加\ell_1\ell_2正则时(比如,希望解的\ell_1-norm最小),会得到怎样的解。此时我们会得到如下的优化问题

    \min_{x\in\mathbb{R}^n} \|x\|_{p}~~\mathrm{subject~to}~~b=Ax.

    其中p=1,2。对于p=1,该问题又称作Basis Pursuit。对两种情形分别求解,我们会得到如下图所示的可行点(feasible point),x^\star_{\ell_1}x^\star_{\ell_2}。很显然,可行解x^\star_{\ell_1}是稀疏的(x_1=0),而x^\star_{\ell_2}不是(x_1\neq 0, x_2 \neq 0)。

    也就是说,对于一个线性约束(b=Ax),当用\ell_{p}-norm ball与之相切时,只有当p\leq 1时,切点在该ball的一个顶点(在数轴上),并且该点是稀疏的(很多元素为零)。

    不过这时候你也许会问,如果b=Ax1=-x_1+x_2平行,或者与x_1轴平行怎么办。对于前者,这个时候用\ell_{p}-norm p<1仍然可以得到稀疏解,但此时解不唯一。对于后者,问题时退化的。实际上,线性算子A是要满足一定性质的,比如最开始的Restricted Isometry Property (RIP)条件。

    还有就是如果observation带噪声怎么办,对于上面的图示,唯一的变化就是不再是b=Ax一条直线,而是带有上下届的一个band,band宽度依噪声强度决定。

    最后,关于稀疏表达的意义,可参考另一个回答

    稀疏表达的意义在于?为什么稀疏表达得到广泛的应用? – 知乎用户的回答

  6. 张余乐
    理由
    举报 取消

    可以查查凸优化这本书,书上说,l1对于小值的惩罚,比l2的大。自然求优化的时候,求得小系数的值越小。

  7. ymgs
    理由
    举报 取消

    因为引入L1-regularization的时候,我们求解问题:

    min:Loss(W)+\lambda L_1(W)

    等价于:

    min:Loss(W)  \\
s.t. L_1(W) = C

    也就是我们求解的是一个带约束的问题。用Lagrange multiplier来求解。收敛的地方是:

    \nabla Loss(W) = -k\nabla L_1(W)

    但是有些地方是不可微的。比如L_1的几个顶点处。所以准确的来说,达到最优解W^*的地方是-\nabla Loss(W)落在W的normal cone的区域内。

    紫色区域就是顶点处的normal cone。 而正方形的边的一点的normal cone只是垂直它的方向,也就只有一条线。然而我们的数据是服从某个分布,Loss function关于W的形状也就是由数据决定的,那么所有与约束条件相交的点中,哪个满足上面的条件的概率最大呢?显然是顶点。也因此使得我们的模型更加sparse。

    更加直观的来说,有一个球在曲面上,我们把球受到的重力和曲面的支撑力的合力看成一个力,方向也就是曲面的梯度方向。此外我们还受到一个来自于四边形(上图)的架子的支撑力,而最优解处就是球能够静止平衡的地方,那么很明显,是不是在四个顶角处最有可能禁止。

    就是拿跟绳子挂点重物,绳子很容易滑倒这个架子的角点处吧。

    一般来说,越是non-convex的regularizer越是容易使的我们的模型sparse。比如L_pp<1时。

  8. 匿名用户
    理由
    举报 取消

    用梯度来理解比较直观。l1范数恒定以1的梯度向0靠拢, 容易收敛到0。l2范数越接近0梯度数值越小, 容易收敛到一堆小值。

  9. 2prime
    理由
    举报 取消

    l1在小的时候惩罚力度还很大吧因为

    换个角度看

    用proximal mapping算法看的话l1的proximal函数是shrinkage带有一个阈值,这么看的话l1优化出来应该很稀疏吧

    贝叶斯看法的话原来是Laplace分布所以稀疏吧?不确定

  10. HatMatrix
    理由
    举报 取消

    来源:The Elements of Statistical Learning(Second Edition)

我来回答

Captcha 点击图片更换验证码