您的位置:首页 > 其它

[Paper 学习笔记]PCANet: A Simple Deep Learning Baseline for Image Classification?

2016-06-28 13:39 393 查看

一、 PCANet简介

一种用于图像分类的深度学习网络,用于提取图像中的特征。主要由级联的PCA filters、binary hashing和块直方图构成。相比于RandNet和LDANet,性能更佳,可适用多个数据集,结构和参数设置简单。

二、PCANet结构

1.结构图

如下图所示:



N个m×n大小的训练图,所有层中的patch尺寸都是k1×k2,只有PCA filters需要学习输入的图像。

2.First stage

每张图划分成(m-k1+1)(n-k2+1)个patch,去平均值得到如下输入矩阵:



为了使复原误差最小:



(以上过程相当与计算输入所用图像的协方差)

将矩阵

的特征值从大到小排列,取前L1个特征向量作为该层提取到的图像特征:




3.Second stage

将上一层提取到的特征与补零对其后的输入矩阵做卷积


l=1,2,3…L1

去平均值每块化为向量得到第二层的输入矩阵


(输入矩阵的大小是上一层的L1倍)

类似地获得第二层的特征向量:



因此:第二层的输出特征为L1*L2个


重复上述步骤可建立更多级的结构。

4.Output stage

将上一层的输出特征进行二值化:


(H(.)表示>0=1,其他取0)

这里假设上一层的滤波器的个数为L2,给每个滤波器的输出进行量化并设置权重组合相加:



因此,每个像素的取值范围为[0,2^L2-1].

对每个Block统计取值生成直方图并化成矢量:


则最后的输出为


Block可根据实际情况选择是否重叠,通常人脸识别选择不重叠,而手写体、目标识别、纹理判别选择重叠。

5.计算复杂度



三、参数选择

PCANet的模型参数包括:

PCA filter的阶数以及大小k1,k2,

在每一阶的filter的数量L1L2

输出层的局部直方图的块尺寸。

TIPS:

PCA filter组要求k1k2>L1,L2。

在实验中,可以像Gabor滤波器设置八个方向,固定L1=L2=8,不过调节L1L2值可能会有小小改善性能。

一般两阶PCANet足够有好的表现性能,设置更多阶数对性能并没有显著的提高。

局部直方图更大尺寸的block使用提取畸变特征。

四、PCANet的变体:RandNet、LDANet

1.RandNet

在每一阶中代替PCA filters 为相同大小的随机filters,元素高斯分布。

2.LDANet

用于分类:多层线性判别分析。

搭建方法:搭建方法:将N个训练图像分为C个类,Sc为每个图像的类标,类信息与去平均化的patch组合成矩阵,由下式计算类内平均和类内变化:



其中:



patch 的类间变化由下式定义



LDA的思想:



五、实验

论文对人脸识别(Recognition)、人脸认证(Verification)、手写体识别、纹理判别、目标识别分别用PCANet RandNet LDANet进行实验,同时对它们分析比较,把提取出的特征用libSVM进行训练和预测,验证了PCANet的可行性。

六、结论

PCANet不需要调节参数和解决数值优化问题。

网络的建立只需要一个级联映射图和一个非线性输出阶。

PCANet提取分类信息更为实用。

PCANet可为更复杂的深度学习网络结构提供一个有价值的baseline。便于后续添加或更改相应的部分建立更有效的学习网络。

Reference

http://yima.csl.illinois.edu/psfile/PCANet.pdf
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息