对RPCA的一些感受
2013-06-19 15:16
162 查看
最近回过头来找到了RPCA的paper,也就是最经典的那个吧,尽管有错误。全文并没有仔细描述各种具体放入算法,只是从理论上上说了这个RPCA的问题以及介绍了2个用来解决这个问题的方法,其实重点只介绍了一个吧,就是那个proximal gradient approach吧,也只是使用了这个方法来做了个伪代码的算法介绍,对这个算法也没有具体说,不过给出了reference。感兴趣可以自己去看,反正我已经打印出来了,肯定要看的。
RPCA是解决这个问题的,D=A+E 其实A是low rank的E是sparse的。D是已知的,假设真实数据是A,E是噪声。并且A是low rank的。
也就是解决 在A和E这样的未知数下:min rank(A) + E的0范,s.t. D=A+E。
接着很自然的relaxing:rank转化成nuclear norm,0范转化成1范(因为rank和0范都是NP问题的)。
我一直对这个转化很感兴趣,因为毕竟不是搞数学的,作者在这个paper中说了很清楚的,我拿出来大概翻译下吧:
由A的核范 + lambda*E的1范很自然的会来代替rank(A) + lambda*E的0范,当max(A的2,2范,E的1,无穷范)小于等于1的时候。并且根据最近的研究成果表明,核范代替rank最小化,1范代替0范是有一定的条件的,但是这个条件比较broad。对于几乎所有的relaxing后的解大都可以代替真实解。
文中接着还说了,relaxing后的解并不真正等价于原来真实解,只是在一定概率下,命中率较高。
好了至此我也明白了,relaxing后的solution是在一定条件下才和真正解近似的。
补充下:只有lambda>0的情况下,以上讨论才成立。
RPCA是解决这个问题的,D=A+E 其实A是low rank的E是sparse的。D是已知的,假设真实数据是A,E是噪声。并且A是low rank的。
也就是解决 在A和E这样的未知数下:min rank(A) + E的0范,s.t. D=A+E。
接着很自然的relaxing:rank转化成nuclear norm,0范转化成1范(因为rank和0范都是NP问题的)。
我一直对这个转化很感兴趣,因为毕竟不是搞数学的,作者在这个paper中说了很清楚的,我拿出来大概翻译下吧:
由A的核范 + lambda*E的1范很自然的会来代替rank(A) + lambda*E的0范,当max(A的2,2范,E的1,无穷范)小于等于1的时候。并且根据最近的研究成果表明,核范代替rank最小化,1范代替0范是有一定的条件的,但是这个条件比较broad。对于几乎所有的relaxing后的解大都可以代替真实解。
文中接着还说了,relaxing后的解并不真正等价于原来真实解,只是在一定概率下,命中率较高。
好了至此我也明白了,relaxing后的solution是在一定条件下才和真正解近似的。
补充下:只有lambda>0的情况下,以上讨论才成立。
相关文章推荐
- 用EasyUI的一些感受
- 关于vs2012中opencv调试出现的问题的一些感受
- 【QT5】最近的一些感受
- C/C++招聘的一些感受和经验
- Python点滴01——关于Python2.x和3.x的一些个人感受
- PI小结之二,一些感受
- 对 CSDN 和 OSChina 两个技术博客社区的一些感受和简单比较以及博客导入
- 永和维护---从问题中得到的一些感受
- 考研空档期的一些感受
- 个人应用ffmpeg的一些感受
- 一些感受吧
- 面试的一些感受
- 关于FLASH破解的一些感受
- web前端开发的一些感受
- 游戏开发(程序)职位招聘的一些感受和经验 ---转
- 读《c程序设计语言》一些感受
- 关于技术团队绩效考核的一些感受
- 个人对VHDL和C++以及C#.NET的一些体会(完全个人感受,不对的地方请高手指正)
- SublimeText3和EverEdit 的一些使用感受
- DVD 播放器软件的一些感受