经典算法之SRC分类器
2016-01-20 11:30
197 查看
自从05、06年开始,稀疏表示开始成为研究的热点。自从陶哲轩和他的小伙伴们解决了稀疏表示的理论问题,压缩感知或Sparse Representation成为学术界的研究热点。2008年,有Wright在PAMI上发表了一篇Sparse Representation based Classifier(SRC)的文章《Robust Face Recognition via Sparse Representation》。该文章从训练样本中抽取一定的样本构建词典,然后使用词典来表示测试样本,选取对应最小残差值的类作为预测的结果。下面简单介绍该算法的过程。
若Xi表示第i类的训练样本,大小为d*li,d为特征维数,li为样本数量。将所有类别(K类)的训练样本组合成一个矩阵为D=[X1 ...
Xi ... XK],大小为d*l。对于任意一个测试样本,可以表示成如下的线性方式:
y = Da (1)
根据线性代数的知识,已知D和y,系数a可以方便的求解出来。但是,一般情况下,l 远大于d。因此,公式(1)没有唯一的解。为了得到唯一的解,需要添加一个约束条件,即系数 a 尽可能的稀疏。因此公式(1)演变为如下的最优问题
y = Da s.t. min ||a|| 1
(2)
上述的问题等同于如下问题:
min ||a|| 1 s.t.y = Da (3)
该问题属于一种线性约束的最优化问题。已经有很多人研究了如何求解该问题,常用的方法包括梯度法,牛顿法等,这里不一一介绍了。
求解得到合适的最优系数a*后,利用残差来确定相应的类别,方法如下:
y* = arg mini ei(y), ei(y)
= ||y - Xiai*||2
(4)
通过公式(4)求解对应的类别。下面给出一个测试样本的求解结果。
图中左边图片为一个测试样本;中间为根据公式(3)求解出的稀疏系数a*;最右边是通过公式(4)计算的残差,可以看出第一个类别的残差最小,因此对应的类别为第1类。
若Xi表示第i类的训练样本,大小为d*li,d为特征维数,li为样本数量。将所有类别(K类)的训练样本组合成一个矩阵为D=[X1 ...
Xi ... XK],大小为d*l。对于任意一个测试样本,可以表示成如下的线性方式:
y = Da (1)
根据线性代数的知识,已知D和y,系数a可以方便的求解出来。但是,一般情况下,l 远大于d。因此,公式(1)没有唯一的解。为了得到唯一的解,需要添加一个约束条件,即系数 a 尽可能的稀疏。因此公式(1)演变为如下的最优问题
y = Da s.t. min ||a|| 1
(2)
上述的问题等同于如下问题:
min ||a|| 1 s.t.y = Da (3)
该问题属于一种线性约束的最优化问题。已经有很多人研究了如何求解该问题,常用的方法包括梯度法,牛顿法等,这里不一一介绍了。
求解得到合适的最优系数a*后,利用残差来确定相应的类别,方法如下:
y* = arg mini ei(y), ei(y)
= ||y - Xiai*||2
(4)
通过公式(4)求解对应的类别。下面给出一个测试样本的求解结果。
图中左边图片为一个测试样本;中间为根据公式(3)求解出的稀疏系数a*;最右边是通过公式(4)计算的残差,可以看出第一个类别的残差最小,因此对应的类别为第1类。
相关文章推荐
- TLD取经之路(1)--VS2008,MATLB2010B与OPENCV2.2
- TLD取经之路(2)-- 初窥门径:运行DEMO
- TLD取经之路(3)-- 始于足下
- [转载]别人总结的OpenTLD资源,MARK
- CV创业前景一点看法
- CV codes代码分类整理合集
- SVM入门(一)至(三)
- SVM入门(四)线性分类器的求解——问题的描述Part1
- SVM入门(六)线性分类器的求解——问题的转化,直观角度
- SVM入门(九)松弛变量(续)
- SVM入门(十)将SVM用于多类分类(完)
- SVM应用之libsvm
- 线性可分Linear separability
- android JNI解码内存中的JPEG图片
- CV方面的各种大神
- CV方面的一些代码
- python OpenCV基础(一)
- LBP算子介绍 (by ChenLee_1)
- Haar-like特征
- haar特征