码迷,mamicode.com
首页 > 其他好文 > 详细

卷积神经网络CNN

时间:2018-12-27 03:40:42      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:表达   max   获得   抽取   接受   src   随机数   最大值   滑动   

一、图片识别--前馈神经网络

      技术分享图片

       前馈神经网络 要识别上面各图中不同位置的“横折”,必须要用大量物体位于图片的不同位置的数据进行训练,同时增加网络的隐藏层个数从而扩大网络学习这些变体的能力。

        然而这样做效率并不高,不管“横折”在哪个位置,都是横折,明明是相同的东西,在不同位置为什么就要重新学习。有没有方法可以将中间所学到的规律也运用到其它位置,换句话说,就是让不同的位置用相同的权重。

二、卷积神经网络

    卷积神经网络(Convolution Neural Network),简称CNN。卷积神经网络就是让权重在不同位置共享的神经网络。

    常见的卷积神经网络框架有LeNet-5、AlexNet、ZFNet、VGGNet、GoogleNet、ResNet,我们常用的是VGGNet,GoogleNet,ResNet。

CNN主要用于图像分类和物品识别等应用场合。

  1、卷积神经网络的工作原理

  在卷积神经网络中,我们选择一个局部区域去扫描整张图片,局部区域所圈起来的所有节点会被连接到下一层的一个节点上,如下图所示:

  卷积层是卷积核在上一级输入层上通逐一滑动窗口计算而得,卷积核中的每一个参数都相当于传统神经网络中的权值参数,与对应的局部像素相连接,将卷积核的各个参数与对应的局部像素相乘之和,得到卷积层上的结果。卷积核的作用就是进行特征提取和特征映射。通过对卷积层的处理,再用模型对其训练,即可测试进行数据分类。

技术分享图片

所以,用不同的卷积核可以提取到不同的图片特征。

技术分享图片左边两个卷积核可以分别提取水平特征和垂直特征,下图为用不同的卷积核得到的不同的卷积层。

技术分享图片

  2、CNN的核心思想

   CNN模型限制了参数个数并挖掘了局部特征结构。主要用于识别位移、缩放及其它形式的扭曲不变性的二维图形。局部感受视野,权值共享以及时间或空间的亚采样三种思想的结合,获得某种程度的位移、尺度、形变不变性。通过“卷积核”作为中介。同一个卷积核在所有图像内是共享的,图像通过卷积操作后,仍然保留原先的位置关系。

   3、CNN的实质

  CNN本质上是一种输入到输出的映射,它能够学习大量的输入与输出的映射关系,而不需要任何输入与输出的精确数学表达示,只要用已知的模式对卷积网络加以训练,网络就具有输入与输出之间的映射能力,在开始训练前,所有的权重都应该用一些不同的小随机数进行初始化。“小随机数”用来保证网络不会因权值过大而进入饱和状态从而导致训练失败,不同用来保证可以正常的学习。

  4、CNN的结构

卷积神经网络结构一般包括以下几层:

  技术分享图片

 

  1)、输入层

  用于数据的输入。

  2)、卷积层

  卷积层是卷积核在上一层输入层上通过逐一滑动窗口计算而得,卷积核中的每一个参数都相当于传统神经网络中的权值参数,将卷积核中的各个参数与对应的局部象素相乘之和,得到的卷积层上的结果。一般的,使用卷积核进行特征提取与特征映射。

技术分享图片

  特征提取:每个神经元的输入与前一层的局部接受域相连,并提取该局部的特征。一旦该局部特征被提取后,它与其它特征之间的位置关系也相应被确定下来了;

  特征映射:网络的每个计算层由多个特征映射组成,每个特征映射是一个平面,平面上所有神经元的权值相等。由于一个映射面上的神经元共享权值,因而减少了网络自由参数的个数。

  3)、激励层

  由于卷积也是一种线性运算,因此需要增加非线性映射。使用的激励函数一般用Relu函数。

  4)、池化层

  进行下采样,对特征图进行稀疏处理,减少数据运算量。通过卷积层获得了图像的特征之后,理论上可以直接使用这些特征进行训练分类,但这样可能会面对巨大的数据量挑战,从而会产生过拟合现象。为了进一步降低网络训练参数及模型的过拟合程度,需要对卷积层进行池化/采样处理。池化采样方式有两种:

  a)、max_pool:最大池化,取池化窗口中最大值作为采样值

  b)、mean_pool:平均池化,取池化窗口中所有数的平均值作为采样值

技术分享图片

  5)、全链接层

  CNN尾部进行重新拟合,减少特征信息损失。

  6)、输出层

  用于最后结果的输出

   5、CNN优点

  1)、输入图像与网络的拓扑结构能够很好的吻合

  2)、尽管使用较少的参数,仍然有出色的性能

  3)、避免了显式的特征抽取,而隐式地从训练数据中抽取

  4)、特征提取与模式分类同时进行,并同时在训练中产生,网络可以并行学习

  5)、权值共享减少网络的训练参数,降低了网络的复杂性,适用性更强

  6)、无需手动选取特征,训练好权重,即得特征,分类效果好

  7)、直接输入网络,避免了提取和分类过程中数据重建的复杂度

  6、CNN缺点

  1)、需要调整参数

  2)、需要大样本量,训练最好用GPU

  3)、物理 含义不明确,神经网络本身就是一种难以理解的“黑箱”模型

 

 

 

 

    

    

       

  

 

 

 

   

卷积神经网络CNN

标签:表达   max   获得   抽取   接受   src   随机数   最大值   滑动   

原文地址:https://www.cnblogs.com/baoxuhong/p/10182404.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!