稀疏编码系列:

---------------------------------------------------------------------------

       

        之前几次讲到了ScSPM,以及改进的LLC。SPM是不带结构性的稀疏编码,而LLC是考虑了结构性的稀疏编码。这次,我想更加全面地介绍一些结构性稀 疏的内容。文章的最后会给出几个典型的例子,附加源代码(matlab版本的)和引文的pdf,供大家实验。

        Data representation(不仅仅局限于图像)往往基于如下最小化问题:

 稀疏模型与结构性稀疏模型        (1)

       其中X是观测到的数据的特征矩阵稀疏模型与结构性稀疏模型,D是字典稀疏模型与结构性稀疏模型,Z是字典上的描述稀疏模型与结构性稀疏模型。约束项稀疏模型与结构性稀疏模型稀疏模型与结构性稀疏模型使得字典dictionary和描述code具有一定结构性。当D给定时,确定Z的过程叫做representation persuit。当D和Z同时未知时,确定D就是dictionary learning的问题。

      稀疏表示,通常对Z做约束,使得Z中的每一列只能取少量的非0系数。其中最简单的约束项就是

稀疏模型与结构性稀疏模型       (2)

        这时问题就变成了LASSO。K-means + Hard-VQ则是一种更严格的稀疏编码,相比L1-norm的约束,Hard-VQ引入了严重的重建误差,所以效果会比较差。这是介绍ScSPM和LLC时候的内容了,这里简单重复一下。

        LASSO被LLC改进的一个很重要原因,就是缺少smooth,其潜在的原因便是Z中的非0元素缺少结构信息(unstructured sparse coding)。所以,后面很多论文的工作就是提出带结构性的稀疏模型。我们将字典D中的每一个码字称为dictionary atoms。令稀疏模型与结构性稀疏模型表示为D中一些码字的集合,并将所有这类集合定义为G,即稀疏模型与结构性稀疏模型。G中每一个group可以overlap也可以不overlap(这就对应于不同的group sparse model)。而约束项可以表示为:

稀疏模型与结构性稀疏模型      (3)

        其中的 子向量(只取了group中的元素)。可以看出,对每一个group内部,利用了L2-norm。由于L2-norm本身不小于0,故group之间其实 是L1-norm。这样的约束造成了group选择特性,即group成组地取0或不取0。这样仍然不够完美,因为group内部的各个atom不能满足 稀疏性。于是就有方法提出,在(3)式之后再加(2)式作为约束,以保证group内的稀疏性,即:

 

   (4)

 

可以看出当稀疏模型与结构性稀疏模型且各,(3)就退化成了lasso。

        关于常见的一些结构性稀疏,列举如下:

        Hierarchical Sparse Coding[code | read more],认为非0的系数之间存在层次结构,即group与group之间要么不overlap,如果overlap则一个group必会包含另一个group。一种典型的层次结构就是tree结构

        Overlapping group sparse coding[code |read more],则将约束relax,即允许group之间相互overlap。这个模型据说在genetic data的描述中十分有效,大家不妨试试

        Graph-Guided Sparse Coding[code |read more],建立一个graph,graph中各结点是dictionary中的各个atom。Graph-Guided不同于以上的group sparse coding,它可以加入更加复杂的结构信息。它的形式是:

  (5)

        不同就不同在是可以做很多文章的,比如考虑atom与atom之间在语义层次上的关联、结构层次上的关联,等等。

分类:

技术点:

相关文章: