深入浅出字典学习(Dictionary Learning)

问题描述

假设已有N张稀疏的图像,大小为800*800。请问如何通过稀疏表达的方式对原有图像数据进行压缩,同时保证图像尽量不失真。y向量代表原有的图像(640000维),A是字典矩阵(K*640000),x是稀疏表示向量(K维),因为K远远小于N,我们认为,稀疏表示后的数据获得了大幅的压缩。求A的过程通常称为字典学习。已知A,求x的过程称为稀疏表示。通常这两者可以等同。在实际训练的过程中,为了减少计算量,通常将图像切割为小的patch(8*8或16*16),然后针对这些patch进行训练获得patch字典。另外,值得一提的是,还有一个很火的概念叫压缩感知,和稀疏表示有些关联,但主要是关注在如何减少采样点上。

x是y的稀疏表示 (Sparse Coding)
人工构造的过完备over-complete字典(例如:DCT,小波字典等),过于完备,会有冗余
针对某张图片做字典学习后获得的字典,适应性强

模型建立

可以将该问题看成一个优化问题,第一项是确保A和xi能够很好地重构yi(失真少),第二项是确保xi尽量稀疏(字典构建耦合性小)。正则项本该用L0范数(非零项的个数),但因为比较难求解,这里用L1范数代替,L1范数代表的是绝对值的和。

建立模型

模型求解

输入是yi,需要求解的是A和xi。刚开始的时候,A是一个由部分yi构成的初始矩阵,然后求解xi,xi确定后,可以再求优化后的A,如此反复迭代获得最优的结果。这种求解方式称为KSVD,速度比较快。这是两步求解的算法:先固定A,求x,再固定x更新A,交替进行。K-SVD和K-means方法本质上都属于一种压缩的思想,都主要包含以下两个步骤:(1)稀疏编码;(2)字典更新。K-SVD中,稀疏编码可使用OMP方法,然后字典更新使用SVD奇异值分解,细节可参考以下链接的内容:(http://blog.csdn.net/hjimce/article/details/50810129,https://wenku.baidu.com/view/f31e3f82e43a580216fc700abb68a98271feac56.html)

在K-means方法中,K-means 先随机选择K个初始点作为字典,K个初始点就代表K类。然后通过K-means聚类,聚出K个类(稀疏编码阶段),每个聚类中心(均值)做为新的字典(字典更新)。K-means的编码矩阵X是一个高度稀疏的矩阵,X的每一列就只有一个非零的元素,对应聚类中心。而K-SVD的编码矩阵的每一列可以有多个非零元素。

K-SVD方法的求解步骤如下:

1. 基本定义

Y是一个矩阵,是参与训练的样本yi的集合,样本数量为n,假设样本的维度是m。

A是一个矩阵,是字典,该矩阵是k*m,其中k是字典中原子的数量,m是原子的维度(和样本维度一致)

X是一个矩阵,是稀疏代码xi的集合,xi的维度是m

2. 初始化

从样本集Y中随机挑选k个样本,作为A的初始值;并且初始化X为0

3. 求解xi

为了简单起见,我们抽出一个样本进行讨论,假定样本为y向量,稀疏代码为x向量。现在y和A算是已知的,求解x,同时满足x尽量的稀疏,也就是非零元素尽量的少。假设A为[a1,a2,a3,a4,a5],其中有5个原子。首先求出离y距离最近的原子,假设是a3。那么我们就可以求出一个初步的x为[0,0,c3,0,0],c3是一个未知系数,代表原子的权重。假定y=c3*a3。可求得c3的值。接着我们用求出的c3求残差向量y'=y-c3*α3,y'是一个预设的阈值向量,当y'小于阈值的话,则停止计算,如果不小于的话,转到下一步。

计算剩余的原子a1,a2,a4,a5中与残差向量y'距离最近的,假设是a1,那么更新x为[c1,0,c3,0,0],假设y=c1*a1+c3*a3,求解出c1,然后更新残差向量y'=y-c1*a1-c3*α3。判断是否小于阈值,如果不满足,再继续求下一个最近的原子的系数。求解原子系数的数量也可以指定为一个常量,例如3,那就代表迭代3次。

4. 更新字典

通过上一个步骤可以求出所有的xi,接着就可以更新字典A了。K-SVD的方法是逐个地更新字典的原子以及编码。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,108评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,699评论 1 296
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,812评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,236评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,583评论 3 288
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,739评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,957评论 2 315
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,704评论 0 204
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,447评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,643评论 2 249
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,133评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,486评论 3 256
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,151评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,108评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,889评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,782评论 2 277
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,681评论 2 272

推荐阅读更多精彩内容