监督型字典学习

    字典分两种,一种是隐性字典,implicit dictionary,这种主要是由它们的算法表现出来的,而不是矩阵结构,比如wavelet,curvelet,contourlet,等等。另一种是通过机器学习来从样本中获取字典,这种字典表现为一种显性矩阵,explicit matrix,而算法是用来适应矩阵的,比如PCA,GPCA,MOD,K-SVD等等,这种字典的好处在于比前一种灵活,表现也好,坏处就是耗费时间和运算资源,另外复杂的约束限制了字典的大小以及需要处理的信号的维度(所以论文提出的这个算法最后用3D图像去噪来表现优越性)。

    本文将介绍一种典型的字典学习及其对信号的表示。

1.经典字典学习算法


        

        L1 penalty yields a sparse solution,very few non-zero coefficients  

2.数据集对应的字典及其对信号的表示形式

下图展示一个手写字体的数据集,和用某种算法学习到的字典:

监督型字典学习_第1张图片

下图展示如何用学习到的字典D和系数向量a来表示信号x:

一个数据集学到的字典如下图:

监督型字典学习_第2张图片

该数据集中的一个信号x,可以用D与a的乘积,因为a是稀疏的(大部分数据为0),因而只用到字典中的少数元素就可以表示信号x。如图:


 仅仅用到字典中的三个元素就可以近似表示信号x,这对之后对信号的处理,如分类,都可以减少计算量,提高效率。

总结

            这里只是形象的介绍下字典学习,并未对相关算法和数学优化展开讨论。

你可能感兴趣的:(算法,机器学习,Dictionary)