文档章节

卷积神经网络的原理

StanleySun
 StanleySun
发布于 2017/07/24 22:34
字数 977
阅读 65
收藏 0
点赞 0
评论 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
粉丝 15
博文 44
码字总数 41270
作品 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
8- 深度学习之神经网络核心原理与算法-卷积神经网络

卷积神经网络(CNN) 神经网络不是一种具体的算法,而是一种模型构建思路或方式。 我们之前已经成功的构建了BP网络,BP网络的每个神经元是由线性分类器+激励函数形成的。每个神经元前后首尾连接...

天涯明月笙
05/25
0
0
11- 深度学习之神经网络核心原理与算法-卷积核典型的CNN网络

典型的CNN网络 VGG16 卷积核,池化层,卷积网络使用的激励函数。 目前市面上比较新的网络,由于计算能力的提升变得越来越复杂。 不再出现典型的纯粹的全连接网络,卷积网络的独有特点,而是把...

天涯明月笙
05/29
0
0
吴恩达 DeepLearning.ai 课程提炼笔记(4-1)卷积神经网络 --- 卷积神经网络基础

Ng新课终于发布了,撒花!以下为在Coursera上吴恩达老师的 deeplearning.ai 课程项目中,第四部分《卷积神经网络》第一周课程 “卷积神经网络基础” 关键点的笔记。本次笔记几乎涵盖了所有视...

大树先生
2017/11/07
0
0
卷积神经网络——本质上是在利用卷积做特征压缩,然后再全连接

原文:https://www.zybuluo.com/hanbingtao/note/485480 写得非常好,可以细读 全连接网络 VS 卷积网络 全连接神经网络之所以不太适合图像识别任务,主要有以下几个方面的问题: 参数数量太多...

桃子红了呐
2017/11/16
0
0
TensorFlow人工智能引擎入门教程所有目录

TensorFlow 人工智能引擎 入门教程之一 基本概念以及理解 TensorFlow人工智能引擎入门教程之二 CNN卷积神经网络的基本定义理解。 TensorFlow人工智能引擎入门教程之三 实现一个自创的CNN卷积...

zhuyuping
2016/04/22
22K
6
16- 深度学习之神经网络核心原理与算法-caffe&keras框架图片分类

之前我们在使用cnn做图片分类的时候使用了CIFAR-10数据集 其他框架对于CIFAR-10的图片分类是怎么做的 来与TensorFlow做对比。 Caffe Keras 安装 官方安装文档: https://github.com/IraAI/ca...

天涯明月笙
06/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

大数据教程(2.13):keepalived+nginx(多主多活)高可用集群搭建教程【自动化脚本】

上一章节博主为大家介绍了目前大型互联网项目的keepalived+nginx(主备)高可用系统架构体系,相信大家应该看了博主的文章对keepalived/nginx技术已经有一定的了解,在本节博主将为大家分享k...

em_aaron
4分钟前
0
0
Git 2.18版本发布:支持Git协议v2,提升性能

在最新的官方 Git 客户端正式版2.18中添加了对 Git wire 协议 v2 的支持,并引入了一些性能与 UI 改进的新特性。在 Git 的核心团队成员 Brandon Williams 公开宣布这一消息前几周,Git 协议 ...

六库科技
9分钟前
0
0
Java8新特性之接口

在JDK8以前,我们定义接口类中,方法都是抽象的,并且不能存在静态方法。所有的方法命名规则基本上都是 public [返回类型] [方法名](参数params) throws [异常类型] {}。 JDK8为接口的定义带...

developlee的潇洒人生
47分钟前
0
0
aop + annotation 实现统一日志记录

aop + annotation 实现统一日志记录 在开发中,我们可能需要记录异常日志。由于异常比较分散,每个 service 方法都可能发生异常,如果我们都去做处理,会出现很多重复编码,也不好维护。这种...

长安一梦
58分钟前
2
0
将博客搬至CSDN

AHUSKY
今天
1
0
Python web框架Django学习(1)

1.Django简介 (1)Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。Django是一个开放源代码的Web应用框架,由Python写成。 (2...

十年磨一剑3344
今天
0
0
Databook-数据之书

Databook-数据之书 用于数据分析的Jupyter Notebooks。 不需购买服务器,快速开始自己的数据分析过程。 源码:https://github.com/openthings/databook 作者:openthings,https://github.co...

openthings
今天
7
0
Python PIPEs

https://www.python-course.eu/pipes.php https://www.tutorialspoint.com/python/os_pipe.htm

zungyiu
今天
1
0
gRPC学习笔记

gRPC编程流程 1. proto文件定义 proto文件用于定义需要通过gRPC生成的接口,可以理解为接口定义文档 2. 通过构建工具生成服务基类代码-Maven或Gradle 3. 服务端开发 服务端实现类须实现通过构...

OSC_fly
今天
0
0
Docker Mac (三) Dockerfile 及命令

Dockerfile 最近学习docker的时候,遇到一件怪事,关于docker镜像可能会被破坏,还不知道它会有此措施 所以需要了解构建Dockerfile的正确方法 Dockerfile是由一系列命令和参数构成的脚本,这些命...

___大侠
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部