Answers:
mex
-不确定的方式来调用它。
- 大多数代码是纯Matlab代码
- 程序包中的每个文件夹都包括一个基于特定信号模型的CS恢复算法,以及一个测试该恢复算法的脚本。脚本的名称通常以“ _example.m”结尾
流形上的优化是解决非线性优化问题的强大范例。
该工具箱实现了多种算法来计算冗余字典中的稀疏展开,并通过稀疏正则化(以及TV正则化)解决逆问题。
但是,所有这些以及更多内容都包含在此工具箱列表中。
我发现最困难的部分是找到伪代码-这就是他们实际描述算法的地方。以下是一些包含伪代码的算法示例:
IST
。我想当时我正在回答离题,但是对于L1优化方法,我发现YALL1(http://yall1.blogs.rice.edu/)和SPGL1(http://www.cs.ubc.ca/ 〜mpf / spgl1 /)非常有用和高效的软件包。TFOCS(http://cvxr.com/tfocs/)可能更难使用,但应该相当灵活。还有CVX(http://cvxr.com/cvx/),可以很容易地将凸优化问题直接输入代码中,但是解决压缩感测特定类型的问题要慢得多,因为它是非常通用的求解器。
Sparselab(http://sparselab.stanford.edu/)中还提供了一些重构算法。
此处列出了较大的稀疏重建代码列表:https : //sites.google.com/site/igorcarron2/cs#reconstruction
请记住,L1不是唯一的压缩感测方法。在我们的研究中,使用近似消息传递(AMP)取得了更好的成功。我将“成功”定义为更低的错误,更好的相变(能够以更少的观察进行恢复)和更低的复杂度(包括内存和cpu)。
近似消息传递算法建立了贝叶斯框架,用于估计大规模线性系统中的未知矢量,其中线性系统的输入和输出由概率模型确定(例如,“此矢量是用噪声测量的”,“此矢量具有一些零”)。Rangan将Donoho伪造的原始AMP方法改进为具有可用Matlab代码的广义近似消息传递。输入和输出可以是几乎任意的概率密度函数。在我们的研究中,我们发现GAMP通常比L1凸方法和贪婪方法(例如正交匹配追踪)更快,更准确,更鲁棒(阅读:更好的相变曲线)。
我和我的顾问刚写了一篇关于将GAMP用于Analysis CS的论文,其中人们期望在未知矢量x处而不是在未知Wx的线性函数中出现大量零。
您可能还需要检查Matlab的UNLocBox:http://unlocbox.sourceforge.net 有演示页4个压缩感知脚本:http://unlocbox.sourceforge.net/doc/demos/index.php
我已经编写了许多动手的编码教程,为初学者解释了CS,MP,OMP等的基础知识。您可以在https://sparse-plex.readthedocs.io/en/latest/demos/index.html上查看它们
这是我的库sparse-plex的一部分,可在GitHub https://github.com/indigits/sparse-plex获得