第三节课的内容。这节课上课到半截困了睡着了,看着大家都很积极请教认真听讲,感觉很惭愧。周末不能熬太晚。这个博客就记录一下醒着时候听到的内容。

Motivation

目前的时代需要处理的数据量维度可能很高,比如1024*960分辨率的图片转化成向量维度就是100万左右。对于当代搜索引擎需要处理的数据更是如此,大数据时代已经来临。

而我们直到,对于普通的对比信息检索,时间复杂度为$O(n)$,当然,如果加上维度$D$,数据检索复杂度变成了$O(Dn)$,要知道这里的D很大,属于高纬度数据,甚至远大于数据的个数$n$,是一定不可以忽略的。

有没有一种方法,能对数据降维,使得D变小?这样可以大大降低数据检索的复杂度。但是,对数据降维不能随机降,需要保矩,也就是对各个向量的相对关系需要进行保持,如下图:

我们希望原来维度上两个向量差多少,降维之后他们每一对向量之间的距离没有变化太多。

The Johnson-Lindenstrauss Lemma

下面介绍一条定理,简称为Lemma定理。它是当代搜索引擎对高维数据Hashing的核心。首先,我们要知道对于高维如果要完全用低纬度保存所有的信息是不可能的,因此会有一定的错误率,但是我们在统计角度上可以证明当数量大的时候这个错误率趋于0即可。

Johnson-Lindenstrauss Lemma:假定向量$v_1,v_2,…,v_n in mathbb R ^D$,现在有随机矩阵$A in mathbb{R}^{m times D}$,它的entries是按照高斯$N(0,frac{1}{m})$独立的随机变量,那么对于任何$varepsilon in (0,1)$,至少有$1 - frac{1}{n^2}$的概率使得下式成立:

其中,$m > 大专栏  压缩感知与稀疏模型——Convex Methods for Sparse Signal Recovery32frac{log n}{varepsilon^2}$。

可以看到的是这个结论很棒,因为矩阵是任意随机的,甚至不用优化去求得。而对于高纬度的向量,使用$A$矩阵降维到$m$维,因为$m$的限制,使得查找的复杂度从$O(Dn)$变成了$O(nlog n)$,更惊喜的是实际上这个复杂度甚至和维度$D$无关了。在这里$D gg m$,从而实现了加速的效果。

下面对上述定理进行简单的证明。证明之前再说一下另外一个引理:

$g = (g1,…,g_m)$是一个m维度的随即向量,它的entries是独立高斯分布$N(0,frac{1}{m})$,那么对于任何$t in [0,1]$,有下面的结论:

设$g_{i,j} = Afrac{v_i - v_j}{Vert v_i - v_j Vert_2}$,对于任何的$v_i ne v_j$,$g_{i,j}$的entries是符合独立高斯($N(0,frac{1}{m})$)分布的。应用Lemma定理可以得到:

将所有概率简单加起来可以得到:

将$t = varepsilon, m ge 32 frac{log{n}}{varepsilon ^2}$代入上式,可以得到:

注意这里的$lvertVert g_{i,j}Vert_2^2 - 1 rvert leq t$也就等价于:

到这里证明也就结束了。

Covering and Packing problem

Covering问题:假如有每个站点有一定的影响力,求最小需要多少个站点,站点的影响力能将一个区域全部覆盖。

Packing问题:各个站点影响力不重合的情况下,一个区域最多能装下几个站点。比如一个盒子能装多少个小球就是packing问题。

最小化rank

现在有问题:

对于一般的L0范数,我们放松到L1范数,如下:

同样,我们可以发现一个最小化一个矩阵的秩实际上是特征值不为零的个数,因此可以有类似的放松:

上面是第三节课所听到的内容,遗漏了很多,只是做个记录。

压缩感知与稀疏模型——Convex Methods for Sparse Signal Recovery的更多相关文章

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

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

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

    转自:彬彬有礼. 压缩感知中的lp球:p范数最优化为什么总会导致一个稀疏的解的原因 http://blog.csdn.net/jbb0523/article/details/40268943 题目: ...

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

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

  4. 压缩感知Compressive sensing(一)

    compressive sensing(CS) 又称 compressived sensing ,compressived sample,大意是在采集信号的时候(模拟到数字),同时完成对信号压缩之意. ...

  5. 初识压缩感知Compressive Sensing

    压缩感知是近年来极为热门的研究前沿,在若干应用领域中都引起瞩目.最近粗浅地看了这方面一些研究,对于Compressive Sensing有了初步理解,在此分享一些资料与精华.本文针对陶哲轩和Emman ...

  6. 压缩感知“Hello World”代码初步学习

    压缩感知代码初学 实现:1-D信号压缩传感的实现 算法:正交匹配追踪法OMP(Orthogonal Matching Pursuit)   >几个初学问题   1. 原始信号f是什么?我采集的是 ...

  7. 图像压缩Vs.压缩感知

    压缩感知科普文两则: 原文链接:http://www.cvchina.info/2010/06/08/compressed-sensing-2/ 这几天由于happyharry的辛勤劳动,大伙纷纷表示 ...

  8. 浅谈压缩感知(二十八):压缩感知重构算法之广义正交匹配追踪(gOMP)

    主要内容: gOMP的算法流程 gOMP的MATLAB实现 一维信号的实验与结果 稀疏度K与重构成功概率关系的实验与结果 一.gOMP的算法流程 广义正交匹配追踪(Generalized OMP, g ...

  9. 浅谈压缩感知(二十六):压缩感知重构算法之分段弱正交匹配追踪(SWOMP)

    主要内容: SWOMP的算法流程 SWOMP的MATLAB实现 一维信号的实验与结果 门限参数a.测量数M与重构成功概率关系的实验与结果 SWOMP与StOMP性能比较 一.SWOMP的算法流程 分段 ...

随机推荐

  1. java程序无法连接Rabbitmq

    java程序不能连接到rabbitmq,提示有包括501.403.402等错误. 各种调试都没用,后来是尝试新建一个用户,在配置文件中使用新用户连接,最后才使程序成功运行.

  2. 00java语法基础和课后实践

    一:运行代码,并分析结果 代码1: package reserve; public class Main { public static void main(String[] args) { Size ...

  3. Python笔记_第一篇_面向过程_第一部分_1.Python环境的设置(含虚拟机)

    *Python环境的设置 Python的环境设置也就是所需工作平台的软件搭建.常用的搭建平台IOS系统+Linux系统和Windows+Linux系统的搭建.这里主要说明的是Windows+Linux ...

  4. ubuntu下git的使用

    1.安装git sudo apt-get install git sudo apt-get install git-core 2.配置git lzb@lzb:~$ git config --globa ...

  5. not in 优化 NOT EXISTS替代

    优化前 SELECT id, loan_id, NAME FROM xw_baoxian_interchange WHERE , , ) , ) AND loan_id NOT IN ( SELECT ...

  6. 完整注册登陆php源码,附带session验证。

    1.首先先写表单页面login.html. <!DOCTYPE html> <html lang="en"> <head>     <me ...

  7. mongodb的常见使用命令行

    由于cms工程要连接mongodb所以需要在在cms服务端工程添加如下依赖:项目使用spring data mongodb操作mongodb数据库 <dependency> <gro ...

  8. PAT Basic 1034 有理数四则运算(20) [数学问题-分数的四则运算]

    题目 本题要求编写程序,计算2个有理数的和.差.积.商. 输⼊格式: 输⼊在⼀⾏中按照"a1/b1 a2/b2"的格式给出两个分数形式的有理数,其中分⼦和分⺟全是整型范围内的整数, ...

  9. Linux系统的限制

    1.总结系统限制有:    /proc/sys/kernel/pid_max #查系统支持的最大线程数,一般会很大,相当于理论值    /proc/sys/kernel/thread-max    m ...

  10. py02_03:py的数据类型

    数据类型初识 1. 整数(int) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位系统上,整数的位数为64位,取值 ...