1 最近一直在拜读斯坦万格大学的Karl Skretting教授的文章。字典学习算法中响当当的一些算法都出自K.S.团队,例如MOD。其字典学习算法家族中的另一份成员便是iterative least squares based dictionary learning algorithms(ILS-DLA)。文章组织结构跟随其关于ILS-DLA论文的结构编排。文章仅仅是学习笔记,不适合当做学习入门文章,感兴趣的可以看看。如有理解错误,欢迎批评指正。
2 背景
经典的信号表示中,用于表示信号向量x的扩展系数(这里的扩展系数应该是稀疏系数向量)可以由y=Tx得到,而信号x可以由进行重构。这就需要一个可逆变换矩阵T。
传统的完备字典表示:
N维信号xl在N维的V空间上可以被线性地表示为(此处B是N*N的):
其中wl是系数,最终写成矩阵后,B在前面,wl作为列向量写在后面。这种扩展表示是唯一的,因为B是V的正交基。这里使用的expansion扩展,其实就是将一个向量用多个正交基线性组合,如果线性权值的个数<s,则是s稀疏表示。
过完备字典(overcomplete dictionary)表示:
字典F是N*K的,也就是列的个数大于行,F 是完备的但是是冗余的。因此F不是基,而是过完备字典。
此时,系数向量Wl的长度K是大于原始信号X的长度N的。图中描述的是多个序列Xl展开的情景,只用关注被细化的那一组即可。中间的字典F都是相同的。
重叠字典(overlapping dictionaries):
重叠字典是NP*K矩阵,可以看出,Xl的线性表示,不仅取决于与之对应的Wl,还与上面和下面的系数有关,也就是Wl-1和Wl+1等。这种结构是将Xl的所有列首尾相接,整合成一个列向量,而字典Fn的维数是P倍的N,那么字典整合成一个大字典的时候,上下就会有重叠。举个不恰当的例子,
如此一来,复杂度就加大了,在信号重构时,就需要多个权重系数向量同时参与一个信号的重构。
英文中使用block oriented指定一组基,也就是完备字典。而使用frame表示过完备字典。
使用过完备字典时,信号的表示将不唯一。因为有N个方程,但是有K个变量,K>N。但是原始信号就N维,而用K个线性组个表示必定是冗余的。因此,高效的稀疏表示后,大部分系数应该是0。
找到最优稀疏表示是NP难问题,因此为了稀疏逼近原始信号,使用MP相关算法、基寻踪和FOCUSS类的算法,去从冗余字典中寻找列向量。
之前的实验证明,(Order Recursive Matching Pursuit)ORMP顺序递归匹配追踪算法是一种逼近能力和计算复杂度都能兼顾的算法。
r是residual的首字母,代表残差。[rɪˈzɪdʒuəl]
BMP算法的步骤如下:
OMP算法和BMP算法的区别在于系数在每次迭代中都重新计算,残差与之前已经选定的所有相量都正交。这里的BMP应该就是最原始的MP算法,也就是残差至于本次选到的这个向量正交。而ORMP不同的是,在每次迭代中,所有没有选到的向量被相对于选择过的向量正交化。部分搜索算法(partial search algorithm)是ORMP的扩展。ORMP always selects the best dictionary vector at each stage。
probabilistic reasoning概率推理
approximate maximum likelihood近似最大似然AML
In [39] we showed that an algorithm resulting from an AMLestimation of an unknown but deterministic dictionary
is identical with the block based dictionary learning algorithm, referred to as the method of optimal directions (MOD)
in [20,21,39] under the assumption of Gaussian noise.
在[39]中,我们证明了由未知但确定性字典的AML估计得到的算法。与基于块的字典学习算法相同,称为最优方向法(MOD)
在[20,21,39 ]高斯噪声假设下。
稀疏表示和矢量量化算法之间存在紧密联系。vector quantization
在变换编码(transform coding)中,代指稀疏编码,所有的字典向量都参与运算,只是一些系数是零。In transform coding all the dictionary vectors (basis vectors) are used in representing a signal vector, but some of them are often quantized to zero in applications, and the signal vector is a linear combination of these vectors multiplied by coefficients which may take any value.基本的VQ不再介绍了,其扩展的MSVQ:In multistage vector quantization (MSVQ) the approximated signal vector is built as a linear combination of several dictionary vectors. In MSVQ the vectors are usually selected from different dictionaries, but assuming the special case where all the MSVQ dictionaries are identical and split in a shape and a gain codebook, this is almost equivalent to sparse signal representation as presented in the previous section.在MSVQ中,向量经常从不同的字典中选择,但是考虑一种特殊情况,假如所有的字典都一样,并且分成一个形状和一个增益码书,则它几乎与前面所说的信号的稀疏表示完全等价,不同的是MSVQ的系数是从codebook中选出来的,而稀疏编码的系数可以是任意值,然后根据应用进行量化。
ILS-DLA的发展过程与k-means(在《Vector Quantization and Signal Compression》中被称为generalized Lloyd algorithm (GLA) )类似。A VQ learned dictionary uses only one dictionary vector for each approximation, whereas in ILS-DLA a linear combination of several of the dictionary vectors are used and this makes the design process more complicated.也就是说ILS-DLA是相对复杂的,这怎么能作为一个优势呢?
随后就介绍到了大名鼎鼎的K-SVD算法。A new algorithm that can be regarded as a generalization of the k-means algorithm for dictionary learning is theK-SVD algorithm ofAharon et al.初始化一个固定字典和初始化系数,每一次更新字典中的一个向量,每次更新结束,可以进行系数的更新,然后再进入下一次迭代。
The updating is cleverly done by looking only at the collection of training vectors that uses that particular dictionary vector in it’s approximation, minimizing the Frobenius norm of the approximation error by solving for the dictionary vector in question.
这句话好难翻译,直接机器翻译了~通过只关注在其逼近中使用特定字典向量的训练向量的集合,通过求解所讨论的字典向量来最小化近似误差的Frobenius范数,可以巧妙地完成更新。Frobenius范数就是各个矩阵元素的平方和再开平方。最小化是通过SVD完成的,K-SVD就是进行K次更新,完成一次字典的训练更新。如果稀疏表示的系数限定仅有一个非零值,而这个系数必须是1,那么K-SVD算法就退化为GLA(k-means)。
文章又简单提了基于标准正交基的算法,由于字典必须是标准正交基,使得该字典不够灵活,但是这样做的好处是在追踪阶段相对简单,并且另外一个好处是字典具有紧框架。接下来又简单提了MoTIF,很少见到,就不多说了。
3 基于迭代最小二乘法的字典学习算法——ILS-DLA
老外写论文就是这样,从根上介绍,一脉相承,让人不得不信服。整个体系脉络清晰完整。用了近1/3的篇幅介绍之前的工作,终于到重点了。3.1介绍基于无限制块的的ILS-DLA,3.2扩展到基于overlapping dictionaries,也就是第二章介绍的重叠字典。
ILS-DLA旨在训练过完备字典,使得可以更好地稀疏表达特殊信号。Thus, we need representative data in forming a training set.因此,需要构成训练集的代表性数据。训练数据被分成块,这里的块是指信号向量,类似于DCT分解后形成的8*8系数矩阵,然后经过ZIGZAG排序reshape成一列向量。。顺序consecutive编排X中的列向量称为NL*1的列向量。
we synthesize a sparse approximation to x(我们合成了x的稀疏逼近,用表示)。
3.1 针对无限制块(unrestricted block)字典的ILS-DLA