第五章 卷积神经网络

第五章 卷积神经网络

卷积神经网络(Convolutional Neural Network,CNN或ConvNet)是一种具有局部连接、权重共享等特性的深层前馈神经网络。

卷积神经网络最早是主要用来处理图像信息。在用全连接前馈网络来处理图像时,会存在以下两个问题:

(1)参数太多:如果输入图像大小为 100 × 100 × 3(即图像高度为 100,宽度 为 100,3 个颜色通道:RGB)。在全连接前馈网络中,第一个隐藏层的每个神经元到输入层都有 100 × 100 × 3 = 30, 000 个互相独立的连接,每个连接都对应一个权重参数。随着隐藏层神经元数量的增多,参数的规模也会急剧增加。这会导致整个神经网络的训练效率非常低,也很容易出现过拟合。

(2)局部不变性特征:自然图像中的物体都具有局部不变性特征,比如尺度缩放、平移、旋转等操作不影响其语义信息。而全连接前馈网络很难提取这些局部不变性特征,一般需要进行数据增强来提高性能。

卷积神经网络是受生物学上感受野机制的启发而提出的。感受野(Receptive Field)主要是指听觉、视觉等神经系统中一些神经元的特性,即神经元只接受其所支配的刺激区域内的信号。在视觉神经系统中,视觉皮层中的神经细胞的输出依赖于视网膜上的光感受器。视网膜上的光感受器受刺激兴奋时,将神经冲 动信号传到视觉皮层,但不是所有视觉皮层中的神经元都会接受这些信号。一个 神经元的感受野是指视网膜上的特定区域,只有这个区域内的刺激才能够激活该神经元。

目前的卷积神经网络一般是由卷积层、汇聚层和全连接层交叉堆叠而成的前馈神经网络,使用反向传播算法进行训练。

卷积神经网络有三个结构上的特性:局部连接权重共享以及汇聚。这些特性使得卷积神经网络具有一定程度上的平移、缩放和旋转不变性。和前馈神经网络相比,卷积神经网络的参数更少

卷积神经网络主要使用在图像和视频分析的各种任务(比如图像分类、人脸 识别、物体识别、图像分割等)上,其准确率一般也远远超出了其它的神经网络模 型。近年来卷积神经网络也广泛地应用到自然语言处理、推荐系统等领域。

卷积

卷积(Convolution),也叫摺积,是分析数学中一种重要的运算。在信号处理或图像处理中,经常使用一维或二维卷积。

一维卷积

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二维卷积

在机器学习和图像处理领域,卷积的主要功能是在一个图像(或某种特征) 上滑动一个卷积核(即滤波器),通过卷积操作得到一组新的特征。在计算卷积 的过程中,需要进行卷积核翻转。在具体实现上,一般会以互相关操作来代替卷 积,从而会减少一些不必要的操作或开销。

互相关(Cross-Correlation)是一个衡量两个序列相关性的函数,通常是用滑动窗口的点积计算来实现。

在这里插入图片描述

互相关

在这里插入图片描述
在这里插入图片描述

卷积的变种

在卷积的标准定义基础上,还可以引入滤波器的滑动步长零填充来增加卷积的多样性,可以更灵活地进行特征抽取
在这里插入图片描述
在这里插入图片描述

卷积的数学性质

卷积有很多很好的数学性质。在本节中,我们介绍一些二维卷积的数学性 质,这些数学性质同样可以适用到一维卷积的情况。

交换性

在这里插入图片描述

导数

在这里插入图片描述
在这里插入图片描述

卷积神经网络

卷积神经网络一般由卷积层、汇聚层和全连接层构成。

用卷积来代替全连接

根据卷积的定义,卷积层有两个很重要的性质:
在这里插入图片描述
在这里插入图片描述

卷积层

卷积层的作用是提取一个局部区域的特征,不同的卷积核相当于不同的特征提取器。上一节中描述的卷积层的神经元和全连接网络一样都是一维结构。由于卷积网络主要应用在图像处理上,而图像为两维结构,因此为了更充分地利用图像的局部信息,通常将神经元组织为三维结构的神经层,其大小为高度 M × 宽度N×深度D,由D个M ×N大小的特征映射构成。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

汇聚层(池化层)

汇聚层(Pooling Layer)也叫子采样层(Subsampling Layer),其作用是进行特征选择,降低特征数量,从而减少参数数量。

卷积层虽然可以显著减少网络中连接的数量,但特征映射组中的神经元个数并没有显著减少。如果后面接一个分类器,分类器的输入维数依然很高,很容易出现过拟合。为了解决这个问题,可以在卷积层之后加上一个汇聚层,从而降低特征维数,避免过拟合。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

典型的卷积网络结构

一个典型的卷积网络是由卷积层、汇聚层、全连接层交叉堆叠而成。目前常用的卷积网络结构如图5.9所示。一个卷积块为连续 M 个卷积层和 b 个汇聚层(M通常设置为2 ∼ 5,b为0或1)。一个卷积网络中可以堆叠N个连续的卷积块, 然后在后面接着K个全连接层(N的取值区间比较大,比如1 ∼ 100或者更大; K一般为0 ∼ 2)。

目前,整个网络结构趋向于使用更小的卷积核(比如1 × 1和3 × 3)以及更深的结构(比如层数大于 50)。此外,由于卷积的操作性越来越灵活(比如不同的步长),汇聚层的作用也变得越来越小,因此目前比较流行的卷积网络中,汇聚层的比例正在逐渐降低,趋向于全卷积网络。
在这里插入图片描述

参数学习

在卷积网络中,参数为卷积核中权重以及偏置。和全连接前馈网络类似,卷 积网络也可以通过误差反向传播算法来进行参数学习。

在全连接前馈神经网络中,梯度主要通过每一层的误差项 δ 进行反向传播, 并进一步计算每层参数的梯度。

在卷积神经网络中,主要有两种不同功能的神经层:卷积层和汇聚层。而参数为卷积核以及偏置,因此只需要计算卷积层中参数的梯度。

在这里插入图片描述

误差项的计算

卷积层和汇聚层中误差项的计算有所不同,因此我们分别计算其误差项。
在这里插入图片描述
在这里插入图片描述

几种典型的卷积神经网络

LeNet-5

LeNet-5[LeCun 等人,1998] 虽然提出的时间比较早,但它是一个非常成功的 神经网络模型。基于 LeNet-5 的手写数字识别系统在 20 世纪 90 年代被美国很多 银行使用,用来识别支票上面的手写数字。LeNet-5 的网络结构如图5.10所示。
在这里插入图片描述
LeNet-5共有7层,接受输入图像大小为32 × 32 = 1024,输出对应10个类别的得分。LeNet-5 中的每一层结构如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

AlexNet

AlexNet[Krizhevsky 等人,2012] 是第一个现代深度卷积网络模型,其首次 使用了很多现代深度卷积网络的技术方法,比如使用 GPU 进行并行训练,采用 了 ReLU 作为非线性激活函数,使用 Dropout 防止过拟合,使用数据增强来提高 模型准确率等。AlexNet 赢得了 2012 年 ImageNet 图像分类竞赛的冠军。

AlexNet 的结构如图5.12所示,包括 5 个卷积层、3 个汇聚层和 3 个全连接层 (其中最后一层是使用 Softmax 函数的输出层)。因为网络规模超出了当时的单个 GPU 的内存限制,AlexNet 将网络拆为两半,分别放在两个 GPU 上,GPU 间
只在某些层(比如第 3 层)进行通讯。

在这里插入图片描述

AlexNet 的输入为 224 × 224 × 3 的图像,输出为 1000 个类别的条件概率,具体结构如下:
在这里插入图片描述
此外,AlexNet 还在前两个汇聚层之后进行了局部响应归一化以增强模型的泛化能力。

Inception 网络

在卷积网络中,如何设置卷积层的卷积核大小是一个十分关键的问题。在 Inception网络中,一个卷积层包含多个不同大小的卷积操作,称为Inception模 块。Inception 网络是由有多个 Inception 模块和少量的汇聚层堆叠而成。

Inception模块同时使用1 × 1、3 × 3、5 × 5等不同大小的卷积核,并将得到 的特征映射在深度上拼接(堆叠)起来作为输出特征映射。

图5.13给出了 v1 版本的 Inception 模块结构,采用了 4 组平行的特征抽取方 式,分别为1 × 1、3 × 3、5 × 5的卷积和3 × 3的最大汇聚。同时,为了提高计算效 率,减少参数数量,Inception模块在进行3×3、5×5的卷积之前、3×3的最大汇 聚之后,进行一次1 × 1的卷积来减少特征映射的深度。如果输入特征映射之间 存在冗余信息,1 × 1的卷积相当于先进行一次特征抽取。
在这里插入图片描述
Inception网络最早的v1版本就是非常著名的GoogLeNet [Szegedy等人,2015]。GoogLeNet 赢得了 2014 年 ImageNet 图像分类竞赛的冠军。

GoogLeNet由9个Inception v1模块和5个汇聚层以及其它一些卷积层和全 连接层构成,总共为 22 层网络,如图5.14所示。为了解决梯度消失问题,GoogLeNet 在网络中间层引入两个辅助分类器来加强监督信息。

在这里插入图片描述
Inception网络有多个改进版本,其中比较有代表性的有Inception v3网络[Szegedy等人,2016]。Inception v3网络用多层的小卷积核来替换大的卷积核,以减少计算量和参数量,并保持感受野不变。具体包括:(1)使用两层3 × 3的卷积 来替换v1中的5 × 5的卷积(;2)使用连续的n × 1和1 × n来替换n × n的卷积。 此外,Inception v3网络同时也引入了标签平滑以及批量归一化等优化方法进行训练。

残差网络

在这里插入图片描述
在这里插入图片描述

其它卷积方式

转置卷积

我们一般可以通过卷积操作来实现高维特征到低维特征的转换。比如在一 维卷积中,一个 5 维的输入特征,经过一个大小为 3 的卷积核,其输出为 3 维特征。 如果设置步长大于 1,可以进一步降低输出特征的维数。但在一些任务中,我们需 要将低维特征映射到高维特征,并且依然希望通过卷积操作来实现。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
微步卷积 我们可以通过增加卷积操作的步长s > 1来实现对输入特征的下采 样操作,大幅降低特征维数。同样,我们也可以通过减少转置卷积的步长s < 1 来实现上采样操作,大幅提高特征维数。步长s < 1的转置卷积也称为微步卷积Fractionally-Strided Convolution)[Long等人,2015]。为了实现微步卷积,我们
可以在输入特征之间插入 0 来间接地使得步长变小。

在这里插入图片描述

在这里插入图片描述

空洞卷积

对于一个卷积层,如果希望增加输出单元的感受野,一般可以通过三种方式实现
(:1)增加卷积核的大小
(;2)增加层数,比如两层 3 × 3 的卷积可以近似一层 5 × 5 卷积的效果
(;3)在卷积之前进行汇聚操作。前两种方式会增加参数数量,而第三种方式会丢失一些信息。

空洞卷积(Atrous Convolution)是一种不增加参数数量,同时增加输出单 元感受野的一种方法,也称为膨胀卷积(Dilated Convolution)[Chen等人; Yu等 人,2018; 2015]。

空洞卷积通过给卷积核插入“空洞”来变相地增加其大小。如果在卷积核的 每两个元素之间插入d − 1个空洞,卷积核的有效大小为
在这里插入图片描述
其中d称为膨胀率(Dilation Rate)。当d = 1时卷积核为普通的卷积核。
在这里插入图片描述

发布了64 篇原创文章 · 获赞 9 · 访问量 4334

猜你喜欢

转载自blog.csdn.net/Avery123123/article/details/103915578