PCANet: A Simple Deep Learning Baseline for Image Classification?

PCANet是一种简化深度学习过程的网络,通过PCA计算卷积核,避免复杂调参。由级联PCA、哈希编码及分块直方图构成。论文对比分析了其变体RandNet和LDANet。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       PCANet是一个简单但是效果很棒的网络,避免了深度学习中调参以及参数学习的过程和麻烦。该网络与CNN相比最大的地方在于卷积核是直接通过PCA计算得到的,而不是像CNN一样通过反馈迭代得到的。它的组成分成三个部分1)级联主成分分析(PCA); 2)二进制哈希编码; 3)分块直方图。为了进行比较论文还研究了PCANet的两个简单变体:1)RandNet和2)LDANet。它们与PCANet具有相同的拓扑结构,但它们的级联滤波器可以随机选择,也可以从线性判别分析中学习。

                          

下图为两层PCANet网络具体框架

      

  1. 第一层(PCA)

    针对i个图像中每一个像素点选取大小为k1*k2的邻域,对每个patch进行去中心化得到                                                                                                                                

    综合i个图像得到                                                                                                                                                                                                                                

    那么重构误差可以写为                                                                                                                                                                                                        

    也相当于取的前l个特征值所对应的特征向量                                                                                                                                                        

    主要的特征向量捕获所有移除平均值的训练窗口的变化。

  2. 第二层(PCA)

    让N张原图与第一阶段得到的卷积核卷积得到                                                                                                                                                                                                                                   第一阶段卷积得到N*L1张图片,对这些图片进行与第一阶段相同的过程

    计算第二层卷积核,                                                                                                                                                                                                                 与第一阶段得到的图像进行卷积得到N*L1*L2张图片

  3. 输出层(哈希编码和分块直方图)

    第一阶段得到的N*L1张中的每一张图片对应阶段二得到的L2张图,我们要将这L2张图转换为一张图就要进行下面的操作。对这L2张图进行哈希编码,大于0的值设置为1,其余值设置为0。接下来针对阶段一中每张图片中的每一个像素对这L2张图的像素进行编码                                                                                                                                                                                                                  

    那么得到的每一个像素值在之间。这就得到了N*L1张图。

    接下来对每L1张图片做histBlock到vector的变换,对每一个张图像中每个像素点为中心取m*n大小histBlock,原图有k个histBlock,将histBlock变换为vector,得到nm*k的矩阵。对这个nm*k的矩阵做直方图统计,因为选了个区间,所以得到矩阵大小为*k。最后将这个矩阵转化为L1*k*维的vector,这样就完成了一张图片的PCANet的特征提取。

  4. 注意事项

    ①PCANet的超参数包括滤波器大小k1,k2,每层中的滤波器的数量L1,L2,以及输出层中的局部直方图的块大小m*n。 PCA滤波器组要求k1k2≥L1,L2。

    ②实验常选取设置L1 = L2 = 8,这是从具有8个方向的Gabor滤波器的共同设置中得到启发

    ③经验证明,两阶段PCANet通常足以实现良好的性能,而更深层的体系结构并不一定能带来进一步的改进。此外,直方图选取较大块在提取的特征中提供了更大的平移不变性。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值