注:封面画师:新雨林-触站

说明

  • 本页面无手机端适配,强制缩放阅读。
  • 使用纯html格式,保存教学用ppt,添加了部分个人笔记。
  • 目录工作正常,可以跳转。

background image

卷积神经网络

卷积神经网络

卷积函数

离散卷积与多维卷积

什么是卷积神经网络

什么是卷积

卷积神经网络

卷积神经网络的用途

卷积运算

卷积运算的效果

案例2:图像卷积运算

卷积运算神经网络结构

典型CNN介绍

生活中的卷积

全连接神经网络的局限

卷积函数


background image




什么是卷积

• “卷积”其实是一个数学概念,它描述一个函数和另一个函数在某个维度上

的加权“叠加”作用。函数定义如下:

其中,函数 f 和函数 g 是卷积对象,a 为积分变量,星号“*”表示卷积。
公式所示的操作,被称为连续域上的卷积操作。这种操作通常也被简记为如
下公式:


background image




离散卷积与多维卷积

• 一般情况下,我们并不需要记录任意时刻的数据,而是以一定的时间间隔

(也即频率)进行采样即可。对于离散信号,卷积操作可用如下表示:

当然,对于离散卷积的定义可推广到更高维度的空间上。例如,二维的公式
可表示为公式:


background image




生活中的卷积

• 在一根铁丝某处不停地弯曲,假设发热函数是f(t),散热函数是g(t),此时此

刻的温度就是f(t) 跟g(t) 的卷积

• 在一个特定环境下,发声体的声源函数是f(t),该环境下对声源的反射效应函

数是g(t),那么在这个环境下感受到的声音就是f(t) 的和g(t) 的卷积

• 记忆也是一种卷积

卷积神经网络


background image




全连接神经网络的局限

• 之前介绍的神经网络,相邻层所有神经元之间都有连接,这称为全连接

(fully-connected)。全连接神经网络有以下几个问题:

1)未考虑数据的“形状”,会破坏数据空间结构。
例如,输入数据是图像时,图像通常是高长通道
方向上的3维形状。但是,向全连接层输入时,需
要将3维数据拉平为1维数据。
2)全连接网络层次深度受限,一般不超过七层。
3)全连接网络参数量庞大,需要降低参数量。


background image




什么是卷积神经网络

• 卷积神经网络(Convolutional Neural Network,CNN)针对全连接网络

的局限做出了修正,加入了卷积层(Convolution层)和池化层(Pooling
层)。


background image




卷积神经网络的用途

• CNN被广泛应用于图像识别、语音识别等各种场合,在图像识别的比赛中,

基于深度学习的方法几乎都以CNN为基础(比如,AlexNet、VGGNet、
Google Inception Net及微软的ResNet等)上。近几年深度学习大放异彩,
CNN功不可没。


background image




卷积运算

1

2

3

0

0

1

2

3

3

0

1

2

2

3

0

1

2

0

1

0

1

2

1

0

2

×

15

输入数据

滤波器(卷积核)

输出数据

• 单通道、二维卷积运算示例


background image




卷积运算(续1)

1

2

3

0

0

1

2

3

3

0

1

2

2

3

0

1

2

0

1

0

1

2

1

0

2

×

15

16

输入数据

滤波器(卷积核)

输出数据

• 单通道、二维卷积运算示例


background image




卷积运算(续2)

• 单通道、二维卷积运算示例

1

2

3

0

0

1

2

3

3

0

1

2

2

3

0

1

2

0

1

0

1

2

1

0

2

×

15

16

6

输入数据

滤波器(卷积核)

输出数据


background image




卷积运算(续3)

• 单通道、二维卷积运算示例

1

2

3

0

0

1

2

3

3

0

1

2

2

3

0

1

2

0

1

0

1

2

1

0

2

×

15

16

6

15

输入数据

滤波器(卷积核)

输出数据


background image




卷积运算(续4)

• 单通道、二维、带偏置的卷积运算示例

1

2

3

0

0

1

2

3

3

0

1

2

2

3

0

1

2

0

1

0

1

2

1

0

2

×

18

19

9

18

输入数据

滤波器(卷积核)

输出数据

+

3

偏置


background image




卷积运算(续5)

• 带填充(padding)的单通道、二维卷积运算示例

0

0

0

0

0

0

0

1

2

3

0

0

0

0

1

2

3

0

0

3

0

1

2

0

0

2

3

0

1

0

0

0

0

0

0

0

2

0

1

0

1

2

1

0

2

×

输入数据(padding:1)

滤波器(卷积核)

输出数据

7

12

10

2

4

15

16

10

10

6

15

6

8

10

4

3


background image




卷积运算(续6)

• 步幅(stride)为2的卷积运算示例

1

2

3

0

1

0

1

2

3

0

3

0

1

2

3

2

3

0

1

2

1

2

3

0

1

2

0

1

0

1

2

1

0

2

×

15

1

2

3

0

1

0

1

2

3

0

3

0

1

2

3

2

3

0

1

2

1

2

3

0

1

2

0

1

0

1

2

1

0

2

×

15

17


background image




卷积运算(续7)

• 卷积运算输出矩阵大小计算公式

其中,输入大小为(H, W),滤波器大小为(FH, FW),输出大小为(OH, OW),填
充为P,步幅为S。例如:输入大小(28,31);填充2;步幅3;滤波器大小
(5,5),则输出矩阵大小为:


background image




卷积运算(续8)

• 多通道卷积会按通道进行输入数据和滤波器的卷积运算,并将结果相加,

从而得到输出


background image




卷积运算(续9)

• 多通道、多卷积核卷积

ü

每个通道先与第一组卷积核执行卷
积,然后多通道结果叠加,产生一
个输出

ü

每个通道与下一组卷积核执行卷积,
产生另一个输出

ü

有多少组卷积核,就有多少个通道
输出(如右图,两组卷积核,产生
两个通道的输出数据)


background image




卷积运算的效果

• 通过卷积运算,能对输入数据起到加强或平滑效果。在图像处理中,通过选取

合适的卷积核(或称算子),可以对图像进行锐化、去噪、模糊、加强边沿。


background image




卷积运算的效果(续1)

• 卷积运算能提取深层次复杂特征

纹理相似性

复杂环境下提取主体


background image




卷积运算的效果(续2)

• 卷积运算能提取深层次复杂特征

形态变化

无关场景,卷积效果集中于草地背景


background image




案例2:

图像卷积运算


background image




案例2:

图像卷积运算(续)


background image




卷积神经网络结构

• 总体结构

通常情况下,卷积神经网络由若干个卷积层(Convolutional Layer)、激活
层(Activation Layer)、池化层(Pooling Layer)及全连接层(Fully 
Connected Layer)组成。

输出


background image




卷积神经网络结构(续1)

• 卷积层

它是卷积神经网络的核心所在,

通过卷积运算,达到降维处理和提取特征两个

重要目的


background image




卷积神经网络结构(续2)

• 激活层

其作用在于将前一层的线性输出,通过非线性的激活函数进行处理,这样用
以模拟任意函数,从而增强网络的表征能力。前面章节中介绍的激活函数,
如挤压函数Sigmoid也是可用的,但效果并不好。在深度学习领域,ReLU
(Rectified-Linear Unit,修正线性单元)是目前使用较多的激活函数,主
要原因是它收敛更快,次要原因在于它部分解决了梯度消失问题。


background image




卷积神经网络结构(续3)

• 池化层(Pooling Layer)

也称子采样层或下采样层(Subsampling Layer),目的是

缩小高、长方向上的空间的

运算,以降低计算量,提高泛化能力

。如下的示例,将4*4的矩阵缩小成2*2的矩阵输出

1 2 1 0
0 1 2 3
3 0 1 2
2 4 0 1

2

1 2 1 0
0 1 2 3
3 0 1 2
2 4 0 1

2 3

1 2 1 0
0 1 2 3
3 0 1 2
2 4 0 1

2 3
4

1 2 1 0
0 1 2 3
3 0 1 2
2 4 0 1

2 3
4 2


background image




卷积神经网络结构(续4)

• 池化层计算

Ø

对于每个输入矩阵,我们将其切割成若干大小相等的正方形小块,
对每一个区块取最大值或者平均值,并将结果组成一个新的矩阵

Ø

Max池化:对各个参与池化计算的区域取最大值,形成的新矩阵。
在图像识别领域,主要使用Max池化

Ø

Average池化:对各个参与池化计算的区域计算平均值


background image




卷积神经网络结构(续5)

• 池化层的特征

Ø

没有要学习的参数。

池化层和卷积层不同,没有要学习的参数。池化只是从目标区

域中取最大值(或者平均值),所以不存在要学习的参数

Ø

通道数不发生变化。

经过池化运算,输入数据和输出数据的通道数不会发生变化

Ø

对微小的位置变化具有鲁棒性(健壮)。

输入数据发生微小偏差时,池化仍会返回

相同的结果


background image




卷积神经网络结构(续6)

• 全连接层

Ø

这个网络层相当于多层感知机(Multi-Layer Perceptron,简称MLP),

在整个卷积神经网络中起到分类器的作用

Ø

通过前面多个“卷积-激活-池化”层的反复处理,待处理的数据特性已有
了显著提高:一方面,输入数据的维度已下降到可用传统的前馈全连接
网络来处理了;另一方面,此时的全连接层输入的数据已不再是“泥沙
俱下、鱼龙混杂”,而是经过反复提纯过的结果,因此输出的分类品质
要高得多。

经典CNN介绍


background image




经典CNN介绍(LeNet)

• 结构

LeNet是 Yann LeCun在1998年提出,用于解决手写数字识别的视觉任务。自
那时起,CNN的最基本的架构就定下来了:卷积层、池化层、全连接层。


background image




典型CNN介绍(LeNet)

• 主要参数

– 输入:输入32*32大小单通道图像
– 两个“卷积-池化层”
– 第一个全连接层神经元数目为500,再接激活函数
– 第二个全连接层神经元数目为10,得到10维的特征向量,用于10个数字的分

类训练,送入softmaxt分类,得到分类结果的概率


background image




典型CNN介绍(AlexNet)

• AlexNet是2012年ImageNet竞赛冠军获得者Hinton和他的学生Alex Krizhevsky设计的,

把CNN的基本原理应用到了很深很宽的网络中。其特点有

ü

使用ReLU作为激活函数,并验证其效果在较深的网络超过了Sigmoid,成功解决了Sigmoid在网络较深
时的梯度弥散问题

ü

使用Dropout(丢弃学习)随机忽略一部分神经元防止过拟合

ü

在CNN中使用重叠的最大池化。此前CNN中普遍使用平均池化,AlexNet全部使用最大池化,避免平均
池化的模糊化效果

ü

提出了LRN(Local Response Normalization,局部正规化)层,对局部神经元的活动创建竞争机制,
使得其中响应比较大的值变得相对更大,并抑制其他反馈较小的神经元,增强了模型的泛化能力

ü

使用CUDA加速深度卷积网络的训练,利用GPU强大的并行计算能力,处理神经网络训练时大量的矩阵
运算


background image




典型CNN介绍(AlexNet)

• 网络结构


background image




典型CNN介绍(AlexNet)

• 主要参数

AlexNet网络包含8层,其中前5层为卷积-池化层,后3层为全连接层;输入
224×224×3的图像,第一卷积层用96个11×11×3的卷积核对进行滤波,步
幅4像素;全连接的每层有4096个神经元,最后一个完全连接的层的输出被馈
送到1000路SoftMax,它产生超过1000个类别标签的分布;整个网络共
650000个神经元

参考论文:

http://www.cs.toronto.edu/~fritz/absps/imagenet.pdf


background image




典型CNN介绍(VGG)

• 概要介绍

VGG是Visual Geometry Group, Department of Engineering Science, 
University of Oxford(牛津大学工程科学系视觉几何组)的缩写,2014年参
加ILSVRC(ImageNet Large Scale Visual Recognition Challenge) 2014大
赛获得亚军(当年冠军为GoogLeNet,但因为VGG结构简单,应用性强,所以
很多技术人员都喜欢使用基于VGG的网络)


background image




典型CNN介绍(VGG)

• 主要参数

ü

网络深度:16~19层

ü

5组卷积-池化层,3个全连接层

ü

三个全连接层,前两层都有4096通道,第三层共1000路及代表1000个标签
类别;最后一层为softmax层

ü

所有卷积层有相同的配置,即卷积核大小为3x3,步长为1,填充为1

ü

池化层区域大小2x2,步长为2


background image




典型CNN介绍(VGG)

• 模型结构


background image




典型CNN介绍(GoogLeNet)

• GoogLeNet

请参考论文:

https://arxiv.org/pdf/1409.4842.pdf


background image




典型CNN介绍(ResNet)

• 介绍

ü

ResNet是ILSVRC 2015大赛冠军,在ImageNet测试集上取得了3.57%的错误率

ü

更深的网络结构,采用残差结构来缓解深度CNN的梯度消失问题


background image




典型CNN介绍(ResNet)

• 结构


background image

小结

• 本章节介绍了卷积神经网络(CNN),CNN是深度学习的主要模型,

在解决复杂工程问题中表现出了良好的性能。卷积神经网络主要由以
下几层构成:

ü

卷积层。

执行卷积运算

ü

激活层。

对卷积结果执行激活函数运算

ü

池化层。

降低数据规模,防止过拟合

ü

全连接层。

执行输出计算