矩阵填充的SVT算法
2015-12-30 17:36
239 查看
本文是对SVT的一篇文章的理解,即奇异值阈值算法的理解。
1:算法解决的问题如下:
其中最小化的是核范数(表示矩阵奇异值之和),是rank(X)的最优凸近似。
具体研究解决的是矩阵填充问题,如何在不完备的数据下把缺少的数据给补充完整。前提是填充的矩阵是要求低秩的。
首先给出软阈值算子:如果
那么在软阈值算子下有:
其中t+=max(0,t)t_+=max(0,t) ,那么我们能发现,当D作用于奇异值上时,一部分小于T的奇异值变为0,而大于T的奇异值减去T。如果迭代多次进行下去就会发现,奇异值会逐渐减少并且减小。这也是以后我们会将这个叫做奇异值收缩算子的原因。
下面定理说明了奇异值收缩算子是核范数的近似算子。
具体证明可以参考下面的文献。
因此我们有解矩阵填充问题的算法如下:
很显然当T,充分大的时候(1.6)问题的解近似原问题的解。
同样的(1.6)的解也是如下问题的近似解。
A singular value thresholding algorithm for matrix completion
1:算法解决的问题如下:
其中最小化的是核范数(表示矩阵奇异值之和),是rank(X)的最优凸近似。
具体研究解决的是矩阵填充问题,如何在不完备的数据下把缺少的数据给补充完整。前提是填充的矩阵是要求低秩的。
首先给出软阈值算子:如果
那么在软阈值算子下有:
其中t+=max(0,t)t_+=max(0,t) ,那么我们能发现,当D作用于奇异值上时,一部分小于T的奇异值变为0,而大于T的奇异值减去T。如果迭代多次进行下去就会发现,奇异值会逐渐减少并且减小。这也是以后我们会将这个叫做奇异值收缩算子的原因。
下面定理说明了奇异值收缩算子是核范数的近似算子。
具体证明可以参考下面的文献。
因此我们有解矩阵填充问题的算法如下:
很显然当T,充分大的时候(1.6)问题的解近似原问题的解。
同样的(1.6)的解也是如下问题的近似解。
A singular value thresholding algorithm for matrix completion
相关文章推荐
- Android开发相关的网址导航
- Oracle中的BLOB和CLOB
- js jquery学习
- 递归下降分析法
- 为 Docker Registry 增加 Nginx 前端
- 12.16_实验四 递归下降语法分析程序设计
- Matlab的学习
- GIT 学习
- cacti 监控
- 黑盒测试用例设计方法
- 如果hashCode中返回常量1,会有什么结果?
- 【学习】CommonJS规范和实现
- session序列化的问题
- android - Content-Type大全
- 老李推荐: 第8章4节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-启动AndroidDebugBridge 4
- 【FAQ】如何在新打git tag入库后自动触发Jenkins任务?
- 吐槽有礼!说说2015最让你遗憾的事儿
- [TwistedFate]UIWebView的简单使用
- 提高C++程序运行效率的10个简单方法
- 关于如何拍摄瓷器(转)