卷积神经网络的变种: PCANet
前言:昨天和大家聊了聊卷积神经网络,今天给大家带来一篇论文: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的更多相关文章
- Deep learning with Theano 官方中文教程(翻译)(四)—— 卷积神经网络(CNN)
供大家相互交流和学习,本人水平有限,若有各种大小错误,还请巨牛大牛小牛微牛们立马拍砖,这样才能共同进步!若引用译文请注明出处http://www.cnblogs.com/charleshuang/. ...
- 神经网络6_CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)概念区分理解
sklearn实战-乳腺癌细胞数据挖掘(博客主亲自录制视频教程,QQ:231469242) https://study.163.com/course/introduction.htm?courseId ...
- 从LeNet到SENet——卷积神经网络回顾
从LeNet到SENet——卷积神经网络回顾 从 1998 年经典的 LeNet,到 2012 年历史性的 AlexNet,之后深度学习进入了蓬勃发展阶段,百花齐放,大放异彩,出现了各式各样的不同网络 ...
- 基于MNIST数据的卷积神经网络CNN
基于tensorflow使用CNN识别MNIST 参数数量:第一个卷积层5x5x1x32=800个参数,第二个卷积层5x5x32x64=51200个参数,第三个全连接层7x7x64x1024=3211 ...
- 卷积神经网络(CNN)基础介绍
本文是对卷积神经网络的基础进行介绍,主要内容包含卷积神经网络概念.卷积神经网络结构.卷积神经网络求解.卷积神经网络LeNet-5结构分析.卷积神经网络注意事项. 一.卷积神经网络概念 上世纪60年代. ...
- SIGAI深度学习第七集 卷积神经网络1
讲授卷积神经网络核心思想.卷积层.池化层.全连接层.网络的训练.反向传播算法.随机梯度下降法.AdaGrad算法.RMSProp算法.AdaDelta算法.Adam算法.迁移学习和fine tune等 ...
- 斯坦福NLP课程 | 第11讲 - NLP中的卷积神经网络
作者:韩信子@ShowMeAI,路遥@ShowMeAI,奇异果@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/36 本文地址:http://www. ...
- 卷积神经网络提取特征并用于SVM
模式识别课程的一次作业.其目标是对UCI的手写数字数据集进行识别,样本数量大约是1600个.图片大小为16x16.要求必须使用SVM作为二分类的分类器. 本文重点是如何使用卷积神经网络(CNN)来提取 ...
- tensorflow学习笔记五:mnist实例--卷积神经网络(CNN)
mnist的卷积神经网络例子和上一篇博文中的神经网络例子大部分是相同的.但是CNN层数要多一些,网络模型需要自己来构建. 程序比较复杂,我就分成几个部分来叙述. 首先,下载并加载数据: import ...
随机推荐
- eclipse code style template
<?xml version="1.0" encoding="UTF-8" standalone="no"?><templa ...
- JQuery实现通过点击标题切换字体
这个主要通过判断被点击的元素的子元素中是否包含了b元素来进行字体的切换,其中wrapInner函数是为了在$author元素的内部添加b标签. 切换回正常字体是通过将内容转化为纯文本形式,再替换元素内 ...
- 【翻译】FreeMarker——入门
原文传送门 1. Template + data-model = output data-model是一个树状模型,通常是一个java对象. 2.data-model 入门 hashes(散列):目录 ...
- hive集成sentry
1.安装配置sentry 详细步骤见上一篇安装配置sentry 2.配置hive 2.1 Hive-server2集成Sentry 在 /etc/hive/conf/hive-site.xml中添加: ...
- 基于Spring的轻量级工作流框架
项目地址 码云:https://git.oschina.net/null_584_3382/business-flow-parent github:https://github.com/Athlizo ...
- Git总结笔记1-搭建和使用30条简明笔记
1.环境搭建: Linux:安装git安装包(yum install -y git) Windows:到官网下载安装包 安装完成后配置如下用户名和邮箱: git config --global use ...
- Spring 日期时间处理
1 Spring自身的支持 1.1 factory-bean <bean id="dateFormat" class="java.text.SimpleDateFo ...
- zepto全选按钮之全选会根据按钮是否被全部选中更改状态
在做手机端二次开发购物车的时候,发现zepto全选,没找到,或者功能不是自己想要的 后来做好,分享给需要的人 //全选或多选处理 var CheckAll = $('#items_check ...
- 加盟全景-加盟VR虚拟现实-全景智慧城市
作为一个技术整合型产业,VR行业的硬件厂商几乎没有任何技术基础,很多国产虚拟现实VR创业公司基本都是和几家固定的上游零部件提供商合作,全行业都在等待高通骁龙芯片的升级,这和手机行业有几分相似.去年3月 ...
- Spring切面编程步骤
什么是面向切面编程 面向对象的编程主要注重核心业务,而面向切面编程主要关注一些不是核心的业务,但又是必须的辅助功能,比如一个完整的系统中,记录平时系统运行时抛出的异常,需要我们去记录,以便我们对系统尽 ...