[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 ...
随机推荐
- Cannot perform runtime binding on a null reference
一个方法的参数是dynamic obj 方法内调用了obj.Header 但是外部传递进来的obj是null,然后就会报这个错.
- NOIP 2018 兔纸旅游记
今年是第一次参加tg呢... Day0 早上出发去中旅坐大巴,走有 lz 特色的OI比赛道路. 车上谈笑风生,看 jw 的 GDOI 的小本本. 到动车站取票入站,看 lmh 和 zn 的爱恨情 ...
- [BZOJ1877][SDOI2009]SuperGCD
题目大意 求两个个高精度数的gcd 题目解析 在学习gcd的时候,书上就记载了"更相减损术"这一方法 基于这种方法,我们进行优化,使得我们能快速求出两个大数的gcd 对于 \(a, ...
- scrapy中的canonicalize_url【转】
转自:http://www.leyle.com/archives/canonicalize_url.html 思考一下:对url进行规范化处理是否是必须的?因为这一步处理涉及到编码转换,对于一个网页的 ...
- Linux中重定向--转载
转:http://blog.csdn.net/songyang516/article/details/6758256 1重定向 1.1 重定向符号 > 输出 ...
- c++ 判断容器是否为空
#include <iostream> #include <vector> #include <string> using namespace std; int m ...
- Android res目录结构
所有以drawable开头的文件夹都是用来放图片的 所有以values开头的文件夹都是用来放字符串的 layout 文件夹是用来放布局文件的 menu 文件夹是用来放菜单文件的.之所以有这么多 dra ...
- [转]vim 退格键(backspace)不能用
http://my.oschina.net/zhangdapeng89/blog/56593 1.去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限 set nocompatible ...
- jsapi微信扫一扫
微信公众号开发--微信JS-SDK扫一扫功能 首先请阅读微信JS-SDK说明文档,了解微信JS的相关说明. 根据官方的使用步骤,关键的有以下几步 绑定域名(很关键) 引入JS文件(很简单) 通过con ...
- 第10章 Pry, 强大的pry-rails和相关的几个好用gem
https://asciinema.org/a/0KtCL9HB1bP08wNHLfIeOMa8K 本章讲了如何定位❌,和排除bug. Pry (5000