前言:昨天和大家聊了聊卷积神经网络,今天给大家带来一篇论文:pca+cnn=pcanet.现在就让我带领大家来了解这篇文章吧。

论文:PCANet:A Simple Deep Learning Baseline for Image Classification

论文地址:https://core.ac.uk/download/pdf/25018742.pdf

论文代码:https://github.com/Ldpe2G/PCANet

1 摘要

这部分我就不说了,都在我的上一篇博客说了:http://www.cnblogs.com/xiaohuahua108/p/7029128.html就是分析分析传统的特征抽取方法没有卷积神经网络方法抽取特征方便,快捷,准确率高什么的。其实说白了就是用PCA去学习卷积神经网络的卷积核,当然后面用二值化和哈希去重置像素点。PCANET特征提取流程图:

2 PCAnet的网络结构

假设我们现在有N个大小为mxn的训练样本,设置每一个层次的滤波器大小为k1xk2.

下图是一个pcanet的详细图:

2.1 第一层

例如下面的一副图像,我们对每一个像素点进行一个k1xk2的块采样,既然每一个像素点都要被采样到,那么就是mxn个,得到第i 个训练样本就为:,其中,至于为什么卷积之后是这样呢,你拿着卡片这样一个一个沿着像素点平移,得到的也是这个。

然后就是必不可少的去中心化,,那么整个训练集就为,

假设第i层的滤波器数量是,PCA的目的就是寻找一些列的标准正交矩阵来最小化重构误差:

那么就是解决主成分分析,也就是矩阵X的协方差矩阵的前n个特征向量,因此对应的PCA滤波器如下:

2第二层

第二层基本与第一次相同。首先计算第一次PCA层的映射输出,为:

当然这是要在得到的图像上进行补零操作,以保持和原图像一样的大小。

最后我们可以得到第二层PCA的滤波器,然后对第一层得到的图像进行卷积操作,接着进行二值化。

3输出层

对第二层得到图像进行二值化哈希编码,编码位数与第二层的滤波器个数相同。

公式为:

把原来的图像映射成,0-255,此处一般设置成8,函数H 是一个阶跃函数。,表示第二层的滤波器个数。

对于第一层的每个输出矩阵,将其分为B块,计算统计每个块的直方图信息,然后在将各个块的直方图特征进行级联,最终得到块扩展直方图特征:

在进行直方图分块时同样可以采用重叠分块和非重叠分块模式,需要视情况而定。实验表明非重叠分块适用于人脸识别,重叠分块模式使用于手写数字识别、文本识别、目标识别等等。此外直方图特征还为PCANet提取到的特征添加了一些变换上的稳定性(例如尺度不变形)。

4 实验结果

3 总结

我认为这篇文章最好的点就是在卷积层用了PCA,这样早卷积的时候就有了一定的目的性,从而提高了分类效率。创新性很高。

卷积神经网络的变种: PCANet的更多相关文章

  1. Deep learning with Theano 官方中文教程(翻译)(四)—— 卷积神经网络(CNN)

    供大家相互交流和学习,本人水平有限,若有各种大小错误,还请巨牛大牛小牛微牛们立马拍砖,这样才能共同进步!若引用译文请注明出处http://www.cnblogs.com/charleshuang/. ...

  2. 神经网络6_CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)概念区分理解

    sklearn实战-乳腺癌细胞数据挖掘(博客主亲自录制视频教程,QQ:231469242) https://study.163.com/course/introduction.htm?courseId ...

  3. 从LeNet到SENet——卷积神经网络回顾

    从LeNet到SENet——卷积神经网络回顾 从 1998 年经典的 LeNet,到 2012 年历史性的 AlexNet,之后深度学习进入了蓬勃发展阶段,百花齐放,大放异彩,出现了各式各样的不同网络 ...

  4. 基于MNIST数据的卷积神经网络CNN

    基于tensorflow使用CNN识别MNIST 参数数量:第一个卷积层5x5x1x32=800个参数,第二个卷积层5x5x32x64=51200个参数,第三个全连接层7x7x64x1024=3211 ...

  5. 卷积神经网络(CNN)基础介绍

    本文是对卷积神经网络的基础进行介绍,主要内容包含卷积神经网络概念.卷积神经网络结构.卷积神经网络求解.卷积神经网络LeNet-5结构分析.卷积神经网络注意事项. 一.卷积神经网络概念 上世纪60年代. ...

  6. SIGAI深度学习第七集 卷积神经网络1

    讲授卷积神经网络核心思想.卷积层.池化层.全连接层.网络的训练.反向传播算法.随机梯度下降法.AdaGrad算法.RMSProp算法.AdaDelta算法.Adam算法.迁移学习和fine tune等 ...

  7. 斯坦福NLP课程 | 第11讲 - NLP中的卷积神经网络

    作者:韩信子@ShowMeAI,路遥@ShowMeAI,奇异果@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/36 本文地址:http://www. ...

  8. 卷积神经网络提取特征并用于SVM

    模式识别课程的一次作业.其目标是对UCI的手写数字数据集进行识别,样本数量大约是1600个.图片大小为16x16.要求必须使用SVM作为二分类的分类器. 本文重点是如何使用卷积神经网络(CNN)来提取 ...

  9. tensorflow学习笔记五:mnist实例--卷积神经网络(CNN)

    mnist的卷积神经网络例子和上一篇博文中的神经网络例子大部分是相同的.但是CNN层数要多一些,网络模型需要自己来构建. 程序比较复杂,我就分成几个部分来叙述. 首先,下载并加载数据: import ...

随机推荐

  1. 关于使用mybatis的几点总结

    mybatis的几点总结 1.关于resultType和resultMap的使用 查询结果集统一采用resultType,不要采用resultMap,因为resultMap需要写许多的表字段和实体类的 ...

  2. C#1所搭建的核心基础

    一,委托 委托封装了包含特殊返回类型和一组参数的行为,类似包含单一方法接口. 委托类型声明中所描述的类型签名决定了哪个方法可以用于创建委托实例,同时决定了调用的签名:委托类型实际上只是参数类型的一个列 ...

  3. 蓝桥杯-括号问题-java

    /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: ...

  4. 安装Vmware 以及 Vmware 中安装Ubuntu 以及其中问题?

    在vmware中安装ubuntu 过程中 安装窗口太小,无法继续下一步? 按住alt键,用鼠标拖动linux的安装窗体,向上移动就能看到下面的确定按钮. 如何安装Vmware-tools? 1.VM菜 ...

  5. 将 Eclipse 的配色改为黑底白字

    1.先到 eclipsecolorthemes下载一个主题. 2.Eclipse File-->Import 3.Import视窗内选择 General-->Preferences 4.选 ...

  6. 解决xmapp中Apache端口号占用问题

    [原]解决 "安装xmapp后Apache不能正常启动" 问题 小伙伴们安装xmapp后发现Apache不能正常开启,下面给出了不同情况的解决办法,可以分为以下几种情况分析问题: ...

  7. 白话C#语法新特性之元组

    1.元组(Tuples) 元组(Tuple)在4.0 的时候就有了,但元组也有些缺点,如: 1)Tuple 会影响代码的可读性,因为它的属性名都是:Item1,Item2.. . 2)Tuple 还不 ...

  8. flume集群日志收集

    一.Flume简介 Flume是一个分布式的.高可用的海量日志收集.聚合和传输日志收集系统,支持在日志系统中定制各类数据发送方(如:Kafka,HDFS等),便于收集数据.其核心为agent,agen ...

  9. javascript之深入剖析this

    this的重要性不言而喻,比如面试题经常考到,其次,如果彻底理解了this,那么对理解框架源码及编写高质量代码都有很大的帮助.本文就是要深入剖析this的几种情况,理解了原理,以后妈妈再也不用担心你的 ...

  10. Combine Two Tables

    Table: Person +-------------+---------+ | Column Name | Type | +-------------+---------+ | PersonId ...