[Paper 学习笔记]PCANet: A Simple Deep Learning Baseline for Image Classification?
一、 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
还没有评论,来说两句吧...