目录

一、预备知识

二、字典学习以及稀疏表示的概要

2.1、我们为什么需要字典学习?

2.2、我们为什么需要稀疏表示?

三、下一节

参考文献


一、预备知识

稀疏向量:假设向量中的元素绝大部分为零元素,则称该向量是稀疏的。

稀疏表示:将原始信号表示为在适当选取的一组过完备基(字典D)上的稀疏线性组合,即信号的稀疏表示,其中   为字典中的原子。过完备基的意思是其中的原子数大大的超过原始信号的维数。

在表达式中:称为原始信号,为字典,的稀疏表示。其实该表达式中间的=是理想化的情况,一般只是用逼近原始信号。这就类似于用神经网络或者卷积神经网络等深度学习的网络去模拟任意函数。只不过,在神经网络中,求的是权值的最最优值,而此处求得是在字典下的最优解。因此,类似的求解的过程变成了最优化和原始信号的过程。即信号的稀疏表示问题转化为求解稀疏正则优化问题。

二、字典学习以及稀疏表示的概要

字典学习(Dictionary Learning)和稀疏表示(Sparse Representation)在学术界的正式称谓应该是稀疏字典学习(Sparse Dictionary Learning)。该算法理论包含两个阶段:字典构建阶段(Dictionary Generate)和利用字典(稀疏的)表示样本阶段(Sparse coding with a precomputed dictionary)。这两个阶段(如下图)的每个阶段都有许多不同算法可供选择,每种算法的诞生时间都不一样,以至于稀疏字典学习的理论提出者已变得不可考。笔者尝试找了Wikipedia和Google Scolar都无法找到这一系列理论的最早发起人。

这里有两个问题是必须要预先解释清楚:

2.1、我们为什么需要字典学习?

回答这个问题实际上就是要回答“稀疏字典学习 ”中的字典是怎么来的。做一个比喻,句子是人类社会最神奇的东西,人类社会的一切知识无论是已经发现的还是没有发现的都必然要通过句子来表示出来(从某种意义上讲,公式也是句子)。这样说来,人类懂得的知识可要算是极为浩繁的。有人统计过人类每天新产生的知识可以装满一个2T(2048G)大小的硬盘。但无论有多少句子需要被书写,对于一个句子来说它最本质的特征是什么呢?毫无疑问,是一个个构成这个句子的单词(对英语来说)或字(对汉语来说)。所以我们可以很傲娇的这样认为,无论人类的知识有多么浩繁,也无论人类的科技有多么发达,一本长不过20厘米,宽不过15厘米,厚不过4厘米的新华字典或牛津字典足以表达人类从古至今乃至未来的所有知识,那些知识只不过是字典中字的排列组合罢了!直到这里,我相信相当一部分读者或许在心中已经明白了字典学习的第一个好处——它实质上是对于庞大数据集的一种降维表示。第二,正如同字是句子最质朴的特征一样,字典学习总是尝试学习蕴藏在样本背后最质朴的特征(假如样本最质朴的特征就是样本最好的特征),这两条原因同时也是这两年深度学习之风日盛的情况下字典学习也开始随之升温的原因。题外话:现代神经科学表明,哺乳动物大脑的初级视觉皮层干就事情就是图像的字典表示。

2.2、我们为什么需要稀疏表示?

回答这个问题毫无疑问就是要回答“稀疏字典学习”中稀疏两字的来历。不妨再举一个例子。相信大部分人都有这样一种感觉,当我们在解涉及到新的知识点的数学题时总有一种累心(累脑)的感觉。但是当我们通过艰苦卓绝的训练将新的知识点牢牢掌握时,再解决与这个知识点相关的问题时就不觉得很累了。这是为什么呢?意大利罗马大学的Fabio Babiloni教授曾经做过一项实验,他们让新飞行员驾驶一架飞机并采集了他们驾驶状态下的脑电,同时又让老飞行员驾驶飞机并也采集了他们驾驶状态下的脑电。如下图所示:

随后Fabio教授计算出了两类飞行员的大脑的活跃状态,如下图:

左图是新飞行员(不熟练的飞行员)的大脑。图中黄色的部分,是被认为活跃的脑区。右图是老飞行员(熟练的飞行员)的大脑,黄色区域相比左边的图有明显的减少。换言之,针对某一特定任务(这里是飞行),熟练者的大脑可以调动尽可能少的脑区消耗尽可能少的能量进行同样有效的计算(所以熟悉知识点的你,大脑不会再容易觉得累了),并且由于调动的脑区很少,大脑计算速度也会变快,这就是我们称熟练者为熟练者的原理所在。站在我们所要理解的稀疏字典学习的角度上来讲就是大脑学会了知识的稀疏表示

ML笔记:字典学习2(Dictionary Learning)稀疏表示的本质:用尽可能少的资源表示尽可能多的知识,这种表示还能带来一个附加的好处,即计算速度快。

在懂得“字典”和“稀疏”各自的那点事儿以后,我们还要再讲讲稀疏和字典共同的那点儿事。或许在大脑中“字典”和“稀疏”是两个不怎么想干的阶段,毕竟“字典”涉及初级视觉皮层,而“稀疏”涉及前额叶皮层。但是在计算机中,“字典”和“稀疏”却是一堆孪生兄弟。在学习样本字典之初的时候,稀疏条件就已经被加入了。我们希望字典里的字可以尽能的少,但是却可以尽可能的表示最多的句子。这样的字典最容易满足稀疏条件。也就是说,这个“字典”是这个“稀疏”私人订制的。

三、下一节

  • ML笔记:字典学习2(Dictionary Learning)
  • ML笔记:字典学习3(Dictionary Learning,KSVD)

参考文献

最后感谢作者:

  1. https://www.cnblogs.com/endlesscoding/p/10090866.html
  2. https://blog.csdn.net/tiaxia1/article/details/80264228
  3. https://blog.csdn.net/txwh0820/article/details/46392293

『ML笔记』深入浅出字典学习1(Dictionary Learning)相关推荐

  1. 『ML笔记』深入浅出字典学习2(Dictionary Learning)

    深入浅出字典学习2(Dictionary Learning) 文章目录 一.理解K-SVD字典学习 二.K-SVD字典学习算法概述 2.1.随机初始化字典D 2.2.固定字典,求取每个样本的稀疏编码 ...

  2. 字典学习(Dictionary Learning)

    字典学习(Dictionary Learning) SparseCoder和DictionaryLearning的关系是什么? sklearn.decomposition: Matrix Decomp ...

  3. 【零散知识】字典学习(Dictionary Learning)

    前言: { 之前的神经网络实践还卡在硬件上,不过目前已经打算先使用云设备,下次应该就会继续进行多目标识别的调试.这次就先写一点零散知识. 在专利[1]中我遇到了新的观点--字典学习(Dictionar ...

  4. 『ML笔记』字典学习3(Dictionary Learning,KSVD)

    文章目录 一.字典学习数学模型 1.1.数学描述 1.2.求解问题 1.3.字典学习算法实现 字典学习也是一种数据降维的方法,这里我用到SVD的知识,对SVD不太理解的地方,可以看看这篇博客: 奇异值 ...

  5. 稀疏编码(sparse code)与字典学习(dictionary learning)

    Dictionary Learning Tools for Matlab. 1. 简介 字典 D∈RN×KD\in \mathbb R^{N\times K}(其中 K>NK>N),共有 ...

  6. 在线字典学习(Online dictionary learning for sparse coding)-机器学习

    稀疏编码-将数据向量建模为基向量的线性组合,大量地应用于机器学习.神经科学.信号处理及统计学.这篇文章主要学习基向量也就是字典使之适应特定数据,在声音.图像处理领域信号重构与分类是一种近来被证明非常有 ...

  7. SCDL--稀疏编码(sparse code)与字典学习(dictionary learning)

    转载自未雨愁眸  https://www.cnblogs.com/mtcnn/p/9421836.html 1. 简介 字典 D∈RN×K(其中 K>N),共有 k 个原子,x∈RN×1 在字典 ...

  8. 字典学习(Dictionary Learning, KSVD)详解

    注:字典学习也是一种数据降维的方法,这里我用到SVD的知识,对SVD不太理解的地方,可以看看这篇博客:<SVD(奇异值分解)小结 >. 1.字典学习思想 字典学习的思想应该源来实际生活中的 ...

  9. 『ML笔记』HOG特征提取原理详解+代码

    HOG特征提取原理详解+代码! 文章目录 一. HOG特征介绍 二. HOG算法具体流程+代码 2.1. 图像灰度化和gamma矫正 2.2. 计算图像像素梯度图 2.3. 在8×8的网格中计算梯度直 ...

最新文章

  1. Conventions and patterns for multi-platform development
  2. 常见的HTML5面试题(附答案)
  3. Android Studio中安装OpenCV SDK
  4. python必备插件_5框酷毙的python插件工具
  5. BigDecimal的个人总结
  6. OpenShift 4 之Istio-Tutorial (7) 利用VirtualService的故障注入实现混沌测试Chaos Testing
  7. STM32:GPIO配置说明
  8. 【物联网控制技术复习】【复数的概念】【拉普拉斯变换】
  9. SSRF学习(5)gopher协议上传文件
  10. GIS应用技巧之联合
  11. python实现两个图片的叠加融合
  12. RocketMQ系列---消息消费者及消费方式
  13. 动物识别系统代码python_人工智能-动物识别专家系统算法Python + Pyqt 实现
  14. Kubuntu 系统美化--系统图标
  15. A Sample Crash Log
  16. 出生年月日的html语句,出生年月日五行查询表
  17. java 第三方接口安全性_提供接口给第三方使用,需要加上校验保证接口的安全性(rsa加密解密)...
  18. 解决No “rule to make target `../skin_test.qss', needed by `debug/qrc_resource.cpp'. Stop.”
  19. 就是这35个人,率先入选了《共识算法高阶课》第一期!
  20. 汇川,H3U,plc程序模板和触摸屏程序模板,三个步进和三个伺服

热门文章

  1. electron学习
  2. 计算机毕业设计 SpringBoot+Vue党建管理系统 教育党建系统 智慧党建系统 党建信息管理系统Java Vue MySQL数据库 远程调试 代码讲解
  3. linux截图工具下载,Ubuntu 安装 Linux Deepin 截图工具(.deb)
  4. 计算机和网络设备为什么要接地,电子设备为什么要接地
  5. linux系统下c语言的文件读写
  6. 依赖:类之间的依赖关系【python】
  7. 街头智慧:罗杰斯的投资与人生
  8. 一份完整的PyCharm图解教程
  9. RF低噪声放大器设计
  10. Pandas|Index不是datatime index报错