K-SVD算法

它与K-mean算法原理上是类似的;

K-mean 算法:

(之前写过:http://www.cnblogs.com/yinheyi/p/6132362.html

对于初始化的类别中心,可以看作初化的字典(每一列为一个类别中心); 而每一样本的表示可以用一个稀疏向量表示(此向量只有对应的类别为1,其余为0)

K-svd算法:

http://blog.csdn.net/garrison2012/article/details/48135619

http://blog.csdn.net/abcjennifer/article/details/8693342

http://blog.csdn.net/abcjennifer/article/details/8693342

K-SVD是一种经典的字典训练算法,依据误差最小原则,对误差项进行SVD分解,选择使误差最小的分解项作为更新的字典原子和对应的原子系数,经过不断的迭代从而得到优化的解。

具体可以看看参考文献;

总结一句话:当更新字典中的一个原子时,把该原子对误差的贡献清零,然后对剩余的误差矩阵进行SVD分解(原因是SVD分解可以把最影响该矩阵的向量找出来,可以说成参量沿主轴的分布,  与主成分分析的原理差不多);

对于k-SVD算法,里面还有一些小细节注意,直接看参考文献吧;

这里有OMP与K-SVD的工具箱;

http://www.cs.technion.ac.il/~ronrubin/software.html

很好很好的,帮助文档也很好,很详细;

原文地址:https://www.cnblogs.com/yinheyi/p/7407479.html