注:封面画师:新雨林-触站
说明
- 本页面无手机端适配,强制缩放阅读。
- 使用纯html格式,保存教学用ppt,添加了部分个人笔记。
- 目录工作正常,可以跳转。
卷积神经网络
卷积神经网络
卷积函数
离散卷积与多维卷积
什么是卷积神经网络
什么是卷积
卷积神经网络
卷积神经网络的用途
卷积运算
卷积运算的效果
案例2:图像卷积运算
卷积运算神经网络结构
典型CNN介绍
生活中的卷积
全连接神经网络的局限
卷积函数
知
识
讲
解
什么是卷积
• “卷积”其实是一个数学概念,它描述一个函数和另一个函数在某个维度上
的加权“叠加”作用。函数定义如下:
其中,函数 f 和函数 g 是卷积对象,a 为积分变量,星号“*”表示卷积。
公式所示的操作,被称为连续域上的卷积操作。这种操作通常也被简记为如
下公式:
知
识
讲
解
离散卷积与多维卷积
• 一般情况下,我们并不需要记录任意时刻的数据,而是以一定的时间间隔
(也即频率)进行采样即可。对于离散信号,卷积操作可用如下表示:
当然,对于离散卷积的定义可推广到更高维度的空间上。例如,二维的公式
可表示为公式:
知
识
讲
解
生活中的卷积
• 在一根铁丝某处不停地弯曲,假设发热函数是f(t),散热函数是g(t),此时此
刻的温度就是f(t) 跟g(t) 的卷积
• 在一个特定环境下,发声体的声源函数是f(t),该环境下对声源的反射效应函
数是g(t),那么在这个环境下感受到的声音就是f(t) 的和g(t) 的卷积
• 记忆也是一种卷积
卷积神经网络
知
识
讲
解
全连接神经网络的局限
• 之前介绍的神经网络,相邻层所有神经元之间都有连接,这称为全连接
(fully-connected)。全连接神经网络有以下几个问题:
1)未考虑数据的“形状”,会破坏数据空间结构。
例如,输入数据是图像时,图像通常是高长通道
方向上的3维形状。但是,向全连接层输入时,需
要将3维数据拉平为1维数据。
2)全连接网络层次深度受限,一般不超过七层。
3)全连接网络参数量庞大,需要降低参数量。
知
识
讲
解
什么是卷积神经网络
• 卷积神经网络(Convolutional Neural Network,CNN)针对全连接网络
的局限做出了修正,加入了卷积层(Convolution层)和池化层(Pooling
层)。
知
识
讲
解
卷积神经网络的用途
• CNN被广泛应用于图像识别、语音识别等各种场合,在图像识别的比赛中,
基于深度学习的方法几乎都以CNN为基础(比如,AlexNet、VGGNet、
Google Inception Net及微软的ResNet等)上。近几年深度学习大放异彩,
CNN功不可没。
知
识
讲
解
卷积运算
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
输入数据
滤波器(卷积核)
输出数据
• 单通道、二维卷积运算示例
知
识
讲
解
卷积运算(续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
输入数据
滤波器(卷积核)
输出数据
• 单通道、二维卷积运算示例
知
识
讲
解
卷积运算(续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
输入数据
滤波器(卷积核)
输出数据
知
识
讲
解
卷积运算(续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
输入数据
滤波器(卷积核)
输出数据
知
识
讲
解
卷积运算(续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
偏置
知
识
讲
解
卷积运算(续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
知
识
讲
解
卷积运算(续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
知
识
讲
解
卷积运算(续7)
• 卷积运算输出矩阵大小计算公式
其中,输入大小为(H, W),滤波器大小为(FH, FW),输出大小为(OH, OW),填
充为P,步幅为S。例如:输入大小(28,31);填充2;步幅3;滤波器大小
(5,5),则输出矩阵大小为:
知
识
讲
解
卷积运算(续8)
• 多通道卷积会按通道进行输入数据和滤波器的卷积运算,并将结果相加,
从而得到输出
知
识
讲
解
卷积运算(续9)
• 多通道、多卷积核卷积
ü
每个通道先与第一组卷积核执行卷
积,然后多通道结果叠加,产生一
个输出
ü
每个通道与下一组卷积核执行卷积,
产生另一个输出
ü
有多少组卷积核,就有多少个通道
输出(如右图,两组卷积核,产生
两个通道的输出数据)
知
识
讲
解
卷积运算的效果
• 通过卷积运算,能对输入数据起到加强或平滑效果。在图像处理中,通过选取
合适的卷积核(或称算子),可以对图像进行锐化、去噪、模糊、加强边沿。
知
识
讲
解
卷积运算的效果(续1)
• 卷积运算能提取深层次复杂特征
纹理相似性
复杂环境下提取主体
知
识
讲
解
卷积运算的效果(续2)
• 卷积运算能提取深层次复杂特征
形态变化
无关场景,卷积效果集中于草地背景
课
堂
练
习
案例2:
图像卷积运算
课
堂
练
习
案例2:
图像卷积运算(续)
知
识
讲
解
卷积神经网络结构
• 总体结构
通常情况下,卷积神经网络由若干个卷积层(Convolutional Layer)、激活
层(Activation Layer)、池化层(Pooling Layer)及全连接层(Fully
Connected Layer)组成。
卷
积
层
激
活
层
池
化
层
卷
积
层
激
活
层
池
化
层
全
连
接
层
输出
知
识
讲
解
卷积神经网络结构(续1)
• 卷积层
它是卷积神经网络的核心所在,
通过卷积运算,达到降维处理和提取特征两个
重要目的
知
识
讲
解
卷积神经网络结构(续2)
• 激活层
其作用在于将前一层的线性输出,通过非线性的激活函数进行处理,这样用
以模拟任意函数,从而增强网络的表征能力。前面章节中介绍的激活函数,
如挤压函数Sigmoid也是可用的,但效果并不好。在深度学习领域,ReLU
(Rectified-Linear Unit,修正线性单元)是目前使用较多的激活函数,主
要原因是它收敛更快,次要原因在于它部分解决了梯度消失问题。
知
识
讲
解
卷积神经网络结构(续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
知
识
讲
解
卷积神经网络结构(续4)
• 池化层计算
Ø
对于每个输入矩阵,我们将其切割成若干大小相等的正方形小块,
对每一个区块取最大值或者平均值,并将结果组成一个新的矩阵
Ø
Max池化:对各个参与池化计算的区域取最大值,形成的新矩阵。
在图像识别领域,主要使用Max池化
Ø
Average池化:对各个参与池化计算的区域计算平均值
知
识
讲
解
卷积神经网络结构(续5)
• 池化层的特征
Ø
没有要学习的参数。
池化层和卷积层不同,没有要学习的参数。池化只是从目标区
域中取最大值(或者平均值),所以不存在要学习的参数
Ø
通道数不发生变化。
经过池化运算,输入数据和输出数据的通道数不会发生变化
Ø
对微小的位置变化具有鲁棒性(健壮)。
输入数据发生微小偏差时,池化仍会返回
相同的结果
知
识
讲
解
卷积神经网络结构(续6)
• 全连接层
Ø
这个网络层相当于多层感知机(Multi-Layer Perceptron,简称MLP),
其
在整个卷积神经网络中起到分类器的作用
Ø
通过前面多个“卷积-激活-池化”层的反复处理,待处理的数据特性已有
了显著提高:一方面,输入数据的维度已下降到可用传统的前馈全连接
网络来处理了;另一方面,此时的全连接层输入的数据已不再是“泥沙
俱下、鱼龙混杂”,而是经过反复提纯过的结果,因此输出的分类品质
要高得多。
经典CNN介绍
知
识
讲
解
经典CNN介绍(LeNet)
• 结构
LeNet是 Yann LeCun在1998年提出,用于解决手写数字识别的视觉任务。自
那时起,CNN的最基本的架构就定下来了:卷积层、池化层、全连接层。
知
识
讲
解
典型CNN介绍(LeNet)
• 主要参数
– 输入:输入32*32大小单通道图像
– 两个“卷积-池化层”
– 第一个全连接层神经元数目为500,再接激活函数
– 第二个全连接层神经元数目为10,得到10维的特征向量,用于10个数字的分
类训练,送入softmaxt分类,得到分类结果的概率
知
识
讲
解
典型CNN介绍(AlexNet)
• AlexNet是2012年ImageNet竞赛冠军获得者Hinton和他的学生Alex Krizhevsky设计的,
把CNN的基本原理应用到了很深很宽的网络中。其特点有
ü
使用ReLU作为激活函数,并验证其效果在较深的网络超过了Sigmoid,成功解决了Sigmoid在网络较深
时的梯度弥散问题
ü
使用Dropout(丢弃学习)随机忽略一部分神经元防止过拟合
ü
在CNN中使用重叠的最大池化。此前CNN中普遍使用平均池化,AlexNet全部使用最大池化,避免平均
池化的模糊化效果
ü
提出了LRN(Local Response Normalization,局部正规化)层,对局部神经元的活动创建竞争机制,
使得其中响应比较大的值变得相对更大,并抑制其他反馈较小的神经元,增强了模型的泛化能力
ü
使用CUDA加速深度卷积网络的训练,利用GPU强大的并行计算能力,处理神经网络训练时大量的矩阵
运算
知
识
讲
解
典型CNN介绍(AlexNet)
• 网络结构
知
识
讲
解
典型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
知
识
讲
解
典型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的网络)
知
识
讲
解
典型CNN介绍(VGG)
• 主要参数
ü
网络深度:16~19层
ü
5组卷积-池化层,3个全连接层
ü
三个全连接层,前两层都有4096通道,第三层共1000路及代表1000个标签
类别;最后一层为softmax层
ü
所有卷积层有相同的配置,即卷积核大小为3x3,步长为1,填充为1
ü
池化层区域大小2x2,步长为2
知
识
讲
解
典型CNN介绍(VGG)
• 模型结构
知
识
讲
解
典型CNN介绍(GoogLeNet)
• GoogLeNet
请参考论文:
https://arxiv.org/pdf/1409.4842.pdf
知
识
讲
解
典型CNN介绍(ResNet)
• 介绍
ü
ResNet是ILSVRC 2015大赛冠军,在ImageNet测试集上取得了3.57%的错误率
ü
更深的网络结构,采用残差结构来缓解深度CNN的梯度消失问题
知
识
讲
解
典型CNN介绍(ResNet)
• 结构
小结
• 本章节介绍了卷积神经网络(CNN),CNN是深度学习的主要模型,
在解决复杂工程问题中表现出了良好的性能。卷积神经网络主要由以
下几层构成:
ü
卷积层。
执行卷积运算
ü
激活层。
对卷积结果执行激活函数运算
ü
池化层。
降低数据规模,防止过拟合
ü
全连接层。
执行输出计算