[CLPR] 卷积神经网络的结构
本文翻译自: http://www.codeproject.com/Articles/16650/Neural-Network-for-Recognition-of-Handwritten-Digi
正如前文所述, 程序并未实现一个通用神经网络, 也并非一个神经网络开发环境. 它其实是一个非常特殊的网络, 一个5层卷积神经网络. 输入层接收 29x29 的灰度手写数字图片, 输出层由10个神经元组成, 判断结果对应的神经元输出1, 其余输出-1(理想).
CNN是基于"权值共享"的NN. 主要思想是使用一个小的核窗, 它在前一层的神经元上移动. 在本实现中, 我使用的是5x5的尺寸. 核中的每个元素都有一个独立于其他元素的权值. 所以共有25个权值(外加1个偏置). 这个核被前一层的所有神经元共享.
图例和说明.
下图是CNN的一个图示:

输入层(#0) 是灰度图像. MNIST图像库中的图像是28x28, 但基于Simard在"Best Practices for Convolutional Neural Networks Applied to Visual Document Analysis," 中的描述, 图片尺寸被放大为29x29. 所以输入层共有841个神经元.
层#1 是一个卷积层, 拥有6个特征图, 每个特征图的尺寸为13x13 像素/神经元. 特征图中的每个神经元都是一个输入层的5x5的卷积核, 但输入层中的像素每隔一个就被跳过. 结果就是每行每列均有(29-5)/2 + 1 = 13个卷积中心. 所以层#1共有13*13*6 = 1014个神经元和(5x5 +1) * 6 = 156个权值.
另外, 每个神经元都有26个连接(5x5+1), 所以共有1014*26 = 26364个连接. 共享权值的好处在此处显现: 因为权值是共享的, 尽管有26364个连接, 只需要控制156个权值即可. 如果是全连接的网络, 则有大量的权值需要训练.
层#2 也是卷积层, 但有50个特征图, 每个特征图都是5x5的. 所以共有5x5x50 = 1250个神经元, (5x5+1)*6*50 = 7800个权值, 1250x26 = 32500个连接.
在介绍层#3前, 我们需要再讲解一些网络的结构, 特别是层#2. 正如上文提及, 每一个层#2中的特征图都连接到前一层的6个特征图. 这是一个设计选择, 但并非唯一的选择. 我认为, 设计是和Simard博士的设计相同的. 但和LeCun博士的设计不同. LeCun博士有意地没有把层#2的每个特征图都和前一层的所有特征图连接起来, 而是选择性地连接到前一层的某一些特征图上.
层#3 和 层#4 是全连接的层.
本实现的层#4和LeCun博士的不同, 他使用的是RBF网络, 但出于简洁和易于实现的目的, 我选择的是Simard的结构.
[CLPR] 卷积神经网络的结构的更多相关文章
- cuda-convnet 卷积神经网络 一般性结构卷积核个数 和 输入输出的关系以及输入输出的个数的说明:
卷积神经网络 一般性结构卷积核个数和 输入输出的关系以及输入输出的个数的说明: 以cifar-10为例: Initialized data layer 'data', producing3072 ou ...
- 神经网络:卷积神经网络CNN
一.前言 这篇卷积神经网络是前面介绍的多层神经网络的进一步深入,它将深度学习的思想引入到了神经网络当中,通过卷积运算来由浅入深的提取图像的不同层次的特征,而利用神经网络的训练过程让整个网络自动调节卷积 ...
- Tensorflow之卷积神经网络(CNN)
前馈神经网络的弊端 前一篇文章介绍过MNIST,是采用的前馈神经网络的结构,这种结构有一个很大的弊端,就是提供的样本必须面面俱到,否则就容易出现预测失败.如下图: 同样是在一个图片中找圆形,如果左边为 ...
- 深度学习——卷积神经网络 的经典网络(LeNet-5、AlexNet、ZFNet、VGG-16、GoogLeNet、ResNet)
一.CNN卷积神经网络的经典网络综述 下面图片参照博客:http://blog.csdn.net/cyh_24/article/details/51440344 二.LeNet-5网络 输入尺寸:32 ...
- 深度学习之卷积神经网络(CNN)
卷积神经网络(CNN)因为在图像识别任务中大放异彩,而广为人知,近几年卷积神经网络在文本处理中也有了比较好的应用.我用TextCnn来做文本分类的任务,相比TextRnn,训练速度要快非常多,准确性也 ...
- 神经网络6_CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)概念区分理解
sklearn实战-乳腺癌细胞数据挖掘(博客主亲自录制视频教程,QQ:231469242) https://study.163.com/course/introduction.htm?courseId ...
- 【原创 深度学习与TensorFlow 动手实践系列 - 3】第三课:卷积神经网络 - 基础篇
[原创 深度学习与TensorFlow 动手实践系列 - 3]第三课:卷积神经网络 - 基础篇 提纲: 1. 链式反向梯度传到 2. 卷积神经网络 - 卷积层 3. 卷积神经网络 - 功能层 4. 实 ...
- 【Python】keras卷积神经网络识别mnist
卷积神经网络的结构我随意设了一个. 结构大概是下面这个样子: 代码如下: import numpy as np from keras.preprocessing import image from k ...
- 卷积神经网络(CNN)在语音识别中的应用
前言 总结目前语音识别的发展现状,dnn.rnn/lstm和cnn算是语音识别中几个比较主流的方向.2012年,微软邓力和俞栋老师将前馈神经网络FFDNN(Feed Forward Deep Neur ...
随机推荐
- P3327/bzoj3994 [SDOI2015]约数个数和(莫比乌斯反演)
P3327 [SDOI2015]约数个数和 神犇题解(转) 无话可补 #include<iostream> #include<cstdio> #include<cstri ...
- Python3.x:自动生成IP写入文本
Python3.x:自动生成IP写入文本 ''' 生成ip写入文件 ''' import time time_start = time.time() #参数:number-生成条数:start-开始i ...
- 20145221 《Java程序设计》实验报告三:敏捷开发与XP实践
20145221 <Java程序设计>实验报告三:敏捷开发与XP实践 实验要求 以结对编程的方式编写一个软件,Blog中要给出结对同学的Blog网址 记录TDD和重构的过程,测试代码不要少 ...
- CF #505 B Weakened Common Divisor(数论)题解
题意:给你n组,每组两个数字,要你给出一个数,要求这个是每一组其中一个数的因数(非1),给出任意满足的一个数,不存在则输出-1. 思路1:刚开始乱七八糟暴力了一下果断超时,然后想到了把每组两个数相乘, ...
- MyBatis的简单入门学习
一个新知识开始是最难学的.(万事开头难) MyBatis大体分三层,接口层,数据处理层,基础支撑层. 其中接口层不是java中的那个interface,而是框架和程序员之间的对接.一个API,程序员可 ...
- SharePoint研究之表单登录配置
本文将演示SharePoint怎样配置表单(Form)登录,后续文章将研究 无密码登录.编程添加用户组.编程添加用户.编程添加文件夹.编程分享文件夹(权限分配)等. 知识点:SharePoint.Sq ...
- BZOJ 3238 【AHOI2013】 差异
题目链接:差异 写题时发现这道题当初已经用后缀数组写过了……但是既然学了后缀自动机那就再写一遍吧…… 观察一下题目所给的式子:\[\sum_{1\leqslant i < j \leqslant ...
- qt 数据库操作总结
#include <QtSql>QT += sql QSqlDatabase类实现了数据库连接的操作QSqlQuery类用来执行SQL语句QSqlRecord类 封装数据库所有记录 第一: ...
- sql语句in
在今天之前sql一直用in语句,知道今天遇到一张数据量很大的表查了三分钟才查出来,这才意识到数据库优化有多重要.作为一名开发人员,首先从优化sql语句开始. 之前用in写sql是这样的 select ...
- UVA-1613 K-Graph Oddity (着色问题)
题目大意:一张n个顶点.m条边的无向连通图,用k种颜色着色(相邻顶点颜色不能相同),其中k为不小于点的最大度数的最小奇数. 题目分析:水题一道.建张图深搜一下就行了. # include<ios ...