您的位置:首页 > 编程语言

【self-taught learning】学习论文以及代用代码

2013-12-26 16:40 309 查看

【self-taught learning】快速稀疏编码算法

Self-taught learning是Honglak Lee等开发的一个matlab框架,能够实现他们在论文Self-taught Learning Transfer Learningfrom Unlabeled DataEfficient sparse coding algorithms中提出的快速实现图像稀疏编码的算法。

先看第一篇论文《Self-taught Learning:Transfer Learning from Unlabeled Data》

主要思想:

在监督分类算法的数据中,加入部分unlabel的数据,未标数据不一定和训练集数据从属同一类类别,在建模过程中,首先根据未标数据训练出一组基,然后对训练集的数据用该空间的基表示,最后使用SVM或其他分类算法进行分类。

PS.

这种方法不同于semi-supervised learning,后者需要加入的未标数据,必须跟训练集具有相同类型的类别,例如想要对大象和犀牛的图像集分类,就必须加入大象和犀牛的未标图像,而self-taught learning可以加入任意图像比如自然景色等。

加入未标数据是为了使图像的特征变得稀疏,能够加速训练的计算速度。

符号约定:



算法介绍

第一步:根据未标数据学习一组表示图像的基。

对于未标数据,提出如下的优化公式:



优化的目标是基向量组b和稀疏系数a。k是输入数据的个数,s是新空间的维度,n是原始输入空间的维度。所以,b是s*n的矩阵,a是k*s的矩阵。上面的公式有两项需要优化,左边项的目的是用一组基来表示输入数据,并且使得误差最小,右边项引入了L1规则作为惩罚项,使得学习出来的系数a大部分是零。

保持a不变求b,或者保持b不变求a,都是凸优化问题,可以用梯度下降等方法求得。

这里补充一下L1/L2规则化。(在第二篇论文里提到过)

常用的规则化函数有下面三种:



第一种是L1规则化,即1范数。第二种是加上参数的L1规则化。第三种是log规则化。前两种作为稀疏函数求解都是凸优化的问题,所以比较常用,而且L1规则化通常用于产生稀疏,对不相关特征也有很好的鲁棒性。

第二步:根据上步的基,表示已标数据。

对每个已标数据,根据第一步中得到的一组基,通过优化下面的公式得到其稀疏系数a:



这就变成了L1规则化最小二乘问题,可以优化出稀疏向量来表示输入。

第三步:将得到的数据特征输入分类器进行分类。

将上步得到的训练数据的特征输入分类器(例如SVM)中进行分类。

完整算法伪代码:



论文中还涉及到了与其他算法(PCA)的对比,以及实验,这里略过不提。

再看第二篇论文《Efficient sparse coding algorithms》

有了上面的基础,如何快速稀疏编码就会更容易理解,大体思路是一样的,不同之处在于优化公式有所改变,如下:



生成模型的误差服从(mean=0, cov=σ2I)的高斯分布,上式用矩阵表示如下:



当B固定求S,或者S固定求B的时候,都是凸优化问题。在这篇论文里,交替的求B和S(保持另一个固定)。当学习B时,问题变成了最小二乘优化问题,解决方法有QCQP、梯度下降,问题是QCQP求解速度慢,梯度下降收敛慢,论文提出使用“Lagrange dual”求解。当学习S时,问题变成了规则化最小二乘问题,论文里使用“generic QP”方法解决。

这篇论文我还没有看完,现在存在这样的问题:

1、我还不太明白最小二乘、规则化最小二乘是啥意思。

2、Lagrange dual方法还没看具体是怎样推导的。

3、generic QP也没看怎么推导的。

Matlab代码的使用方法

作者提供了self-taught learning框架的matlab代码,下载

使用方法:

1. download IMAGES.mat from http://redwood.berkeley.edu/bruno/sparsenet/

2. copy IMAGES.mat to ./data directory

3. move to ./code

4. run matlab and execute:

"demo_fast_sc(1)": epsilon-L1 sparsity penalty

"demo_fast_sc(2)": L1 sparsity penalty

Note: You can apply sparse coding to any type of general data. See sparse_coding.m for details.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: