We are drowning in information and starving for knowledge.
Sparsity and Some Basics of L1 Regularization
2012-05-24
Sparsity 是当今机器学习领域中的一个重要话题。John Lafferty 和 Larry
Wasserman 在 2006 年的一篇评论中提到:
Some current challenges … are high dimensional data, sparsity,
semi-supervised learning, the relation between computation and risk, and
structured prediction. John Lafferty and Larry Wasserman.
Challenges in statistical machine learning. Statistica Sinica. Volume
16, Number 2, pp. 307-323, 2006.
Sparsity 的最重要的“客户”大概要属 high dimensional data
了吧。现在的机器学习问题中,具有非常高维度的数据随处可见。例如,在文档或图片分类中常用的
bag of
words
模型里,如果词典的大小是一百万,那么每个文档将由一百万维的向量来表示。高维度带来的的一个问题就是计算量:在一百万维的空间中,即使计算向量的内积这样的基本操作也会是非常费力的。不过,如果向量是稀疏的的话(事实上在
bag of words 模型中文档向量通常都是非常稀疏的),例如两个向量分别只有
L1
和
L2
个非零元素,那么计算内积可以只使用
min(L1,L2)
次乘法完成。因此稀疏性对于解决高维度数据的计算量问题是非常有效的。
当然高维度带来的问题不止是在计算量上。例如在许多生物相关的问题中,数据的维度非常高,但是由于收集数据需要昂贵的实验,因此可用的训练数据却相当少,这样的问题通常称为“small
n,
large
p
problem”——我们一般用
n
表示数据点的个数,用
p
表示变量的个数,即数据维度。当
p≫n
的时候,不做任何其他假设或者限制的话,学习问题基本上是没法进行的。因为如果用上所有变量的话,p
越大,通常会导致模型越复杂,但是反过来
n
有很小,于是就会出现很严重的 overfitting
问题。例如,最简单的线性回归模型:
也就是说,我们将模型空间限制在
w
的一个
ℓ1-ball
中。为了便于可视化,我们考虑两维的情况,在
(w1,w2)
平面上可以画出目标函数的等高线,而约束条件则成为平面上半径为
C
的一个 norm ball 。等高线与 norm ball 首次相交的地方就是最优解。如图
(fig:
1) 所示:
(a)
(b)
图 1(a)ℓ1-ball
meets quadratic function.
ℓ1-ball
has corners. It’s very likely that the meet-point is at one of the
corners. (b)ℓ2-ball
meets quadratic function.
ℓ2-ball
has no corner. It is very unlikely that the meet-point is on any of
axes.
Bayesian vs. Frequentist 不是从来都没有争论清楚过么?谁好谁坏是无法一概而论的啊。而且 Bayesian 角度来说的话计算量是明显会变复杂很多啊。
JerryHao(2013年1月13日)
而目标函数的测的线除非位置摆得非常好,这里是测地线吧?
pluskid(2013年1月16日)
你好,改过来了,非常感谢。
zaeneas(2013年2月18日)
一个问题,为什么偏向于 norm 较小的w常常会得到正确或者可用的解?是否有数学上的解释?
是否有比较清楚或者的教科书章节(看论文总觉得比看教科书痛苦)
pluskid(2013年2月18日)
regularization 可以从很多角度来解释,从数值稳定性来说可以去看 Tikhonov regularization;从 Bayesian 的角度可以去查 Max a posterior 相关的资料,prior 分布就对应 regularization;从 learning theory 的角度则是限制 Hypothesis Space 的 capacity,可以去看 Vapnik 的大部头书或者其他 Learning Theory 的资料。
10:21 p.m., Sunday Dec. 7 | Other comments by pluskid Reply to pluskid
pluskid’s comment is in reply to skxiaozi:
gradient不存在,此时w-j=0. 请问一下,梯度不存在看,也不一定是能推出在第j个分量处为零吧,可能是在别的分量处为零啊 Read more
You're receiving this message because you're signed up to receive notifications about replies to skxiaozi. You can unsubscribe from emails about replies to skxiaozi by replying to this email with "unsubscribe" or reduce the rate with which these emails are sent by adjusting your notification settings.
Comments
公式时而出错时而正常
能否问一下你是什么系统和浏览器?我试过 Windows 下的 Firefox 和 IE 还有 Linux 下的 Firefox 都可以正常显示。不过一开始加载的时候确实比较慢,好像是因为要下载 webfonts 。
呵呵,我用google chrome和IE第一次加载的时候都出错了,刷新后就都正常了
恩,MathJaX 是第一次加载的时候会比较痛苦。有时间我会尝试一下用图片的方式来显示,不过这些总之都是各有各的优缺点吧。
我用chrome加载公式的时候是有点卡,但是出来效果很赞!
windows下的
因为L1 norm sparsity的问题找到你的博客 解释得挺清楚的 非常感谢!zju校友一枚~
顺便 赞一个博客风格~干净清爽~
想请问下一个小弱问题。目标函数是 min ∥w∥1 约束条件是w都是非负值,那这个目标函数跟我直接min w的各分量的和 是等同的么?不知道我说的清不清楚~本身不是学这方面专业的,有点半路出家,如果大牛能帮忙就太感谢啦~!
不等同的吧?直接 min w 各分量而没有约束条件的话的话,就可以取负无穷了啊。要么就是我没明白你什么意思。
嗯 那个还是有约束条件的 我问的就是下面两个问题是否等同 :)
min w1+w2+w3
s.t. w_i ≥ 0 i = 1,2,3
跟min ||w1+w2+w3||_1
s.t. w_i ≥ 0 1,2,3
那样的话,是等价的(虽然你上面的记号还有点问题)。因为 w_i >= 0 的时候,|w_i| 和 w_i 是相等的,所以两个问题的目标函数也是相等的。
okay~谢谢!~不过你说的记号有问题 是指什么?
||w1+w2+w3||_1 这个记号
"注意 subgradient 和 subdifferential 只是对凸函数定义的"貌似不对,我记得不是仅仅针对凸函数的。
这个也许没有统一的定义吧?我是在 wikipedia 上看到这个定义的,不同的定义可能会在不同的场合下有用,这里应该是需要这个定义的,否则的话比如上面的性质 1 就不一定能导出来了。
pluskid,请教两个问题,condition for global minimizer的证明是怎样的?没看懂~~~可否补下?
第二个问题,等式3又是如何得到的?
把 0 代入定义中的 v 就可以立即证明了。等式 3 根据等式 1 ,然后由于 orthonormal design 的定义也立即得到。
orthonormal design是什么定义呢?正交设计?能给个链接看看否?
在定义一那个框往前面数两段的第一句话。
呵呵,谢谢你耐心的回答,因为这篇文章分好几看的,所以中间可能看漏了。
这个思想在什么地方有用到呢?例如什么算法呢?这里只是介绍原理,有没有实际的应用例子?有没有典型的算法用到呢?
请教一个问题,如果X与X不是独立的,cov(X_i,X_j) \not 0 ,那么l1,l2 Regularization是否仍然能用?
我在考虑对于一个高维度的采样,如果采样数目较少,能不能用l1,l2 Regularization计算出较准确的相关性(之前使用的是Naive的方法,直接将其中一些相关性设为0)
你好,可以用的,这里之所以做了一个比较强的限制是因为在这样的简单情况下可以比较轻松地推导出一个结果来“先睹为快”。事实上 l1、l2 regularization 很多时候都是用在纬度比 sample 数目大很多的情况,这个时候文中的正交假设是没法成立的。所以要得到理论上的结论的话就需要更复杂的东西了。不过仍然是可以用的。
另外,如果你明显地知道其中哪些变量是相互关联的话,还可以考虑使用 group LASSO 之类的更复杂的 regularization 。
group LASSO是不是这个
www-stat.stanford.edu/~tibs...
蠕动着阅读中,虽然有可能最后半路放弃了
请问如果想要了解Regularization请问应该如何做比较好?
(好吧,如果想要了解XXX应该怎样做比较好的确是一个很难回答的问题.......)
嗯,group LASSO 就是那些东西。了解 regularization 的话,比较基础的可以参考一下 Andrew Ng 的 ml-class (https://class.coursera.org/... 第三周的课有比较 intuitive 的介绍。如果你喜欢深一些的内容,可以看一看比如《Learning with kernels》里面都有专门讲 regularization 的。
Thank you!
我之前理解L1 sparsity的时候,只是单纯的考虑l1 norm就是要minimize非零项系数的个数,所以在目标函数值最小的前提下,使用最少的非零项系数……不知道这么理解对不对阿?
l0-norm 才是计算非零项的个数,l1-norm 计算的是各项绝对值之和。
Sorry,表述错了,谢谢回复~不过似乎最开始Sparse模型是用的L0,由于不能求解从而转化为求L1...
嗯,所以需要证明转化后的问题(L1)得到的解是原来问题(L0)的解或者从某种意义上来说和原来的解是“相似”的。
曾看过博主说要看黎曼几何,不知道有什么收获?对机器学习这方面感觉有大帮助么?还有博主对computer graph了解么?
如果你要打算从很几何的角度来研究 manifold learning 的话,黎曼几何当然是有帮助的。graphics 的话不了解了
博客的主题和背景是自己做的吗?好崇拜。
背景是自己做的,主题是在 twitter-bootstrap 的基础上改的。
一个问题,为什么在处理这种情况时采用的是regression,而非是用贝叶斯方法反算 \omega 的概率分布?
或者之前是否有人比较过 bootstrap + regression会不会明显比regression更好?
Bayesian vs. Frequentist 不是从来都没有争论清楚过么?谁好谁坏是无法一概而论的啊。而且 Bayesian 角度来说的话计算量是明显会变复杂很多啊。
而目标函数的测的线除非位置摆得非常好,这里是测地线吧?
你好,改过来了,非常感谢。
一个问题,为什么偏向于 norm 较小的w常常会得到正确或者可用的解?是否有数学上的解释?
是否有比较清楚或者的教科书章节(看论文总觉得比看教科书痛苦)
regularization 可以从很多角度来解释,从数值稳定性来说可以去看 Tikhonov regularization;从 Bayesian 的角度可以去查 Max a posterior 相关的资料,prior 分布就对应 regularization;从 learning theory 的角度则是限制 Hypothesis Space 的 capacity,可以去看 Vapnik 的大部头书或者其他 Learning Theory 的资料。
其他的正在看,bayesian角度指的是,在没有观测的时候,假定
p(w_1)>p(w_2) 当 |w_1|>|w_2|么?
如果是这个假设,那么这个假设的原因是这个好用还是有更深的数学或者别的方面的考虑?
谢谢
不是,就是指任意的关于 w 的先验,Gaussian、Laplace 之类的
明白了,谢谢
公式没编号!(恕我完美主义)
有编号啊
\[
\bar{不错}^test \frac{我说这排版}{和样式}
\]
mathjax 没有为 comments 开放
在稀疏的表达中,正则化项前的lambda该如何去确定?是实验测试,还是有什么理论依据的,
实际中一般是实验确定,也可以根据问题的本身需求来确定,这种情况下用其他的几个形式一般物理意义比较清楚一点,可以参考一下我最近写的那篇文章里描述了关于三个相关的稀疏形式之间的等价性。
博主,你给出的图例很直观的解释了L1比L2更容易产生稀疏解,便于理解,但能不能给出数学上的证明?或者给出出处?
简单情况的证明文中已经给出了,更多的内容可以参考《Statistics for High Dimensional Data》一书。
博主,向你请教ANN方面的问题。对于训练过程,我们对权重的限制是一范的还是二范的?对节点响应的限制是一范的还是二范的?亦即,对于权重和节点响应这两者,我们对哪一个取稀疏限制?
另外,假设我有一个10000维的输入,隐藏层节点数为100,输出层为10000维、与输入层对应(应用于deep learning自编码器),这样的模型(全互联)毫无疑问落入局部极小值,请问不改变architecture的前提下如何促使它的权重训练至最优?
你好,神经网络我不是很熟悉,不过一般应该主要是对 weight 做 sparsity 限制吧。ANN 这样的非凸目标函数用迭代法训练原本就无法保证达到全局最优。不过似乎不少结果来看局部最优的效果也都挺好的样子吧。
博主您好,您写的很好。但是,能解释一下LASSO的非约束形式为什么等价于约束的形式呢?
参见这里 http://freemind.pluskid.org...
perfect!
那 L0.5-norm 是不是更容易产生稀疏性呢?
不过 L0.5-norm 不是凸的。
哦~ 主人您真棒!
博主好。我的理解,Fig1中函数等高线(等值线),如果函数是凸的,越靠外的等值线对应的值越大。如果函数非凸,情况就复杂了。这说明L1能产生稀疏解的性质和目标函数的凸性是紧密相关的。您觉得对吗?
我觉得一个原因应该是非凸的函数分析起来比较复杂,所以是否解具有稀疏性这个问题就不是那么简单可以刻画的了,所以也不能说是非凸的函数就无法具有稀疏性。
谢谢回复。Fig1是针对LASSO的等价形式画的,我想如果脱离这个问题,假设最小值点在某个和坐标轴无交点的内环上并且这个内环和L1 ball相交,就没有可能得到稀疏解了。
博主你好。我作MIMO通信方面的。你写的目标函数里,我可以这样认为,从多个天线中选择其中的几个(稀疏性)进行通信,在满足一定约束条件的同时,功率最小化。我想请问,w的1-范数的平方是否也具有这样的性质吗?可以数学证明吗。谢谢1
你好,应该是有的。因为 regularizer 的形式是和 constraints 的形式等价的话,constraints 的形式就可以很容易两边开根号化归到这里的正常形式。
谢谢你的回复!
博主你好,想请教一下,B和λ是怎么对应的?
对应关系并不是可以通过一个解析式直接能算出来的,参见:http://freemind.pluskid.org...
> <
问一个小弱问题,别的地方都能follow,只有一个: 从这个式子也可以明显看出 和 是同号的,这个,好像没有明显的看到…… 楼主原谅我……
你可以假设一个是正的一个是负的然后会发现等号两边符号不匹配。
谢谢讲解!想问一下,为什么说“有两种情况:gradient存在,w不等于0;gradient不存在,w等于0“。怎么理解?为什么没有其他情况? 谢谢!
因为 gradient 除了“存在”和“不存在”没有第三种状态了吧?
因为在 w_j != 0 时,J 对 w_j 的偏导数才存在。若 w_j == 0,从图像看,L1 norm 约束在那里是一个尖角,自然导数就不存在了,所以题主引入了 subdifferential 进行分析。
你好,eq:2 前两个式子l2-regularization 最后应该不是平方吧,是表示2范数的意思? 初学者,看后受益很多,谢谢。
你好,是 2 范数的平方。
p>n的时候,应该是X不满秩,XTX不正定吧
嗯,是啊,有什么问题吗?
想请教一个问题,对于gradient不存在的情形,“根据 subgradient 在最小值点处的性质的性质,此时必有”后面的那个式子是怎么来的?subdifferential 为什么可以写成花括号里面的表示?
可导的部分直接求 gradient 就可以了,绝对值的 subgradient 就是后面那个样子。
gradient不存在时,下面公式第一个等号是怎么得到的?
见你楼上的评论
gradient不存在,此时w-j=0. 请问一下,梯度不存在看,也不一定是能推出在第j个分量处为零吧,可能是在别的分量处为零啊
这里因为是一个分量一个分量地考虑的,所以 gradient 不存在就是指针对 w_j 的 gradient 不存在。
谢谢
------------------ 原始邮件 ------------------
发件人: "Disqus";<notifications@disqus.net>;
发送时间: 2014年12月8日(星期一) 中午11:21
收件人: "晴天"<996654694@qq.com>;
主题: Re: New comment posted on Sparsity and Some Basics of L1 Regularization
Settings
A new comment was posted on Free Mind
pluskid
这里因为是一个分量一个分量地考虑的,所以 gradient 不存在就是指针对 w_j 的 gradient 不存在。
10:21 p.m., Sunday Dec. 7 | Other comments by pluskid
Reply to pluskid
pluskid’s comment is in reply to skxiaozi:
gradient不存在,此时w-j=0. 请问一下,梯度不存在看,也不一定是能推出在第j个分量处为零吧,可能是在别的分量处为零啊
Read more
You're receiving this message because you're signed up to receive notifications about replies to skxiaozi.
You can unsubscribe from emails about replies to skxiaozi by replying to this email with "unsubscribe" or reduce the rate with which these emails are sent by adjusting your notification settings.
能不能说下在用梯度下降算法或者随机梯度下降算法的时候,在加入L1正则化后,怎么用?
或者说直接求出不加正则化限制的参数w值,然后再用公式eq.4调整得到最后的结果就相当于加入了L1正则化限制的结果?
是的。当然 l1 正则化也可以直接用梯度下降求解,因为 l1 norm 不可导,所以需要变成 sub-gradient descent。另外还有一些其他专门针对 l1 norm 设计的算法。
这是有前提的吧?在满足博主提到的正交假设的情况下。
博主你好,讲的很赞!有两个地方没弄明白,一是最后那个ridge regression的解的形式,为什么分子和分母上会有个2呢?第二个问题是中间gradient存在情况下的推导,每一步都正确,但是很奇怪原始的最优解为什么就大于lambda/2了?这两个本是无关的东西,lambda还是自己设置的参数,为什么在lasso问题中就满足这种关系?gradient存在和不存在两种情况的一步步推导都看明白了,但是不理解这么做的目的。希望能指点一下
你好,ridge regression 那里,我仔细看了一下,感觉像是笔误呢,我觉得应该是把 2 全部换成 n 才对哈。多谢指出了,我回头会修正一下。
然后,第二个问题你是说“问题在 orthonormal design 时的解 (eq: 3) 化简得到”下面那个式子吗?那里你假设 w_hat 和 w_bar 两个符号如果不相同的话,就会在那个式子两边导出矛盾,比如左边是正数右边是负数这个样子。
谢谢博主回复。本文中ridge regerssion我推导的系数是1/(1+lambda)。第二个问题是那些公式推导我都一步步看明白了确认正确,但是整体推导思路不理解。就是原始的最优解和参数lambda本是无关的东西,为什么就能推导出来一个大于关系呢?好奇怪。
是这样的,原文分了两种情况,w_bar = 0 和 w_bar 不等于 0,在 w_bar 等于零的情况下,就可以得到原来最优解的那个 component 不小于 lambda/2。比如你把 lambda 设置得很大,那么得到的结果就是所有的 w_bar 的 component 全都是零了,都变成了第二种情况,我感觉没有什么矛盾的。不知是否有解释清楚?
你好,为什么可以说
w_bar{j}与w_hat{j}同号呢,不是还要减去一个lambda/2*sign(w_bar{j})吗?如果lambda较大,岂不是异号了么?
参见你楼上的讨论。
> quote: 是这样的,原文分了两种情况,w_bar = 0 和 w_bar 不等于 0,在 w_bar 等于零的情况下,就可以得到原来最优解的那个 component 不小于 lambda/2。比如你把 lambda 设置得很大,那么得到的结果就是所有的 w_bar 的 component 全都是零了,都变成了第二种情况,我感觉没有什么矛盾的。不知是否有解释清楚?
亦即存在e .....下面一个公式有错误。w_bar, w_tild前面的符号反了。
恩,确实有 typo,修正了一下!
请问为什么
请问为什么梯度存在,w_j!=0?
请问前辈,L2的目标函数是不是也是凸的?
是的,根据三角不等式可以得出它是 convex 的。