基于正则化模型的K-SVD算法及其应用

作者:刘坚桥;唐加山; 刊名:软件导刊 上传者:杨翼

【摘要】提出一种基于正则化方法的K均值奇异值分解(K-SVD)算法。新算法在更新字典阶段,建立一种正则化模型,针对经典K-SVD算法中每次原子更新,引入正则项参与字典更新过程,将每次更新原子所产生的误差限制在设定范围内完成原子更新。在K-SVD算法正则化模型基础上,对K-SVD的衍生算法近似K-SVD(Approximate KSVD)进行了研究,提出了适用于AK-SVD的正则化模型。实验结果表明,新模型训练字典的误差相较于传统算法缩小了13.8%。将训练字典用于图像去噪时发现,新模型下字典重构出图像的峰值信噪比(PSNR)比传统算法提升0.5dB左右。

全文阅读

0引言在稀疏表示领域,基于超完备冗余字典的信号稀疏分解[1]理论应用较多,而字典学习算法优化了冗余字典结构,使得构造出的字典能更好地适应模型,极大提高了冗余字典的灵活性与实用性。K-SVD字典学习算法是字典学习的经典算法之一,由Aharon等[2]于2006年提出,在压缩感知[3]、稀疏分解等领域得到广泛应用。与其它字典学习算法如MOD[4]等不同,K-SVD算法在更新字典时,对字典原子逐列进行更新而非直接更新整个字典。在更新原子方式上,K-SVD采用了K-Means聚类算法[5]思想,结合SVD(奇异值分解)对原子进行更新。SVD分解时间复杂度和空间复杂度都很高,而K-SVD每次原子更新都要进行一次SVD分解,导致算法运行时费时费力。对此,Hartigan[6]等提出了一种近似K-SVD算法(AK-SVD)。AK-SVD算法以一定的精度损失换取算法在运行速度上的提升。机器学习中经常用正则化方法对学习模型进行优化[7],通过对模型引入不同范数的正则项达到目的,F范数能防止学习模型过拟合[8]。本文通过将K-SVD算法与F范数正则化相结合,提出一种基于F范数正则化的K-SVD算法。1研究背景K-SVD算法求解分为稀疏表示阶段和字典学习阶段。(1)稀疏分解[9]问题可以描述为:arg minX||Y-DX||p其中,Y∈Rm×n为待稀疏分解向量,D∈Rm×k为待学习字典,X∈Rk×n为稀疏表示系数。稀疏分解是压缩感知等算法中的关键步骤,直接关系到信号的最优表示。常见的稀疏分解算法主要有贪婪迭代算法,如正交匹配追踪(OMP)[10]、基追踪算法以及超完备冗余字典表示法等。(2)字典学习的目标函数可以描述为:arg minD{||Y-DX||2F}.st.i,||xi||0!T0(1)式(1)中,||·||F为frobnious范数,它与l2范数具有相容性,X为稀疏表分解得到的稀疏系数矩阵,T0为X的稀疏度,一般T0足够小。字典D中的某一列称为字典原子,在更新字典过程中,K-SVD对字典原子逐列进行。将式(1)中D的待更新原子和其它原子分开,然后将所有原子与对应的相关系数相乘,得到误差估计E:||Y-DX||2F=||Y-∑kj=1djxjT||2F=||(Y-∑j≠kdjxjT)-dkxkT||2F=||Ek-dkxkT||2F(2)式(2)中,xkT为待更新的第k列原子所对应的相关系数,它出现在系数矩阵的第k行。因为矩阵X为稀疏矩阵,通过定义矩阵ωk定位信号集Y在稀疏表示过程中使用过原子dk的坐标。ωk={i|1≤i≤K,xkT(i)≠0},这样就能使更新字典过程中得到的X保持稀疏性。||Ekωk-dkxkTωk||2F=||ERk-dkxRT||2F(3)对式(3)中的ERk进行SVD分解:ERk=∑ri=1uiσiυTi得到更新后的字典原子d为:d=u1更新后的相关系数x为:x=σ1υ1其它原子也依次进行上述操作完成更新。由于K-SVD算法频繁进行SVD操作,耗时过长,Hartigan等在K-SVD的基础上提出了AK-SVD算法(Approximate K-SVD),在上述算法的第二阶段采用近似计算更新原子,A-SVD算法更新后的原子为:d=ERk/||ERk||2更新后的相关系数为:x=ERkdAK-SVD通过近似计算求得更新后的原子而避免SVD操作,提高了算法运行速度,但近似计算带来的误差使训练出的字典在一定程度上损失了表达能力。2正则化K-SVD模型2.1正则化方法线性回归方程经常用来表示预测模型与真实模型之间的关系,可用式(4)表示。y

参考文献

引证文献

问答

我要提问