CNN(卷积神经网络)是啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CNN(卷积神经网络)是啥?相关的知识,希望对你有一定的参考价值。

在数字图像处理的时候我们用卷积来滤波是因为我们用的卷积模版在频域上确实是高通低通带通等等物理意义上的滤波器。然而在神经网络中,模版的参数是训练出来的,我认为是纯数学意义的东西,很难理解为在频域上还有什么意义,所以我不认为神经网络里的卷积有滤波的作用。接着谈一下个人的理解。首先不管是不是卷积神经网络,只要是神经网络,本质上就是在用一层层简单的函数(不管是sigmoid还是Relu)来拟合一个极其复杂的函数,而拟合的过程就是通过一次次back propagation来调参从而使代价函数最小。

参考技术A

CNN的核心其实就是卷积核的作用,如果学过数字图像处理,对于卷积核的作用应该不陌生,比如你做一个最简单的方向滤波器,那就是一个二维卷积核,这个核其实就是一个模板,利用这个模板再通过卷积计算的定义就可以计算出一幅新的图像,新的图像会把这个卷积核所体现的特征突出显示出来。比如这个卷积核可以侦测水平纹理,那卷积出来的图就是原图水平纹理的图像。现在假设要做一个图像的分类问题,比如辨别一个图像里是否有一只猫,我们可以先判断是否有猫的头,猫的尾巴,猫的身子等等,如果这些特征都具备,那么我就判定这应该是一只猫(如果用心的话你就会发现这就是CNN最后的分类层,这一部分是我们传统的神经网络的范畴)。

参考技术B

卷积神经网络(Convolutional Neural Network,CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。它包括卷积层(convolutional layer)和池化层(pooling layer)。卷积神经网络是近年发展起来,并引起广泛重视的一种高效识别方法。20世纪60年代,Hubel和Wiesel在研究猫脑皮层中用于局部敏感和方向选择的神经元时发现其独特的网络结构可以有效地降低反馈神经网络的复杂性,继而提出了卷积神经网络。现在,CNN已经成为众多科学领域的研究热点之一,特别是在模式分类领域,由于该网络避免了对图像的复杂前期预处理,可以直接输入原始图像,因而得到了更为广泛的应用。 K.Fukushima在1980年提出的新识别机是卷积神经网络的第一个实现网络。随后,更多的科研工作者对该网络进行了改进。其中,具有代表性的研究成果是Alexander和Taylor提出的“改进认知机”,该方法综合了各种改进方法的优点并避免了耗时的误差反向传播。一般地,CNN的基本结构包括两层,其一为特征提取层,每个神经元的输入与前一层的局部接受域相连,并提取该局部的特征。一旦该局部特征被提取后,它与其它特征间的位置关系也随之确定下来;其二是特征映射层,网络的每个计算层由多个特征映射组成,每个特征映射是一个平面,平面上所有神经元的权值相等。特征映射结构采用影响函数核小的sigmoid函数作为卷积网络的激活函数,使得特征映射具有位移不变性。

卷积神经网络中的CNN是啥?

主页: ​​小王叔叔的博客​​欢迎来访

支持:点赞收藏关注

卷积神经网络中的CNN是啥?_卷积神经网络

卷积神经网络中的CNN是啥?_权值_02

1 概念

​百度百科​​中讲到卷积神经网络(Convolutional Neural Networks, CNN)是一类包含​​卷积​​计算且具有深度结构的​​前馈神经网络​​(Feedforward Neural Networks),是​​深度学习​​(deep learning)的代表算法之一 。

卷积神经网络中的CNN是啥?_CNN_03

CNN由纽约大学的Yann Lecun于1998年提出,其本质是一个多层感知机,成功的原因在于其所采用的局部连接和权值共享的方式:

  • 一方面减少了权值的数量使得网络易于优化
  • 另一方面降低了模型的复杂度,也就是减小了过拟合的风险

2 结构

卷积神经网络是一种带有卷积结构的深度神经网络,卷积结构可以减少深层网络占用的内存量,其三个关键的操作,其一是局部感受野,其二是权值共享,其三是pooling层,有效的减少了网络的参数个数,缓解了模型的过拟合问题。

卷积神经网络结构包括:卷积层池化层、和全连接层。通过堆叠这些层结构形成一个卷积神经网络。将原始图像转化为类别得分,其中卷积层和全连接层拥有参数,激活层和池化层没有参数。

卷积神经网络中的CNN是啥?_卷积神经网络_04

(1)卷积层(Convolutional Layer) 

 主要作用是提取特征

     属构建神经网络的核心层,在其中产生大部分的计算量,通过它我们也可以提取图像的特征。

     1. 滤波器的作用或者说是卷积的作用。

     2. 可以被看做是神经元的一个输出。

     3. 降低参数的数量。

卷积神经网络中的CNN是啥?_池化_05

(2)池化层(Max Pooling Layer) 

主要作用是下采样(downsampling),却不会损坏识别结果。

 池化层本质上是下采样,利用图像局部相关性的原理(认为最大值或者均值代表了这个局部的特征),对图像进行子抽样,可以减少数据处理量同时保留有用信息。池化操作可以逐渐降低数据体的空间尺寸,这样的话就能减少网络中参数的数量,使得计算资源耗费变少,也能有效控制过拟合。

卷积神经网络中的CNN是啥?_权值_06

卷积神经网络中的CNN是啥?_卷积_07    通常卷积层池化层重复多次形成具有多个隐藏层的网络,俗称深度神经网络

(3)全连接层(Fully Connected Layer) 

主要作用是分类。

     通过前面(1)和(2)得到的特征后,在全连接层中进行更好的特征分类,进一步将特征转化为类=类别进行输出。

(4)DropOut

针对某个神经元,通过定义的概率删除一些神经元,同时保证输入层和输出层保持不变,然后通过方法进行更新。

卷积神经网络中的CNN是啥?_CNN_08

 (5)softmax层

Softmax层也不属于CNN中单独的层,一般要用CNN做分类的话,我们习惯的方式是将神经元的输出变成概率的形式。

3  特征

(1)局部感受野

(2)卷积层的权值共享

卷积神经网络中的CNN是啥?_池化_09卷积神经网络中的CNN是啥?_卷积神经网络_10


⚠️注意 ~

以上是关于CNN(卷积神经网络)是啥?的主要内容,如果未能解决你的问题,请参考以下文章

卷积神经网络-疑点解析

卷积神经网络的正确架构是啥?

基于深度卷积神经网络进行人脸识别的原理是啥?

卷积神经网络(CNN)基础

CNN网络简介

基于卷积神经网络CNN的水果分类预测,卷积神经网络水果等级识别