通过阅读《PCANet: A Simple Deep Learning Baseline forImage Classification?》 学习PCANet。这篇论文提出了一种简单的计算轻便,小数据量也和友好的深度学习网络PCANet。由于需要,我对这个网络进行了深入的研究和实现。
一、PCANet介绍
假设有N个大小为m×n 输入图像作为训练集,记作Iii=1N ,并假设补丁大小(2D滤波器大小)在所有阶段都是k1×k2 ,通过输入图像学习获得PCA滤波器。PCANet模型如图所示:
1.1 第一阶段PCA
对于每个图像,在像素层进行k1×k2 的块采样.第i张图像的所有重叠块,即xi,1,xi,2,…,xi,mn∈Rk1k2 ,其中,每个xi,j 表示Ii 的第j个块。然后从每个块中减去块均值,获得Xi=xi,1,xi,2,…,xi,mn ,xi,j 为每个块的均值。将所有输入图像构建相同的矩阵组合在一起,得到:
X=X1,X2,…,XN∈Rk1k2×Nmn
假设第i层的滤波器数量为Li ,最小化重构误差:
minV∈Rk1k2×L1X-VVTXF2,s.t. VVT=IL1
其中,IL1 是大小为L1×L1 的单位矩阵。PCA滤波器表示为:
Wl1=matk1,k2qlXXT∈Rk1k2, l=1,2,…, L1
其中,matk1,k2v 是将v∈Rk1k2 映射到矩阵W∈Rk1k2 的函数,qlXXT 表示 XXT 第l个主特征向量。这些主特征向量可以体现训练块的主要变化。
1.2 第二阶段PCA
几乎重复与第一阶段相同的过程。第一阶段的l个滤波器输出为:
Iil=</