本文共 513 字,大约阅读时间需要 1 分钟。
今天找来了low rank的优化代码,自己做了个仿真,数据是这样子的
1:来自3维空间中的100个点,分为2个子空间,第一个子空间数据D1包含50个点,第二个子空间D2也包含50个点
2:对于D1中的10个点随机加了10个高斯噪声,第二个子空间不变
3:用LRR求得去掉噪声后的原始数据,PLOT出来对比。如图:
第一幅为原始数据图,圈圈的来自D1, 点点的来自D2。
第二幅为给D1加上高斯噪声的点,其中粉红色的圈圈为噪声。
第三幅图为LRR优化之后,可以看到粉红色圈圈基本进入了红色圈圈所在的子空间了。
不知道是不是我这个数据是自己生成的原因,觉得效果真是太好了。
这里说下LRR的数学描述为:
这个地方其实可以做很多解释的
1:首先如果X就是按照子空间顺序排列的话,因为知道噪声在这个地方时影响了之前的数据的rank,那么做一个对核范的约束,可以尽量减少对噪声的依赖,来表达元数据,同时得到一个2,1范约束的噪声。
2:如果X不是按照子空间排列的话,同时知道,影响的是Z中的列的顺序,那么Z中列顺序的改变,并不影响Z的rank的。所以还是这个优化方法。
PS:做了仿真之后可以反向推导出来很多不需要证明就可以理解的事情。