K-SVD与On-line dictionary learning

   字典学习是Sparse Coding的重要部分,字典学习通常采用两种方法,一种是K-SVD,另一种则是On-line dictionary learning。两者的区别在于K-SVD是

  

   

K-SVD

K-SVD与On-line dictionary learning_第1张图片

K-SVD优化时,字典逐列更新:

假设系数X和字典D都是固定的,要更新字典的第k列dk,领稀疏矩阵X中与dk相乘的第k行记做,则目标函数可以重写为:

     

   上式中,DX被分解为K个秩为1的矩阵的和,假设其中K-1项都是固定的,剩下的1列就是要处理更新的第k个。矩阵Ek表示去掉原子dk的成分在所有N个样本中造成的误差。

   

     提取稀疏项

     我们不能直接对上式进行SVD分解,通过轮换的方法求出,因为对应的是X的一行,我们并没有对此施加稀疏性约束。解决方法如下:

K-SVD与On-line dictionary learning_第2张图片

对(21)进行最小化等价于:



另外参考:http://blog.csdn.net/abcjennifer/article/details/8693342



 On-line dictionary learning


  K-SVD与On-line dictionary learning_第3张图片


=============================================================================

K-SVD与On-line dictionary learning_第4张图片

===============================================================================

K-SVD与On-line dictionary learning_第5张图片




推荐一个Sparse Coding 工具包:SPAMS [下载]





Reference:

1)  An Introduction to Sparse Coding and Dictionary Learning

2)  K-SVD: An Algorithm for Designing of Overcomplete Dictionaries for Sparse Representation

3)  Online Dictionary Learning for Sparse Coding


   


你可能感兴趣的:(机器学习,coding,learning,online,sparse,dic,K-SVD)