文档章节

卷积神经网络的原理

StanleySun
 StanleySun
发布于 2017/07/24 22:34
字数 977
阅读 89
收藏 0

 

在普通神经网络中,每个神经元都和临近层的所有神经元相连接,这称为全连接(full-connected).

在识别MNIST手写体的程序中,普通神经网络有784(28x28)个输入神经元。通过官方的训练数据和测试数据,模型能达到大约98%的准确率。但是,这种全连接方式不适合用在真正的图像识别上。原因是它没有考虑图像的特殊结构。比如,它把相距远点像素和相距近的像素同等对待。实际上,相距近的像素,相关性更高。

中实际的图像识别中,常用的是卷积神经网络。卷积神经网络有3个重要的概念: loal receptive field, shared weights 和 pooling. 这几个概念翻译过来很别扭,就直接用英文。

1.loal receptive field

在普通神经网络中国年,输入层的每个神经元(像素)都会连接到每一个隐藏层神经元。

在卷积神经网络中,只把一个小区域到像素连接到第一个隐藏层的神经元。这个小区域被称为local receptive field.

就一MNIST的28x28图像为例,采用5x5的区域,则第一个隐藏层会有24x24个神经元。(默认stride length=1). 若图片大,可以用大一点的local receptive field会比较好。

然后我们把local receptive field 向右移动一个像素,用它连接二个隐藏神经元。 

一直这样移动下去。那么28x28的输入图像,5x5的local receptive fields,就会在隐藏层生成24x24个神经元。

2.shared weights and biases (共享权重和偏移量)

上例中,隐藏层的每一个神经元都有1个偏移量和5x5个权重。

对与24x24个神经元,卷积网络使用相同的权重和偏移量。

对于第j行第k列的隐藏层神经元,它的输出值是:

这种方法可以理解为:第一个隐藏层的所有神经元检测到相通的特征(feature),不同的只是检测的位置不同。

  • 特征(feature):

    可以理解为能够导致神经元被激活(activate)的输入模式。它可能是图像的边框,或者某种形状的类别,等等。

假设我们能够分辨某一批权重和偏移量的含义,比如是垂直边框,那么,我们就能把这种特征的检测方法应用中图像的任何位置。

卷积网络还有个特性是适用于图像的平移不变性,即,把一张小猫的图像平移后,仍然是小猫。

  • 一些定义:

    1. feature map: 从输入层到隐藏层的映射。
    2. shared weights: feature map的权重
    3. shared bias: feature map的偏移量
    4. shared weight + shared bias能够定义一个kernal(或filter)

完整的卷积层,包含多个feature map.

上图有3个feature map, 每个feature map有5x5个shared weights,和1个 shared bias.

实际使用中,卷积网会有很多feature map。

shared weights + biases能够大大加少参数的数量。下面比较普通神经网络和卷积网的区别。

A: 上例若用普通神经网络,第一个隐藏层选中30个神经元,则这一层需要有28x28*30 + 30 =23550个参数。

B: 若用卷积网,选20个feature map. 则需要的参数为20x(5x5+1) = 520.

3.pooling layer (池化层)

池化层的作用是简化卷积层的输出。

上图把2x2的输入区域池化成一个单元。池化有好多方法,比如max-pooling, mean-pooling等等。上图用的是max-pooling.也就是将输入区的4个值进行比较,选择最大的值。

将上面所有概念合并到一起,组成完整的卷积网络,如下图所示: 

 

相关文章

卷积神经网络的python实现

© 著作权归作者所有

共有 人打赏支持
StanleySun
粉丝 21
博文 45
码字总数 43107
作品 0
技术主管
私信 提问
深度学习笔记11:利用numpy搭建一个卷积神经网络

前两个笔记笔者集中探讨了卷积神经网络中的卷积原理,对于二维卷积和三维卷积的原理进行了深入的剖析,对 CNN 的卷积、池化、全连接、滤波器、感受野等关键概念进行了充分的理解。本节内容将...

鲁伟
07/24
0
0
TensorFlow应用实战-11-DCGAN介绍及原理

什么是DCGAN DCGAN是GAN的一个变体。 Deep Convolutional GAN 深度卷积生成对抗网络。 生成模型和判别模型都运用了深度卷积 神经网络的生成对抗网络 Gan里面生成模型和判别模型也是用到了神经...

天涯明月笙
06/07
0
0
cnn卷积神经网络及其tensorflow的一些资源汇总

ccn原理的理解 深度学习Deep Learning(01)_CNN卷积神经网络 再看CNN中的卷积 这两篇文章里推荐的资源也很好: CNN(卷积神经网络)是什么?有入门简介或文章吗? CS231n课程笔记翻译:卷积神...

firing00
04/13
0
0
Deep Learning — 学习笔记&个人理解

l 一个神经网络最简单的结构包括:输入层、隐含层、输出层。 l 传统神经网络的反向传播过程:(http://www.cnblogs.com/charlotte77/p/5629865.html) 传统神经网络训练原理:通过“输入数据...

03/15
0
0
想要实现深度神经网络?一张 Excel 表格就够了

卷积神经网络(CNN)经常被用于图像识别、语音处理等领域,是人工智能近年来快速发展的重要组成部分。然而,对于入门人士来说,我们似乎难以理解其中的原理。实际上「卷积」等概念并非遥不可...

机器之心
02/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Beautiful Soup

定义 Python中的一个库,主要用于从网页爬取数据; 安装 pip install beautifulsoup4 四大对象 Beautiful Soup将复杂的HTML文档转换成树形结构,树中的每个节点都是Python对象,对象可归纳为...

村雨1943
13分钟前
1
0
Visual Studio 昨日发布新版本:增加实时同步编程、共同调试

多名开发者可以在同一个项目中编程,在编写代码和调试代码时只需发送一个 URL 网址,就能邀请他人参与协作,而且无需重新配置开发环境和安装任何附加包。该服务支持 Windows、Mac 与 Linux ...

linuxCool
16分钟前
0
0
发现一种不错的学习方法

这是在《软技能,代码之外的生存之道》所看到的一种学习方法,感觉这个理念不错,分享出来,共勉。 我的「十步学习法」 多年以来,我都承受着巨大的压力:快速学习新技术、新编程语言、新框架...

firepation
16分钟前
0
0
webpack4配置详解之常用插件分享

前言   继上一次webpack的基础配置分享之后,本次将分享一些工作中项目常用的配置插件、也会包含一些自己了解过觉得不错的插件,如有分析不到位的,欢迎纠错,嗯,这些东西文档都有,大佬可...

苏南-首席填坑官
33分钟前
5
1
升压变换器 Boost

工作特点 输入输出极性相同。 开关管 MOS 和负载构成并联,在MOS 导通时,电流通过 L 滤波,电源对 L 充电。 当 MOS 断开时,L 向负载及电源放电,输出电压将是 Ui+U L ,达到升压的目的。 ...

colinux
36分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部