文档章节

卷积神经网络的原理

StanleySun
 StanleySun
发布于 2017/07/24 22:34
字数 977
阅读 78
收藏 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
粉丝 17
博文 44
码字总数 41270
作品 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

没有更多内容

加载失败,请刷新页面

加载更多

主流的消息队列MQ比较,详解MQ的4类应用场景

目前主流的MQ 1.ZeroMQ 号称最快的消息队列系统,尤其针对大吞吐量的需求场景。 扩展性好,开发比较灵活,采用C语言实现,实际上只是一个socket库的重新封装,如果做为消息队列使用,需要开发...

游人未归
47分钟前
2
0
React 服务器渲染原理解析与实践

网盘下载地址 React 服务器渲染原理解析与实践 本套课程,讲解了React中SSR技术的整个搭建思路及流程,完整的从原理上讲清楚了SSR的概念,重点在于讲解编写SSR框架遇到的各种知识点,以及细节...

qq__2304636824
今天
2
0
Jenkins使用

clean install -Dmaven.test.skip=true

1713716445
今天
1
0
多线程

1. 多线程概念。并发和并行的概念。 多线程指的是一段时间内cpu同时执行多个线程。一个程序至少运行>=1个进程,进程就是运行中的程序,而一个进程至少运行>=1个线程,线程是操作系统能调度的...

鱼想吃肉
今天
3
0
HBase 表修复在线方式和离线方式

一、在线修复 1.1 使用检查命令 $ ./bin/hbase hbck 该命令可完整修复 HBase 元数据信息;存在有错误信息会进行输出; 也可以通过如下命令查看详细信息: $ ./bin/hbase hbck -details 1.2 ...

Ryan-瑞恩
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部