稀疏表示与字典学习大略讲解

稀疏向量:假设向量X={x1,x2,…xn}中的元素绝大部分为零元素,则称该向量是稀疏的。

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


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

损失函数:


其中B为字典,a为稀疏表示。Lambda为正则项占整个损失函数的比重。正则项为L1范数,(L1范数是向量中,非零项的个数。L2范数是非零项的绝对值之和,L3范数是非零项的平方开方)

这个损失函数是不是和神经网络的损失函数神似?但是区别在于,神经网络求得是权重B的最优,此处求a的最优,因此此处的解法也不同。通常正则稀疏的解法有:

从任意一个字典中为原始信号寻找最稀疏的表示常用的方法分类两类:

①贪婪算法,比如匹配追踪(MP)、正交匹配追踪(OMP)、弱匹配追踪(WMP)、阈值方法等;

②松弛算法,比如迭代加权最小二乘(Iterative-Reweighed-Least-Squares,IRLS)、基追踪(BP)等。

其中,贪婪算法的特点是速度快,精度相对较低;松弛算法是精度高,但速度慢。

 

穷举法——NP难:

假设 稀疏表示的非零项数目为L(sparse level),先令L=1,字典里的每一个原子(列向量)尝试一遍,看是否满足终止条件,共有K种组合。如果没有满足,再令L=2,再次尝试,共有K(K-1)/2种组合。还没有满足条件的,则令L=3……组合的数目呈指数增长,于是遇到了NP难问题。难在计算量太大。

 

贪婪算法——Matching Pursuit

第一步,找到最接近X的原子,等效于 向量上仅取一个非零项,求出最接近的原子,保留下来;

第二步,计算误差是否满足要求,如果满足,算法停止,否则,计算出残差信号,和第一步类似,找到最接近残差向量的原子,保留下来;

第三步,调整已选向量的系数,使得 最接近X,重复第二步。

 

松弛算法——Basis Pursuit,将L0问题转化为L1问题,解决的方法有很多,比如内点法、迭代收缩法等。事实上,它可以化成一个线性规划的问题,用MATLAB很容易解。

      上式中第一个累加项说明了字典学习的第一个目标是字典矩阵与稀疏表示的线性组合尽可能的还原样本;第二个累加项说明了αi应该尽可能的稀疏。之所以用L1范式是因为L1范式正则化更容易获得稀疏解。具体原因参看该书11.4章或移步机器学习中的范数规则化之(一)L0、L1与L2范数。字典学习便是学习出满足上述最优化问题的字典B以及样本的稀疏表示A(A{α1,α2,…,αi})。L1正则化常用于稀疏,可以获得稀疏解。如下图表示,L1正则化交点在轴上,所得的解一般只是在某个轴上有实数,另外的轴为0,从而最终得到稀疏解。


2.字典学习:

        寻找字典的过程称为字典学习。字典学习的一个假设是字典对于指定信号具有稀疏表示。因此,选择字典的原则就是能够稀疏地表达信号。

两种方法来设计字典:

•从已知的变换基中选取,比如 DCT 、小波基等,这种方法很通用,但是不能自适应于信号。

学习字典,即通过训练和学习大量的与目标数据相似的数据来获得。这里,我们介绍一种叫K-SVD的方法

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


字典学习的第一个好处——它实质上是对于庞大数据集的一种降维表示。第二,正如同字是句子最质朴的特征一样,字典学习总是尝试学习蕴藏在样本背后最质朴的特征(假如样本最质朴的特征就是样本最好的特征).稀疏表示的本质:用尽可能少的资源表示尽可能多的知识,这种表示还能带来一个附加的好处,即计算速度快。我们希望字典里的字可以尽能的少,但是却可以尽可能的表示最多的句子。这样的字典最容易满足稀疏条件。也就是说,这个“字典”是这个“稀疏”私人订制的。

稀疏表达有两点好处:
1) 省空间;
2) 奥卡姆剃刀说:如果两个模型的解释力相同,选择较简洁的那个。稀疏表达就符合这一点。
原文地址:https://blog.csdn.net/tiaxia1/article/details/80264228

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值