IEEE Trans 2006 使用K-SVD构造超完备字典以进行稀疏表示(稀疏分解)

本文介绍了2006年IEEE Transactions上的一篇论文,探讨了如何运用K-SVD算法来构建超完备字典,以此实现数据的稀疏表示。该方法在稀疏分解领域具有重要意义。
摘要由CSDN通过智能技术生成
K-SVD可以看做K-means的一种泛化形式,K-means算法总每个信号量只能用一个原子来近似表示,而K-SVD中每个信号是用多个原子的线性组合来表示的。   
K-SVD算法总体来说可以分成两步,首先给定一个初始字典,对信号进行稀疏表示,得到系数矩阵。第二步根据得到的系数矩阵和观测向量来不断更新字典。
设D∈R n×K,包含了K个信号原子列向量的原型{dj}j=1K,y∈R n的信号可以表示成为这些原子的稀疏线性结合。也就是说y=Dx,其中x∈RK表示信号y的稀疏系数。论文中采用的是2范数来计算误差。当n<K时,即行数小于烈数的时候,字典D是一个满秩矩阵,此时y=Dx是一个欠定方程,具有无穷多解,也就是稀疏表示的分解可能有无穷多种。所以必须加以约束,拥有最少的非零元素的解是最佳解,也就是要满足下述方程:
其中(P0)指的是零范数,也就是非零元素的个数。
如上所述,首先要进行稀疏表示,也就是论文中第‖部分所说的准备工作——稀疏编码。根据给定的信号y和初始字典D来求解稀疏表示系数。该问题可通过求解公式(1)或(2),通过追踪算法来找到最接近的解。L0范数问题是一个NP难的问题,文章大概介绍了集中方法进行求解,例如以MP和OMP为代表的贪婪算法,以BP为代表的凸优化方法等等,这里就不再详细介绍。
第Ⅲ部分讲解的是初始字典的选择。给定集合 存在字典D,对于每一个yk,通过求解公式(1)中的问题,我们能得到它的稀疏表示xk
 
A K-means泛化
稀疏表示和聚类(向量量化)有相似之处。在聚类方法中,我们要找到一组描述性向量,每一个样本能被唯一一个描述性向量表示。(和该样本距离最近的原子,距离的计算通常是欧式距离)。K-means的流程大致可分为两步:i)给定,找到与训练信号距离最近的原子,将信号分成该原子所在的聚类;ii)根据i中的结果,更新dk以更好的近似训练信号。我们可以把这种情况认为是在稀疏表示只能用一个原子来近似原信号的特殊情况,在这种情况下,对应的近似原子的稀疏系数也只有一个。而在稀疏表示中,每个信号是用dk中的某几个原子的线性组合来表示的,所以我们可以认为稀疏表示问题是聚类算法K-means的一种广义泛化。
根据K-means的步骤,我们可以近似写出稀疏表示的步骤:首先是稀疏编码,也就是根据给定的初始字典得到信号的稀疏系数,接着根据得到的稀疏系数矩阵去更新字典。
   
B 最大似然法
最大似然法应用概率推理来构造字典矩阵D。模型如公式(3)所示:
其中x为信号的稀疏表示,v为方差为σ2的残差向量。给定信号,考虑似然函数P(Y|D),找到合适的使得似然函数最大的字典矩阵D。首先我们假设yi之间是互相独立的,则我们可将似然函数写成:
 
第二个假设针对隐藏变量x,我们通过公式(5)来计算信号中的某一元素的似然函数:
结合公式(3)我们有:
假定表示向量X的元素是零均值的独立同分布,通常是柯西或者拉普拉斯分布。在论文中我们假定是拉普拉斯分布,则有:
x上的积分难以计算,所以我们用P(yi,x|D)处的极值来进行代换,则问题变成:
公式(8)中,字典D无惩罚项,而x i前乘上了一个惩罚因子,所以求解过程为了使稀疏系数的均值趋向于0,需要增加字典的元素个数,即字典矩阵的列数。我们可以通过约束信号中的每一个元素的二范数来解决上述问题。基于此,输出的稀疏的方差能保持在一个合适的稳定水平。
对于公式(8)的求解可采用一种迭代的方法,主要包含了两大步骤:
 
 C MOD(method of optimal directions)方法
该方法和K-means的方法非常相似,首先使用OMP或者FOCUSS方法来进行稀疏编码,接着进行字典更新。MOD的最大优点是它更新字典的速度快,方法简便。假定每个信号的稀疏系数是已知的,定义误差ei=yi-Dxi,则均方误差表示为:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值