K-SVD

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

K-SVD

Rachel Zhang
 
1. k-SVD introduction
1.     K-SVD usage:
Design/Learn a dictionary adaptively to betterfit the model and achieve sparse signal representations.
2.     Main Problem:
Y = DX
Where Y∈R(n*N), D∈R(n*K), X∈R(k*N), X is a sparse matrix.
N is # of samples;
n is measurement dimension;
K is the length of a coefficient.








 
2. Derivation from K-Means
3.       K-Means: 
1)       The sparse representationproblem can be viewed as generalization of the VQ objective. K-SVD can be viewed as generalization of K-Means.
2)       K-Means algorithm for vectorquantization:
Dictionary of VQ codewords is typically trained using K-Means algorithm.
When Dictionary D is given, each signal is represented as its closestcodeword (under l2-norm distance). I.e.
Yi = Dxi
Where xi = ej is a vector from the trivial basis,with all zero entries except a one in the j-th position.
3)       VQ的字典训练:
K-Means被视作一个sparse coding的特例,在系数x中只有一个非零元,MSE定义为:






所以VQ的问题是:






4)       K-Means 算法实现的迭代步骤:
1) 求X的系数编码
2) 更新字典
 








 
3. K-SVD,generalizing the K-Means
4.       Objective function


 
5.       K-SVD的求解 
Iterative solution: 求X的系数编码(MP/OMP/BP/FOCUSS),更新字典(Regression).
K-SVD优化:也是K-SVD与MOD的不同之处,字典的逐列更新:
假设系数X和字典D都是固定的,要更新字典的第k列dk,领稀疏矩阵X中与dk相乘的第k行记做,则目标函数可以重写为:
 
上式中,DX被分解为K个秩为1的矩阵的和,假设其中K-1项都是固定的,剩下的1列就是要处理更新的第k个。矩阵Ek表示去掉原子dk的成分在所有N个样本中造成的误差。
 
6.       提取稀疏项
 如果在5.中这一步就用SVD更新dk和,SVD能找到距离Ek最近的秩为1的矩阵,但这样得到的系数不稀疏,换句话说,与更新dk前的非零元所处位置和value不一样。那怎么办呢?直观地想,只保留系数中的非零值,再进行SVD分解就不会出现这种现象了。所以对Ek和做变换,中只保留x中非零位置的,Ek只保留dk和中非零位置乘积后的那些项。形成,将做SVD分解,更新dk。








7.       总结
K-SVD总可以保证误差单调下降或不变,但需要合理设置字典大小和稀疏度。
在我的实验中,随着字典的增大,K-SVD有整体效果提升的趋势,但不一定随着稀疏度的增大使得整体误差下降。




 
 
 
8.       Reference:
1)       K-SVD: An algorithm fordesigning overcomplete dictionaries for sparse representation (IEEE Trans. OnSignal Processing 2006)
2)       From sparse solutions of systemsof equations to sparse modeling of signals and images (SIAM Review 2009 240')







 
2. Derivation from K-Means
3.       K-Means: 
1)       The sparse representationproblem can be viewed as generalization of the VQ objective. K-SVD can be viewed as generalization of K-Means.
2)       K-Means algorithm for vectorquantization:
Dictionary of VQ codewords is typically trained using K-Means algorithm.
When Dictionary D is given, each signal is represented as its closestcodeword (under l2-norm distance). I.e.
Yi = Dxi
Where xi = ej is a vector from the trivial basis,with all zero entries except a one in the j-th position.
3)       VQ的字典训练:
K-Means被视作一个sparse coding的特例,在系数x中只有一个非零元,MSE定义为:






所以VQ的问题是:






4)       K-Means 算法实现的迭代步骤:
1) 求X的系数编码
2) 更新字典
 








 
3. K-SVD,generalizing the K-Means
4.       Objective function


 
5.       K-SVD的求解 
Iterative solution: 求X的系数编码(MP/OMP/BP/FOCUSS),更新字典(Regression).
K-SVD优化:也是K-SVD与MOD的不同之处,字典的逐列更新:
假设系数X和字典D都是固定的,要更新字典的第k列dk,领稀疏矩阵X中与dk相乘的第k行记做,则目标函数可以重写为:
 
上式中,DX被分解为K个秩为1的矩阵的和,假设其中K-1项都是固定的,剩下的1列就是要处理更新的第k个。矩阵Ek表示去掉原子dk的成分在所有N个样本中造成的误差。
 
6.       提取稀疏项
 如果在5.中这一步就用SVD更新dk和,SVD能找到距离Ek最近的秩为1的矩阵,但这样得到的系数不稀疏,换句话说,与更新dk前的非零元所处位置和value不一样。那怎么办呢?直观地想,只保留系数中的非零值,再进行SVD分解就不会出现这种现象了。所以对Ek和做变换,中只保留x中非零位置的,Ek只保留dk和中非零位置乘积后的那些项。形成,将做SVD分解,更新dk。








7.       总结
K-SVD总可以保证误差单调下降或不变,但需要合理设置字典大小和稀疏度。
在我的实验中,随着字典的增大,K-SVD有整体效果提升的趋势,但不一定随着稀疏度的增大使得整体误差下降。




 
 
 
8.       Reference:
1)       K-SVD: An algorithm fordesigning overcomplete dictionaries for sparse representation (IEEE Trans. OnSignal Processing 2006)
2)       From sparse solutions of systemsof equations to sparse modeling of signals and images (SIAM Review 2009 240')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值