热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

稀疏表示matlab

本文主要介绍关于系数表达的知识点,对【稀疏表示】和【稀疏表示matlab】有兴趣的朋友可以看下由【my_chen_smile】投稿的技术文章,希望该技术和经验能帮到你解决你所遇的【基础理论】相关技术问

本文主要介绍关于系数表达的知识点,对【稀疏表示】和【稀疏表示matlab】有兴趣的朋友可以看下由【my_chen_smile】投稿的技术文章,希望该技术和经验能帮到你解决你所遇的【基础理论】相关技术问题。

稀疏表示matlab

?

1. 引言

稀疏表示具有完善的理论基础和使用价值并且广泛应用于图像处理,模式识别和机器视觉等领域。本文主要介绍稀疏表示算法理论基础和其在图像处理中的应用。理论基础全面介绍了稀疏表示的理论框架和不同lp

-范数正则化项下优化算法。应用上结合无监督字典学习方法和有监督字典学习方法介绍了稀疏表示在图像处理和目标识别领域的应用。着重介绍在图像去噪,图像超分辨率,人脸识别以及目标识别等领域的应用算法,并分析算法的特点,和后续的发展趋势。最后总结稀疏表示在图像中的应用并对稀疏表示的发展方形进行展望。本文主要介绍系数表达的基本概念和l0范数的求解,后续的lp范数以及求解和应用见后续更新。

?

2. 稀疏表示框架

稀疏表示的目的就是从已有的字典中选择具有代表性的原子来表示输入图像。字典通常会是一个过完备的字典,因此在进行编码时得到的向量通常只有少数几个元素是为零的,其他的都为零,因此把这样的编码向量称之为稀疏编码。定义输入信号为y,已经学习到的字典为D,稀疏编码为

\alpha

? ,则稀疏编码的目标函数如下::

??? ?

\hat \alpha = \arg \mathop {\min }\limits_\alpha \left\| {y - D\alpha } \right\|_2^2\\ s.t.{\left\| \alpha \right\|_0} \le K

? ? ? ? ? ? ? ? ? ??

其中,K是稀疏约束,

?为

-范数,为向量中非零元素的个数。

通常我们更容易处理不含有约束的优化问题,因此将式引入拉格朗日乘子,则可以改写为

?? ????????????????????? ???

\hat \alpha = \arg \mathop {\min }\limits_\alpha \left\| {y - D\alpha } \right\|_2^2 + \lambda {\left\| \alpha \right\|_0}

下面对式从贝叶斯角度进行推导,假定

$x = D\alpha $

,根据贝叶斯公式可得

?????? ???????????????

\hat x = \arg \max P\left( {x|y} \right) \propto \arg \max P\left( {y|x} \right)P\left( x \right)

其中,

为条件概率,

为先验概率。假设稀疏编码稀疏服从指数分布,那么

? ????????????????????

\hat \alpha = \arg \mathop {\max }\limits_\alpha P\left( {\alpha |y} \right)\\ = \arg \mathop {\max }\limits_\alpha \left( { - \log P\left( {y|\alpha } \right) - \log P\left( \alpha \right)} \right)\\ = \arg \mathop {\min }\limits_\alpha \left\| {HD\alpha - y} \right\|_2^2 + \lambda {\left\| \alpha \right\|_p}

其中,p=0,为

- 范数稀疏编码。

上式即为一般稀疏表示的目标函数。但是这里含有零范数,是一个非凸的NP难问题,因此在进行稀疏表示时出现了两大方向:一是对式采用贪婪的算法求取近似解;二是将

-范数进行松弛为l1 - 范数或者l2 - 范数。 1 展示了不同范数的解空间。零范数和l1 - 范数l2 - 范数的解可以进行近似。在目标函数的约束下,l1 - 范数和零范数的解更为相近,l1 - 范数解空间为凸集但是却不是光滑可微的,l2-范数近似程度较差,但是为凸集而且可微便于优化。因此在不同的应用背景下具有不同的要求。

?图1 单位-范数示意图:(a)p=0;(b)p=1;(c)p=2;(c)0

?

3.?? l0 -范数稀疏表示

l0 -范数稀疏表示目标函数即为式所示。如图2所示,解空间是非凸的,无法找到最优解,因此通常采用贪婪算法进行求解。经典的贪婪算法为MP[3],OPM[4]算法。

3.1 MP算法 初始化:

????????????????? ?????????

{R_0} = y\\ D = \left[ {?{d_1},{d_2},...,{d_N}} \right] \in {R^{d \times N}}

??????????

其中,R表示残差字典D必须是归一化的,即 ?

1) 找到最接近残差的字典元素

??????????????????? ?????????????????????

\left| {\left\langle {?{R_0},{d_{?{l_0}}}} \right\rangle } \right| = \sup \left| {\left\langle {?{R_0},{d_i}} \right\rangle } \right|

?

找到内积最大的字典元素,说明该元素和残差最接近

2) 更新残差

???????????????????????? ?????????????????

y = \left\langle {y,{d_{?{l_0}}}} \right\rangle {d_{?{l_0}}} + {R_1}

??????

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

${R_1} = y - \left\langle {y,{d_{?{l_0}}}} \right\rangle {d_{?{l_0}}}$

?? ? ? ? ? ?

由图2可知,得到的残差和字典元素正交,因此根据勾股定理有

??????????????????? ??????????????????????

{\left\| y \right\|^2} = {\left| {\left\langle {y,{d_{?{l_0}}}} \right\rangle } \right|^2} + {\left\| {?{R_1}} \right\|^2}

?

3) 继续迭代

????????????????????? ?????????????????????

{R_t} = \left\langle {?{R_t},{d_{?{l_t}}}} \right\rangle {d_{?{l_t}}} + {R_{t + 1}}

?

??????????????????? ???????????????????

\left| {\left\langle {?{R_t},{d_{?{l_t}}}} \right\rangle } \right| = \sup \left| {\left\langle {?{R_t},{d_i}} \right\rangle } \right|

?

???????????????? ????????????????

{\left\| {?{R_k}} \right\|^2} = {\left| {\left\langle {?{R_t},{d_{?{l_t}}}} \right\rangle } \right|^2} + {\left\| {?{R_{t + 1}}} \right\|^2}

?

4) 终止条件

?????????????????????????????????????????

{\left\| {?{R_n}} \right\|^2} \le \tau

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

5) 最终表示形式

???????????????????? ????????????????????

y = \sum\limits_{j = 1}^{n - 1} {\left\langle {?{R_t},{d_{?{l_t}}}} \right\rangle } {d_{?{l_t}}} + {R_n}

?

其中

$\left\langle {?{R_j},{d_{?{l_j}}}} \right\rangle $

, ?就最终关于字典D的稀疏表示[3]。

6) 算法的收敛性

从下面的向量图我们可以清楚地看出,k+1的残差Rk+1是k步残差Rk 的分量。根据直角三角形斜边大于直角边,|Rk+1|<=|Rk|,则算法收敛

图2 MP示意图

3.2 OMP算法

Orthogonal Pursuit Algorithm算法简称 OPM算法。其是一种在MP算法上的改进算法[4]。

如果我们的字典只有两个向量d1,d-2,那么MP算法会在这两个向量间交叉迭代投影,也就是f=a1d1+a2d2+a3d1+a4d2+…..;也就是之前投影过的原子方向,之后还有可能投影。换句话说,MP的方向选择不是最优的,是次优的。

图 3 MP示意图

?

MP算法的次最优性来源其残差只与当前投影方向垂直,这样在接下来的投影中,很有可能会再次投影到原来的方向。

于是,在投影时,如果我们使得残差Rk+1与x1-xk+1的所有向量垂直,则可以克服这个问题,如下:

???????????????? ???

\left\langle {?{R_{k + 1}},{x_n}} \right\rangle = 0,n = 1,...,k + 1

?????????????

对于已经进行匹配过的字典中的元素不再进行匹配。OMP算法如下:

?

本文《稀疏表示》版权归my_chen_smile所有,引用稀疏表示需遵循CC 4.0 BY-SA版权协议。


推荐阅读
  • 基于2-channelnetwork的图片相似度判别一、相关理论本篇博文主要讲解2015年CVPR的一篇关于图像相似度计算的文章:《LearningtoCompar ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 机器学习中的相似度度量与模型优化
    本文探讨了机器学习中常见的相似度度量方法,包括余弦相似度、欧氏距离和马氏距离,并详细介绍了如何通过选择合适的模型复杂度和正则化来提高模型的泛化能力。此外,文章还涵盖了模型评估的各种方法和指标,以及不同分类器的工作原理和应用场景。 ... [详细]
  • 最近团队在部署DLP,作为一个技术人员对于黑盒看不到的地方还是充满了好奇心。多次咨询乙方人员DLP的算法原理是什么,他们都以商业秘密为由避而不谈,不得已只能自己查资料学习,于是有了下面的浅见。身为甲方,虽然不需要开发DLP产品,但是也有必要弄明白DLP基本的原理。俗话说工欲善其事必先利其器,只有在懂这个工具的原理之后才能更加灵活地使用这个工具,即使出现意外情况也能快速排错,越接近底层,越接近真相。根据DLP的实际用途,本文将DLP检测分为2部分,泄露关键字检测和近似重复文档检测。 ... [详细]
  • 探索电路与系统的起源与发展
    本文回顾了电路与系统的发展历程,从电的早期发现到现代电子器件的应用。文章不仅涵盖了基础理论和关键发明,还探讨了这一学科对计算机、人工智能及物联网等领域的深远影响。 ... [详细]
  • 机器学习核心概念与技术
    本文系统梳理了机器学习的关键知识点,涵盖模型评估、正则化、线性模型、支持向量机、决策树及集成学习等内容,并深入探讨了各算法的原理和应用场景。 ... [详细]
  • Google排名优化-面向Google(Search Engine Friendly)的URL设计 ... [详细]
  • 强人工智能时代,区块链的角色与前景
    随着强人工智能的崛起,区块链技术在新的技术生态中扮演着怎样的角色?本文探讨了区块链与强人工智能之间的互补关系及其在未来技术发展中的重要性。 ... [详细]
  • 京东AI创新之路:周伯文解析京东AI战略的独特之处
    2018年4月15日,京东在北京举办了人工智能创新峰会,会上首次公开了京东AI的整体布局和发展方向。此次峰会不仅展示了京东在AI领域的最新成果,还标志着京东AI团队的首次集体亮相。本文将深入探讨京东AI的发展策略及其与BAT等公司的不同之处。 ... [详细]
  • 近期,我们的研究团队专注于人脸检测技术,特别是Adaboost算法的应用,该算法在OpenCV中的实现为人脸检测提供了高效解决方案。基于此,我们开始探索如何通过改进PCA(主成分分析)方法来提高人脸识别的准确性和效率。 ... [详细]
  • 《计算机视觉:算法与应用》第二版初稿上线,全面更新迎接未来
    经典计算机视觉教材《计算机视觉:算法与应用》迎来了其第二版,现已开放初稿下载。本书由Facebook研究科学家Richard Szeliski撰写,自2010年首版以来,一直是该领域的标准参考书。 ... [详细]
  • 利用Dlib进行高效的人脸特征提取与识别
    本文介绍了Dlib库,一个集成了多种机器学习算法的C++工具包,特别适用于需要处理复杂任务的应用场景。Dlib不仅支持机器人技术、嵌入式系统开发、移动应用及高性能计算环境,还提供了强大的人脸检测与特征提取功能。 ... [详细]
  • java文本编辑器,java文本编辑器设计思路
    java文本编辑器,java文本编辑器设计思路 ... [详细]
  • BUUCTF [ZJCTF 2019] NiZhuanSiWei 解题报告
    本文详细解析了BUUCTF [ZJCTF 2019] NiZhuanSiWei的解题过程,包括代码审计、PHP伪协议的使用以及反序列化漏洞的利用。 ... [详细]
  • 本文深入探讨了JavaScript中实现继承的四种常见方法,包括原型链继承、构造函数继承、组合继承和寄生组合继承。对于正在学习或从事Web前端开发的技术人员来说,理解这些继承模式对于提高代码质量和维护性至关重要。 ... [详细]
author-avatar
手机用户2502887641
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有