前言
除了贪婪算法以外,压缩感知重构算法的另一大类就是凸优化算法,这类方法通过将非凸问题转化为凸问题求解找到信号的逼近,在这里给出常用的算法及其matlab代码。
一、基追踪算法(BP)
1、原理概述
该算法全称为Basis Pursuit,其提出使用 l 1 l_1 l1范数替代 l 0 l_0 l0范数来解决最优化问题,以便使用线性规划方法来求解。即将求解 m i n α ∣ ∣ α ∣ ∣ l 0 \mathop{min}\limits_{\alpha} ||\alpha||_{l_{0}} αmin∣∣α∣∣l0的问题转化为求解 m i n α ∣ ∣ α ∣ ∣ l 1 \mathop{min}\limits_{\alpha} ||\alpha||_{l_{1}} αmin∣∣α∣∣l1的问题,其中 α \alpha α是需要构建出来的原始信号(重构信号)。
2、matlab代码(基于linprog的基追踪MATLAB代码)
function [ alpha ] = BP_linprog( s,Phi )
%BP_linprog(Basis Pursuit with linprog) Summary of this function goes here
%Version: 1.0 written by jbb0523 @2016-07-21
%Reference:Chen S S, Donoho D L, Saunders M A. Atomic decomposition by
%basis pursuit[J]. SIAM review, 2001, 43(1): 129-159.(Available at:
%http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.37.4272&rep=rep1&type=pdf)
% Detailed explanation goes here
% s = Phi * alpha (alpha is a sparse vector)
% Given s & Phi, try to derive alpha
[s_rows,s_columns] = size(s);
if s_rows<s_columns
s = s';%s should be a column vector
end
p = size(Phi,2);
%according to section 3.1 of the reference
c = ones(2*p,1);
A = [Phi,-Phi];
b = s;
lb = zeros(2*p,1);
x0 = linprog(c,[],[],A,b,lb);
alpha = x0(1:p) - x0(p+1:2*p);
end
给出以下参考网址,有免费的付费的,可则需取用:
免费网址,这里还有对BP算法具体的介绍
https://blog.csdn.net/jbb0523/article/details/51986554?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165087331116781667883165%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=165087331116781667883165&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2blogbaidu_landing_v2~default-1-51986554.nonecase&utm_term=%E5%9F%BA%E8%BF%BD%E8%B8%AA%E7%AE%97%E6%B3%95+matlab&spm=1018.2226.3001.4450
付费的,看评价感觉应该不错
https://download.csdn.net/download/xzf340826/5157738
二、梯度投影法
1、原理概述
梯度投影法(gradient projection method)利用梯度的投影技巧求约束非线性规划问题最优解的一种方法,求带线性约束的非线性规划问题更为有效。它是从一个基本可行解开始,由约束条件确定出凸约束集边界上梯度的投影,以便求出下次的搜索方向和步长。每次搜索后,都要进行检验,直到满足精度要求为止。具体原理可参考以下网址:
https://baike.baidu.com/item/%E6%A2%AF%E5%BA%A6%E6%8A%95%E5%BD%B1%E6%B3%95/19134105?fr=aladdin
2、matlab代码
代码参考以下网站,免费:
https://www.renrendoc.com/paper/111842292.html
总结
以上就是今天要讲的内容,欢迎大家在评论区进行交流~