K-SVD论文总结

北城余情 提交于 2019-11-27 23:21:36

稀疏表示:用较少的基本信号的线性组合来表达大部分或者全部的原始信号。

     假设我们用一个m*n的矩阵表示数据集Y,每一行代表一个样本,每一列代表样本的一个属性,一般而言,该矩阵大多数元素不为0。 稀疏表示的含义是,寻找一个系数矩阵X以及一个字典矩阵D使得D*X尽可能的还原Y,且X尽可能的稀疏。X就是Y的稀疏表示。公式如下:


    Y为训练样本,D为字典,X为稀疏系数。

  寻找最优解(X最稀疏)NP-Hard问题。用追逐算法(Pursuit Algorithm)得到的次优解代替。


K-SVD算法:广义的K-means算法。

关于k-means算法可以参考该博客https://blog.csdn.net/cc198877/article/details/9167989

    K-SVD是一个迭代过程。

1、假设字典D是固定的,使用追踪算法寻找最佳的系数矩阵X。

2、依次更新字典D的每一列,同时更新对应的系数。

3、循环1、2。


公式推导:

K-SVD的目标函数为

            (3)

 假设D是固定的,Y有N个样本,则

                              (4)

 此时公式(3)如下

        (5)

    假设字典D和系数矩阵X是固定的,更新D中的k列()和它对应的系数矩阵X中的k行()。公式(4)可以表示如下。

                   (6)

    EK为字典的第k列的残差,即没有dk项时表示的误差,也就是字典的第k列在表示Y的过程中究竟起到了多大的作用。

     在上式中,K-1项是确定的,只有第K项不确定。

     因为直接使用SVD得到,会导致是满向量(大多数元素为非0)的,所以更新的不能满足稀疏条件。当去掉中的0元素时,再使用SVD更新时,就不会出现上述状况。(此处有疑问,为什么去掉会满足) 过程如下:








参考:

1、https://blog.csdn.net/cc198877/article/details/9167989

2、https://blog.csdn.net/chengfanyong/article/details/40923905



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!