转自:彬彬有礼. 压缩感知中的lp球:p范数最优化为什么总会导致一个稀疏的解的原因

http://blog.csdn.net/jbb0523/article/details/40268943

题目:  压缩感知中的lp球:p范数最优化为什么总会导致一个稀疏的解的原因

================问题的引出================

压缩感知中为了解释0范数或1范数最优化为什么总会导致一个稀疏解的原因在解释时经常使用lp球与直线的交点去解释,下面论文中就是这样子解释的:

戴琼海,付长军,季向阳.压缩感知研究[J].计算机学报,2011,34(3):425-434.

在上面论文的第2小节压缩感知原理中就是这样子解释的,为了完整说明问题,这里将论文中的部分内容截图出来:

上面这幅图2让我看了好久也没看明白,在博主Rachel_Zhang博客的文章“压缩感知进阶——有关稀疏矩阵”中,也提到了类似的内容:

===============================

怎样恢复原信号?

我们已知所选择的最稀疏的x即x中非零元素最少的,即x的零范数最小的(向量的零范数即为其稀疏度sparsity)。

然而,求x=argmin||x||0使得x满足Ax=b的一个子问题是一个NP完全问题,需要在S个compoments中选出1,2,...,n个,看能从中选出最少多少个,满足Ax=b,这样,对于每一个n都有排列组合C(S,n)种方法,显然不可行。所以我们想能不能换个什么方法来恢复信号,自然而然的,我们想到了最小平方法。具体见下图Fig B。

Fig B. L2范数下寻找满足Ax=b的x,发现有一定偏差。

symmerize:

2-methods to methods:
1. L2-norm: quick, efficient, but get the wrong answer
2. L0-norm: precise but impractical

否定了L0范数和L2范数之后,我们想到取中——用L1范数(Basis pursuit的思路)。
===============================

Basis Pursuit & RIP

Basis pursuit的方法在2000年由Candes-Romberg-Tao, Donoho提出,其基本思路见下图(以二维为例):

从图中可见,L1-norm比L2-norm靠谱多了。从上图中可见,x*处,x的L1-norm最小,这样推广到n维向量x,就是其每一维的值的绝对值的和。

下面这个Theorem就是对L1-norm方案(Basis pursuit)可行性的定理(具体证明看论文吧):大概是说,原始S-sparse的信号f为n维,从其中随机抽取m维分量,如果想利用Basis pursuit的方法把这m维向量重建出n维原始信号,只要满足m>cS*log(n)即可,其中c是一个常数。

以上都是采用lp球去解释问题,似乎看起来很直观,但我看了好久都没看明白,今天琢磨之后终于想明白了,接着往下说……

================正文================

在论文“戴琼海,付长军,季向阳.压缩感知研究[J].计算机学报,2011,34(3):425-434.”(以下简称论文)中看了几遍没看明白,但看了Rachel_Zhang博客的文章“压缩感知进阶——有关稀疏矩阵”,虽然也没有看明白,但我得到了一个重要信息,这个图是在2维的情况下画出来的,下面就来详细解释一下。

下面的叙述以论文为框架,即如果提到式(1)指的是论文中的式(1)。

假定式(1)中的信号f是二维的,设f=[x1,x2]T(列向量,没法写转置,只能用T表示了),f是稀疏的,经过φ变换得到y,y的维数肯定比x要小,这里假定了f是2维的,那么y只能是1维了(也就是一个数了,维数不能再低了),φ是一个1乘2的矩阵,设φ=[φ1,φ2]。

通过观测我们得到了y(也就是说y是一个已知常量),我们现在关心的是如果根据y重构稀疏信号f,文章中的式(2)和式(3)说明了这个问题:可以求0范数和p范数最优化的问题来重构信号f,为什么总可以得到f呢?然后作者就用lp球直观形象的解释了这个问题,得出结论:p<=1时可以得到唯一解(与直线交点在坐标轴上),p>1时的解将不准确(Rachel_Zhang的博客中用p=2说明了这时得到的结果是不准确的)。

我有几点不明白:一是为什么论文中的式(1)是一条直线?二是图2中的横轴和纵轴到底代表着什么?三是图2中的那些不同p值时是圆(p=2)还是菱形(p=1)是怎么得来的?四是两者的交点为什么一定要在坐标轴上?下面一一解答……

先说第一个问题:为什么论文中的式(1)是一条直线?

对于式(1)来说,在恢复信号f时,观测值y是一个常数(一维,即一个常数),矩阵φ是已知的,即它的两个元素φ1和φ2是两个常数,我们现在想要得到的是信号f中的两个元素x1和x2,因此把式(1)矩阵的形式写开即得到y=φ1*x1+φ2*x2,注意这里面x1和x2是未知量,其它三个量是常数,这时候如果以x1为横轴,以x2为纵轴(二维空间就是这样子的),则式(1)的轨迹(可能取的值)画出来就是一条直线(一次函数嘛,只是一定要注意这时谁是常量谁是变量就OK了)。

到此为止第二个问题也就明白了,横轴是x1,纵轴是x2,即f的两个待求解的元素,不要被常见的x-y直角坐标系搞混了就行了。

再来说第三个问题:那些不同p值时是圆(p=2)还是菱形(p=1)是怎么得来的?

搞明白了第一个和第二个问题,第三个问题就简单了,对于式(3)来说(式(2)是一样子的),求解的x1和x2即要满足min ||f||p成立,也要受约束于式(1) y=φf,即也要保证式(1)成立,如要在一个坐标系中同时画出式(1)曲线和min||f||p曲线,要取它们的交点才行。p范数的公式论文里说了,这里因为信号是二维的,只有两个元素,因此||f||p=((x1)^p+(x2)^p)^(1/p),前面说了x1和x2是待恢复信号f的两个元素,对于||f||p取不同值的时候,它在坐标系中的曲线是不一样子的,当取到某一个值的时候,它就与式(1)直线相交了(如图2所示一共画了||f||p取两种值的情况,实线时不相交,虚线时就有交点了),当然这个并不是一对一的函数,所以画起来比较麻烦,可以四个象限分开来画就容易理解了,比如只考虑第一象限的曲线形状,这时因为x1>0,x2>0所以理解起来容易多了,求出两者之间的表达式,在matlab里很容易画出来的,其它三个象限就是一个对称的关系罢了。

%lp sphere  
clear all;close all;clc;  
p=0.5;c1=0.5;c2=1;  
x1=linspace(0,c1,100);  
y1=(c1^p-x1.^p).^(1/p);  
x2=linspace(0,c2,100);  
y2=(c2^p-x2.^p).^(1/p);  
figure(1);  
subplot(221);plot(x1,y1,x2,y2);title('p=0.5');  
xlim([0 1.1]);  
ylim([0 1.1]);  
p=1.0;c1=0.5;c2=1;  
x1=linspace(0,c1,100);  
y1=(c1^p-x1.^p).^(1/p);  
x2=linspace(0,c2,100);  
y2=(c2^p-x2.^p).^(1/p);  
figure(1);  
subplot(222);plot(x1,y1,x2,y2);title('p=1.0');  
xlim([0 1.1]);  
ylim([0 1.1]);  
p=1.5;c1=0.5;c2=1;  
x1=linspace(0,c1,100);  
y1=(c1^p-x1.^p).^(1/p);  
x2=linspace(0,c2,100);  
y2=(c2^p-x2.^p).^(1/p);  
figure(1);  
subplot(223);plot(x1,y1,x2,y2);title('p=1.5');  
xlim([0 1.1]);  
ylim([0 1.1]);  
p=2.0;c1=0.5;c2=1;  
x1=linspace(0,c1,100);  
y1=(c1^p-x1.^p).^(1/p);  
x2=linspace(0,c2,100);  
y2=(c2^p-x2.^p).^(1/p);  
figure(1);  
subplot(224);plot(x1,y1,x2,y2);title('p=2.0');  
xlim([0 1.1]);  
ylim([0 1.1]);  

在Matlab中运行以上m文件即可画出如下图形,这里分别取范数||f||p等于0.5和1两种情况(即代码中的c1和c2),p分别取了0.5,1.0,1.5,2.0四种特殊情况:

可以看出所得到的图与论文的图2中的第一象限是一致的。

最后说一下第四个问题:两者的交点为什么一定要在坐标轴上?

这个问题很关键,说难也难,但说简单也很简单。

为什么在坐标轴上呢?首先这里要回到最早的前提:信号f是稀疏的,p无论为多少,它最终都是要等价到0范数的情况,这是最原始重构方法所在,但对于这里一个只有两维的信号来说,最稀疏能是什么情况呢?不能稀疏到一个非零元素都没有吧,所以最稀疏也只就是两个元素x1,x2一个为零,一个非零。这时候明白了吧,x1和x2一个为零一个非零,那么把它的坐标在坐标系里画出来是哪里呢?也就是直线与横轴或纵轴的交点了嘛,至于说到底是与横轴还是与纵轴的交点,这个很重要么?只要交换一下x1和x2两个轴,点不就变了么?论文中是以纵轴交点为例来说明问题的,其实你以与横轴的交点为例来说明问题也是可以的啊。

至此,有关lp球的问题就全部说完了,初识压缩感知,有很多很多不明白的问题,认识也是越来越深的,不妥之处敬请多多包含!

压缩感知中的lp球:p范数最优化为什么总会导致一个稀疏的解的原因的更多相关文章

  1. 压缩感知中的数学知识:稀疏、范数、符号arg min

    转自:http://blog.csdn.net/jbb0523/article/details/40262629 1.稀疏:什么是K稀疏呢? 在压缩感知里经常提到 "K稀疏" 的概 ...

  2. 浅谈压缩感知(二十):OMP与压缩感知

    主要内容: OMP在稀疏分解与压缩感知中的异同 压缩感知通过OMP重构信号的唯一性 一.OMP在稀疏分解与压缩感知中的异同 .稀疏分解要解决的问题是在冗余字典(超完备字典)A中选出k列,用这k列的线性 ...

  3. [综] Sparse Representation 稀疏表示 压缩感知

    稀疏表示 分为 2个过程:1. 获得字典(训练优化字典:直接给出字典),其中字典学习又分为2个步骤:Sparse Coding和Dictionary Update:2. 用得到超完备字典后,对测试数据 ...

  4. 浅谈压缩感知(十六):感知矩阵之RIP

    在压缩感知中,总是看到"矩阵满足RIP"之类的字眼,没错,这是一个压缩感知绕不开的术语,有限等距性质(Restricted Isometry Property, RIP). 注意: ...

  5. 浅谈压缩感知(十五):感知矩阵之spark常数

    在压缩感知中,有一些用来评价感知矩阵(非测量矩阵)的指标,如常见的RIP等,除了RIP之外,spark常数也能够用来衡量能否成为合适的感知矩阵. 0.相关概念与符号 1.零空间条件NULL Space ...

  6. 压缩感知(CS)

    总结一下最近看的压缩感知(Compressed Sensiong)的内容. 它是在采样过程中完成了数据压缩的过程. 一. 将模拟信号转换为计算机能够处理的数字信号,必然要经过采样的过程.问题在于,应该 ...

  7. 浅谈压缩感知(三十一):压缩感知重构算法之定点连续法FPC

    主要内容: FPC的算法流程 FPC的MATLAB实现 一维信号的实验与结果 基于凸优化的重构算法 基于凸优化的压缩感知重构算法. 约束的凸优化问题: 去约束的凸优化问题: 在压缩感知中,J函数和H函 ...

  8. 浅谈压缩感知(三十):压缩感知重构算法之L1最小二乘

    主要内容: l1_ls的算法流程 l1_ls的MATLAB实现 一维信号的实验与结果 前言 前面所介绍的算法都是在匹配追踪算法MP基础上延伸的贪心算法,从本节开始,介绍基于凸优化的压缩感知重构算法. ...

  9. 浅谈压缩感知(六):TVAL3

    这一节主要介绍一下压缩感知中的一种基于全变分正则化的重建算法——TVAL3. 主要内容: TVAL3概要 压缩感知方法 TVAL3算法 快速哈达玛变换 实验结果 总结 1.TVAL3概要 全称: To ...

随机推荐

  1. 微信小程序结合后台数据管理实现商品数据的动态展示、维护

    微信小程序给我们提供了一个很好的开发平台,可以用于展现各种数据和实现丰富的功能,本篇随笔介绍微信小程序结合后台数据管理实现商品数据的动态展示.维护,介绍如何实现商品数据在后台管理系统中的维护管理,并通 ...

  2. UIGraphicsBeginImageContext - 位图上下文

    UIGraphicsBeginImageContext 首先,先来认识一个UIGraphicsBeginImageContext,它会创建一个基于位图的上下文(context)(默认创建一个透明的位图 ...

  3. 谈谈分布式版本管理工具Git

    一.主流的版本管理工具 目前在企业中比较主流的版本管理工具有:GIT.SVN.CVS等等. 二.什么是Git? Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.是 L ...

  4. sizeof(void)有什么用

    偶然发现在C中sizeof(void)是合法的,于是,对它的作用产生了疑问.查阅资料在GNU文档中发现如下解释: In GNU C, addition and subtraction operatio ...

  5. 通过官网找到spring的jar包

    1.官网为:https://spring.io/ 2.打开之后,点击:PROJECTS,如图所示: 3.点击第三个:SPRING FRAMEWORK,如图所示: 4.进入之后,找到features,点 ...

  6. CurrentCulture和CurrentUICulture的区别

    CurrentCulture 这个属性用来表示和改变使用者要使用的“地区属性”,地区属性改变后,数字.日期时间等表示格式也随之改变. 注意:一定是“地区属性”,如"zh-cn".& ...

  7. 持续交付Jenkins使用

    简介 Jenkins是一个独立的开源自动化服务器,可用于自动化各种任务,如构建,测试和部署软件.Jenkins可以通过本机系统包Docker安装,甚至可以通过安装Java Runtime Enviro ...

  8. Spring mvc 转发、重定向

    spring控制器最后返回一个ModelAndView(urlName),其中urNamel可以是一个视图名称,由视图解析器负责解析后将响应流写回客户端;也可以通过redirect/forward:u ...

  9. 结对编程-四则运算生成程序-GUI界面

    201421123118 张中结 201421123098 胡丹丹 a.需求分析 这个程序做成GUI(可以是Windows PC 上的,也可以是Mac.Linux,web,手机上的),成为一个有基本功 ...

  10. 团队作业8——第二次项目冲刺(Beta阶段)Day7——5.26

    展开圆桌式会议: 会议内容:1.汇总BETA阶段的成果.2.针对BETA阶段的大家的获得的收获进行了讨论.3.对整个团队项目的过程进行了总结.每个人的工作分配: 队员 今日任务 贡献比 林燕 做最后测 ...