美文网首页我爱编程
深度学习-卷积神经网络CNN

深度学习-卷积神经网络CNN

作者: 北山学者 | 来源:发表于2018-01-21 14:16 被阅读0次
    降维打击,这点也是适用于卷积神经网络的。
    

    一、卷积神经网络结构

    卷积神经网络(Convolutional Neural Network,CNN),一般地,CNN的基本结构包括两层,

    1、特征提取层,每个神经元的输入与前一层的局部接受域相连,并提取该局部的特征。一旦该局部特征被提取后,它与其它特征间的位置关系也随之确定下来;
    2、特征映射层,网络的每个计算层由多个特征映射组成,每个特征映射是一个平面,平面上所有神经元的权值相等。特征映射结构采用影响函数核小的sigmoid函数作为卷积网络的激活函数,使得特征映射具有位移不变性。此外,由于一个映射面上的神经元共享权值,因而减少了网络自由参数的个数。卷积神经网络中的每一个卷积层都紧跟着一个用来求局部平均与二次提取的计算层,这种特有的两次特征提取结构减小了特征分辨率。

    CNN主要用来识别位移、缩放及其他形式扭曲不变性的二维图形。

    • 1、由于CNN的特征检测层通过训练数据进行学习,所以在使用CNN时,避免了显示的特征抽取,而隐式地从训练数据中进行学习;
    • 2、再者由于同一特征映射面上的神经元权值相同,所以网络可以并行学习,这也是卷积网络相对于神经元彼此相连网络的一大优势。

    下面我们来用通俗的话解释下,在不考虑输入层的情况下,一个典型的卷积神经网络通常由若干个卷积层(Convolutional Layer)、激活层(Activation Layer)、池化层(Pooling Layer)及全连接层(Fully Connected Layer)组成。

    • 卷积层:这个是卷积神经网络的核心所在。在卷积层,通过实现局部感知权值共享等系列的设计理念,可达到两个重要的目的:

    1、对高维输入数据实施降维处理;
    2、实现自动提取原始数据的核心特征。

    • 激活层:其作用是将前一层的线性输出,通过非线性激活函数处理,从而可模拟任意函数,进而增强网络的表征能力。在深度学习领域,ReLU(Rectified-Linear Unit,修正线性单元)是目前使用较多的激活函数,原因是它收敛更快,且不会产生梯度消失问题。

    • 池化层:亦称亚采样层(Subsampling Layer)。简单来说,利用局部相关性,“采样”在较少数据规模的同时保留了有用信息。巧妙的采样还具备局部线性转换不变性,从而增强卷积神经网络的泛化处理能力。

    • 全连接层:这个网络层相当于传统的多层感知机(Multi-Layer Perceptron,简称MLP)。通常来说,卷积-激活-池化是一个基本的处理栈,通过多个前栈处理之后,待处理的数据特性已有了显著变化:一方面,输入数据的维度已下降到可用“全连接”网络来处理了;另一方面,此时全连接层的输入数据已不再是“泥沙俱下、鱼龙混杂”,而是经过反复提纯过的结果,因此最后输出的结果要可控得高。

    二、各部分分解

    1、卷积层

    卷积层的三个核心概念:局部连接、空间位置排列及权值共享。

    全连接的前馈神经网络有个非常致命的缺点,那就是可扩展性(Scalability)非常差。原因非常简单,网络规模一大,需要调参的个数以神经元数的平方倍增,导致它难以承受参数太多之痛。局部连接(Local Connectivity)在能某种程度上缓解这个“参数之痛”。

    对于卷积神经网络而言,隐藏层的这个神经元仅仅需要与前向层的部分区域相连接。这个局部连接区域有个特别的名称叫感知域(receptive field),其大小等同于卷积核的大小。局部连接也被称为稀疏连接(Sparse Connectivity)

    2、空间排列

    决定卷积层的空间排列(Spatial arrangement)的4个参数,它们分别是:卷积核的大小、深度、步幅及补零。
    (1)卷积核的深度(depth):卷积核的深度对应的是卷积核的个数。每个卷积核只能提取输入数据的部分特征。每一个卷积核与原始输入数据执行卷积操作,会得到一个卷积特征,这样的多个特征汇集在一起,我们称为特征图谱。
    事实上,每个卷积核提取的特征都有各自的侧重点。因此,通常说来,多个卷积核的叠加效果要比单个卷积核的分类效果要好得多。

    (2)步幅(stride):即滤波矩阵在输入矩阵上滑动跨越的单元个数。设步幅大小为S,当S为1时,滤波器每次移动一个像素的位置。当S为2时,每次移动滤波器会跳过2个像素。S越大,卷积得到特征图就越小。

    (3)补零(zero-padding):补零操作通常用于边界处理。在有些场景下,卷积核的大小并不一定刚好就被输入数据矩阵的维度大小整除。因此,就会出现卷积核不能完全覆盖边界元素的情况。这时,我们就需要在输入矩阵的边缘使用零值进行填充,使得在输入矩阵的边界处的大小刚好和卷积核大小匹配。这样做的结果,相当于对输入图像矩阵的边缘进行了一次滤波。零填充的好处在于,它可以让我们控制特征图的大小。使用零填充的卷积叫做泛卷积(wide convolution),不适用零填充的叫做严格卷积(narrow convolution)。

    综上所述,在构造卷积层时,对于给定的输入数据,如果确定了卷积核的大小,卷积核的深度(个数)、步幅以及补零个数,那么卷积层的空间安排就能确定下来。

    3、权值共享

    卷积层设计的第三个核心概念就是权值共享(Shared Weights),由于这些权值实际上就是不同神经元之间的连接参数,所以有时候,也将权值共享称为参数共享(Parameter Sharing)。

    单从数据特征上来看,我们可以把每个卷积核(即过滤核)当作一种特征提取方式,而这种方式与图像等数据的位置无关。这就意味着,对于同一个卷积核,它在一个区域提取到的特征,也能适用于于其他区域。基于权值共享策略,将卷积层神经元与输入数据相连,同属于一个特征图谱的神经元,将共用一个权值参数矩阵。

    权值共享保证了在卷积时只需要学习一个参数集合即可,而不是对每个位置都再学习一个单独的参数集合。因此参数共享也被称为绑定的权值(tied weights)。

    三、结论

    空间位置排列确定了神经网络的结构参数,而局部连接和权值共享等策略显著降低了神经元之间的连接数。

    卷积神经网络以其局部权值共享的特殊结构在语音识别和图像处理方面有着独特的优越性,其布局更接近于实际的生物神经网络,权值共享降低了网络的复杂性,特别是多维输入向量的图像可以直接输入网络这一特点避免了特征提取和分类过程中数据重建的复杂度。

    四、参考

    1、局部连接来减参,权值共享肩并肩(深度学习入门系列之十一)
    2、技术向:一文读懂卷积神经网络CNN
    3、机器视角:长文揭秘图像处理和卷积神经网络架构

    相关文章

      网友评论

        本文标题:深度学习-卷积神经网络CNN

        本文链接:https://www.haomeiwen.com/subject/nwbfaxtx.html