一、K-means算法
K—SVD方法是一种字典训练方法,于2006年由Michal Aharon(IEEE signal processing)提出,这种方法是K-均值算法的推广。因此,在介绍K-svd方法之前,首先学习和熟悉一下K-均值是有必要的。K-means是一种聚类方法,是指对于包含N个信号的集合Y进行分类,Y中各向量被归类于与之距离最小的代码所代表的类中。
矢量量化中,码本的训练可以用典型的K-means算法实现。当码本给定时,每个信号用最近的一个代码表示。这相当于稀疏编码的一个特例:只用一个原子表示信号,同时强制稀疏等于1.
二、K-SVD算法-广义K-均值算法
当K-SVD算法中要求的每个信号只用一个原子来近似时,K-SVD算法退化为K-means聚类算法。同样,稀疏表示也可看做广义的矢量量化,其中每个信号用多个代码的线性组合表示。K-SVD训练算法的目标方程除满足重构误差最小的条件下,还需使得系数向量中非零个数小于预先给定的一个阈值。