Efficient Sparse Coding Algorithm

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
http://www.stanford.edu/~hllee/nips06-sparsecoding.pdf

NIPS2006讲sparse coding的文章,这篇文章讲的算法是如何对 目标函数
argmin_{A,x} f(A, x) = || y - Ax ||^2 +  lambda || x ||_1
s.t. ||A_i||^2< c
进行优化,
找到参数A和x,使得f(x)最小;其中lambda,c是超参。

这个算法的intuitive idea是这样的,算法想模拟人脑处理信息的模式,人脑中可以处理各种各样的信息,比如文本,图形,声音,气味,视觉,味觉,触觉等等。但是这些信息最根本的是通过什么来表达呢?哪就是neuron,和 activation. 人脑中neuron的个数我不知道确切的有多少,但是我想是billion 甚至是更多的数量级上的。但是,显然不是每个信息的表示都需要所有neuron参与,参与表示的neuron其实是被激活的,这就是activation的概念。这个算法中neuron对应着A,activation对应x (可能说反了,不过无所谓,以后看这个的时候能明白怎么回事)。Sparse coding的意思就包含在x里面,也就是说x是一个sparse的向量,因为在A中,只有一部分的basis 需要激活。

具体的算法,需要参看文章了。这里说一下他的大概思想,因为f(A,x)是convex的,相对于每一个参数单独来看的话。所以f(A,x)有global minimum?(不太懂2个参数的凸函数,这个是不确定的) 可以把两个参数分开看。当把G(x)=f(A,x)来看的话,G(x)是一个L-1 regularized least square problem; 当把 H(A)=f(A,x)来看的话,H(A)是一个L-2 constrained least square problem. H(A)通过解dual problem可以得到解。 G(x)通过他的feature sign search算法可以得到,search算法,先是initialize 一个x 通过在H(x)值下降的方向上去搜索合适的x和xi的符号,最后得到全局最优解。算法比较的时候,比LARS算法和其他算法快。

读完这个文章有一些问题:
1.这个文章是ICML07 self taught learning算法最重要的参考文献,还可以有别的应用么? 算法实际上会不会很慢呢?
2.Sparse coding和ICA算法有什么区别和联系呢?
3.Sparse coding, PCA, SVD, topic model都是把original feature space 投影到 new feature space当中来,什么时候适合用那一种投影方式?不知道那个paper有讲过。

转自:http://johnsonnjucs.spaces.live.com/blog/cns!258E5B93443F4F10!405.entry

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值