PCANet: A Simple Deep Learning Baseline for Image Classification?(精读)

2023-11-29 17:58

本文主要是介绍PCANet: A Simple Deep Learning Baseline for Image Classification?(精读),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一.文献名字和作者

    PCANet: A Simple Deep Learning Baseline for Image Classification?; Tsung-Han Chan, Kui Jia, Shenghua Gao, Jiwen Lu, Zinan Zeng, and Yi Ma
   

二.阅读时间

    2014年10月10日


三.文献的目的

    文献主要是提出了一个可以用作图像分类的深度学习方面的基线算法PCANet,同时,这个算法在数学上又比较简单,效率也高,方便对深度学习算法进行基本的理论研究。这个算法是非监督的特征提取算法,作者将这个算法提取到的特征与其他人工特征和使用DNN提取的特征进行比较,发现这种简单的特征提取算法的效果能够在比肩state of the art的特征提取算法,包括人工选择特征和使用DNN训练出来的特征。
     作者的目的有两个:1.设计一种简单的深度学习完了能够很方便地用在不同的数据和任务上面;
     2.这个简单的算法可以作为人们使用深度学习网络的参考。


四.文献的贡献点

1.提出了一种简单的非监督深度学习网络--PCANet网络,这个网络是由两个PCA滤波层、一个哈希层和一个局部直方图计算层,并且在此基础上面提出两个变种--RandNet和LDANet;
2.作者做了大量的实验来比较PCANet和其他传统的人工选择特征以及DNN学习到的特征在不同数据库上面的表现,从而得出了使用PCANet也能够达到比肩the state of the art的效果,使用的数据库包括MultiPIE、Extended Yale B、AR Dataset、FERET Dataset、LFW Dataset、MNIST Datasets、CUReT Dataset、CIFAR10。
    

五.作者提出的方法

   作者提出的方法如图1所示,前面两个步骤为PCA滤波,第三个步骤为二值哈希化的过程;第四部是计算局部直方图的过程。

                   图1. PCANet的流程

    对于PCA滤波的过程,作者的做法是将训练集中每一幅图像分成大小为k1*k2的图像块,图像块之间可以进行重叠,然后将图像块转化为一个向量,并将同一幅图像的块对应的向量按列排列成一个矩阵Xi,然后将所有的训练图片得到的形成一个巨大的矩阵X,然后根据PCA的方法,j个特征向量V,然后将每个特征向量转化为一个大小为k1*k2的矩阵,使用这个矩阵来初始化卷积核,然后进行类似于CNN的卷积操作。第二个PCA滤波的过程也是这样的。
    在第二个PCA滤波之后,进行对输出结果进行二值哈希操作,得到L1*L2个二值化图像,然后L1个输入的图像对应的L2个图像中每个位置对应的像素的值作为一个二进制数的一个位,这样就可以将L1*L2幅图片压缩为L1幅图片。然后将每一幅图分成了B个块,对每个块进行直方图计算,然后将每个直方图连接起来成为一个向量,然后将L1幅图像对应的向量连接起来,作为输入图片的特征。这个就是PCANet特征提取方法。

                          图2. PCANet流程图
    从上面的算法流程中可以看出,PCANet的训练过程只是在训练集中进行特征向量计算的过程,并没有包括迭代和优化求解的过程,因此,训练过程很快,而测试过程基本上和CNN的前向过程一样。因此,PCANet与CNN区别最大的地方在于卷积核是直接通过PCA计算得到的,而不是像CNN一样通过迭代的过程得到的。









版权所有,欢迎转载,转载请注明出处,谢谢微笑








这篇关于PCANet: A Simple Deep Learning Baseline for Image Classification?(精读)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/433780

相关文章

vue解决子组件样式覆盖问题scoped deep

《vue解决子组件样式覆盖问题scopeddeep》文章主要介绍了在Vue项目中处理全局样式和局部样式的方法,包括使用scoped属性和深度选择器(/deep/)来覆盖子组件的样式,作者建议所有组件... 目录前言scoped分析deep分析使用总结所有组件必须加scoped父组件覆盖子组件使用deep前言

uva 10014 Simple calculations(数学推导)

直接按照题意来推导最后的结果就行了。 开始的时候只做到了第一个推导,第二次没有继续下去。 代码: #include<stdio.h>int main(){int T, n, i;double a, aa, sum, temp, ans;scanf("%d", &T);while(T--){scanf("%d", &n);scanf("%lf", &first);scanf

lvgl8.3.6 控件垂直布局 label控件在image控件的下方显示

在使用 LVGL 8.3.6 创建一个垂直布局,其中 label 控件位于 image 控件下方,你可以使用 lv_obj_set_flex_flow 来设置布局为垂直,并确保 label 控件在 image 控件后添加。这里是如何步骤性地实现它的一个基本示例: 创建父容器:首先创建一个容器对象,该对象将作为布局的基础。设置容器为垂直布局:使用 lv_obj_set_flex_flow 设置容器

BERT 论文逐段精读【论文精读】

BERT: 近 3 年 NLP 最火 CV: 大数据集上的训练好的 NN 模型,提升 CV 任务的性能 —— ImageNet 的 CNN 模型 NLP: BERT 简化了 NLP 任务的训练,提升了 NLP 任务的性能 BERT 如何站在巨人的肩膀上的?使用了哪些 NLP 已有的技术和思想?哪些是 BERT 的创新? 1标题 + 作者 BERT: Pre-trainin

简单的Q-learning|小明的一维世界(3)

简单的Q-learning|小明的一维世界(1) 简单的Q-learning|小明的一维世界(2) 一维的加速度世界 这个世界,小明只能控制自己的加速度,并且只能对加速度进行如下三种操作:增加1、减少1、或者不变。所以行动空间为: { u 1 = − 1 , u 2 = 0 , u 3 = 1 } \{u_1=-1, u_2=0, u_3=1\} {u1​=−1,u2​=0,u3​=1}

简单的Q-learning|小明的一维世界(2)

上篇介绍了小明的一维世界模型 、Q-learning的状态空间、行动空间、奖励函数、Q-table、Q table更新公式、以及从Q值导出策略的公式等。最后给出最简单的一维位置世界的Q-learning例子,从给出其状态空间、行动空间、以及稠密与稀疏两种奖励函数的设置方式。下面将继续深入,GO! 一维的速度世界 这个世界,小明只能控制自己的速度,并且只能对速度进行如下三种操作:增加1、减

论文精读-Supervised Raw Video Denoising with a Benchmark Dataset on Dynamic Scenes

论文精读-Supervised Raw Video Denoising with a Benchmark Dataset on Dynamic Scenes 优势 1、构建了一个用于监督原始视频去噪的基准数据集。为了多次捕捉瞬间,我们手动为对象s创建运动。在高ISO模式下捕获每一时刻的噪声帧,并通过对多个噪声帧进行平均得到相应的干净帧。 2、有效的原始视频去噪网络(RViDeNet),通过探

天然药物化学史话:“四大光谱”在天然产物结构鉴定中的应用-文献精读46

天然药物化学史话:“四大光谱”在天然产物结构鉴定中的应用,天然产物化学及其生物合成必备基础知识~ 摘要 天然产物化学研究在药物研发中起着非常重要的作用,结构研究又是天然产物化学研究中最重要的工作之一。在天然药物化学史话系列文章的基础上,对在天然产物结构研究中起绝对主导作用的“四大光谱”分析技术,即红外光谱、紫外光谱、质谱、核磁共振波谱在天然产物结构鉴定中的应用历史进行回顾与总结,并对其发展

Deep Ocr

1.圈出内容,文本那里要有内容.然后你保存,并'导出数据集'. 2.找出deep_ocr_recognition_training_workflow.hdev 文件.修改“DatasetFilename := 'Test.hdict'” 310行 write_deep_ocr (DeepOcrHandle, BestModelDeepOCRFilename) 3.推理test.hdev

使用django-simple-captcha遇到的坑

使用django-simple-captcha遇到的坑 一站点gongshare.com在做注册功能时验证码采用的django-simple-captcha,因为笔者开发环境采用的Windows 64bit系统,结果安装使用的时候接二连三遇到好几个坑。 django-simple-captcha需要依赖django1.3+、PIL1.1.7+或者Pillow2.0+,根据文档安装后开始使用时,