logo资料库

卷积神经网络结构原理详细介绍.pdf

第1页 / 共23页
第2页 / 共23页
第3页 / 共23页
第4页 / 共23页
第5页 / 共23页
第6页 / 共23页
第7页 / 共23页
第8页 / 共23页
资料共23页,剩余部分请下载后查看
第五章 卷积神经网络 一切都应该尽可能地简单,但不能过于简单。 — 艾伯特· 爱因斯坦 卷积神经网络(convolutional neural network,CNN 或 ConvNet)是一种 具有局部连接、权重共享等特性的深层前馈神经网络。 卷积神经网络最早是主要用来处理图像信息。如果用全连接前馈网络来处 理图像时,会存在以下两个问题: (1)参数太多: 如果输入图像大小为100× 100× 3(即图像高度为100,宽 度为100,3 个颜色通道:RGB)。在全连接前馈网络中,第一个隐藏层的每个神 经元到输入层都有100× 100× 3 = 30, 000 个相互独立的连接,每个连接都对应 一个权重参数。随着隐藏层神经元数量的增多,参数的规模也会极具增加。这 会导致整个神经网络的训练效率会非常低,也很容易出现过拟合。 (2)局部不变性特征:自然图像中的物体都具有局部不变性特征,比如在 尺度缩放、平移、旋转等操作不影响其语义信息。而全连接前馈网络很难提取 这些局部不变特征,一般需要进行数据增强来提高性能。 卷积神经网络是受生物学上感受野的机制而提出。感受野(receptive field) 主要是指听觉、视觉等神经系统中一些神经元的特性,即神经元只接受其所支 配的刺激区域内的信号。在视觉神经系统中,视觉皮层中的神经细胞的输出依 赖于视网膜上的光感受器。视网膜上的光感受器受刺激兴奋时,将神经冲动信 号传到视觉皮层,但不是所有视觉皮层中的神经元都会接受这些信号。一个神 经元的感受野是指视网膜上的特定区域,只有这个区域内的刺激才能够激活该
94 2017 年 11 月 28 日 第五章 卷积神经网络 David Hubel 和 Torsten Wiesel 在此方面的贡献, 与 1981 年获得诺贝尔生 理学或医学奖。 神经元。David Hubel 和 Torsten Wiesel 在 1959 年发现,在猫的初级视觉皮层 中存在两种细胞:简单细胞和复杂细胞,这两种细胞承担不同层次的视觉感知 功能 [Hubel and Wiesel, 1959, 1962]。简单细胞的感受野是狭长型的,每个简 单细胞只对感受野中特定角度(orientation)的光带敏感,而复杂细胞对于感受 野中以特定方向(direction)移动的某种角度(orientation)的光带敏感。 受此启发,1980 年,福岛邦彦(Kunihiko Fukushima)提出了一种带卷积和 子采样操作的多层神经网络:新知机(Neocognitron)[Fukushima, 1980]。但当 时还没有反向传播算法,新知机采用了无监督学习的方式来训练。Yann LeCun 在 1989 年将反向传播算法引入了卷积神经网络 [LeCun et al., 1989],并在手写 体数字识别上取得了很大的成功 [LeCun et al., 1998]。 目前的卷积神经网络一般是由卷积层、汇聚层和全连接层交叉堆叠而成的 全连接层一般在卷积网 络的最顶层。 前馈神经网络,使用反向传播算法进行训练。卷积神经网络有三个结构上的特 性:局部连接,权重共享以及子采样。这些特性使得卷积神经网络具有一定程 度上的平移、缩放和旋转不变性。和前馈神经网络相比,卷积神经网络的参数 更少。 卷积神经网络主要使用在图像和视频分析的各种任务上,比如图像分类、人 脸识别、物体识别、图像分割等,其准确率一般也远远超出了其它的神经网络 模型。近年来卷积神经网络也广泛地应用到自然语言处理、推荐系统等领域。 5.1 卷积 卷积(convolution),也叫摺积,是分析数学中一种重要的运算。在信号 这里我们只考虑离散序 列的情况。 处理或图像处理中,经常使用一维或二维卷积。 一维卷积 一维卷积经常用在信号处理中,用于计算信号的延迟累积。假设一 个信号发生器每个时刻 t 产生一个信号 xt,其信息的衰减率为 fk,即在 k − 1 个 时间步长后,信息为原来的 fk 倍。假设 f1 = 1, f2 = 1/2, f3 = 1/4,那么在时 刻 t 收到的信号 yt 为当前时刻产生的信息和以前时刻延迟信息的叠加, yt = 1 × xt + 1/2 × xt−1 + 1/4 × xt−2 = f1 × xt + f2 × xt−1 + f3 × xt−2 (5.1) (5.2) 邱锡鹏:《神经网络与深度学习》 https://nndl.github.io/
5.1 卷积 2017 年 11 月 28 日 95 图 5.1: 一维卷积示例。滤波器为[−1, 0, 1],连接边上的数字为滤波器中的权重。 3∑ k=1 = wk · xt−k+1. (5.3) 我们把 f1, f2,··· 称为滤波器(filter)或卷积核(convolution kernel)。假 设滤波器长度为 m,它和一个信号序列 x1, x2,··· 的卷积为 m∑ yt = fk · xt−k+1, 信号序列 x 和滤波器 w 的卷积定义为 k=1 y = w ⊗ x, 其中⊗ 表示卷积运算。 (5.4) (5.5) 一般情况下滤波器的长度 m远小于信号序列长度 n。当滤波器fk = 1/m, 1 ≤ k ≤ m 时,卷积相当于信号序列的移动平均。图5.4给出了一维卷积示例。 二维卷积 卷积也经常用在图像处理中。因为图像为一个两维结构,所以需要 将一维卷积进行扩展。给定一个图像 X ∈ RM×N ,和滤波器 W ∈ Rm×n,一般 m << M, n << N ,其卷积为 m∑ n∑ yij = wuv · xi−u+1,j−v+1. (5.6) u=1 v=1 图5.2给出了二维卷积示例。常用的均值滤波(mean filter)就是当前位置 的像素值设为滤波器窗口中所有像素的平均值,也就是 fuv = 1 mn 。 邱锡鹏:《神经网络与深度学习》 https://nndl.github.io/ 112-11-2110-1-110-1210-1110-1110-10
96 2017 年 11 月 28 日 第五章 卷积神经网络 图 5.2: 二维卷积示例。 在图像处理中,卷积经常作为特征提取的有效方法。一幅图像在经过卷积 操作后得到结果称为特征映射(feature map)。图5.3给出在图像处理中几种常 用的滤波器,以及其对应的特征映射。 5.1.1 互相关 在机器学习和图像处理领域,卷积的主要功能是在一个图像(或某种特征) 上滑动一个卷积核(即滤波器),通过卷积操作得到一组新的特征。在计算卷积 翻转就是从两个维度(从 上到下、从左到右)颠倒 次序,即旋转 180 度。 互相关和卷积的区别也 可以理解为图像是否进 行翻转。 的过程中,需要进行卷积核翻转。在具体实现上,一般会以互相关操作来代替 卷积,从而会减少一些不必要的操作或开销。互相关(cross-correlation)是一 个衡量两个序列相关性的函数,通常是用滑动窗口的点积计算来实现。给定一 个图像 X ∈ RM×N 和卷积核 W ∈ Rm×n,它们的互相关为 m∑ n∑ yij = wuv · xi+u−1,j+v−1. (5.7) u=1 v=1 和公式(5.6) 对比可知,互相关和卷积的区别在于卷积核仅仅是否进行翻转。因 此互相关也可以称为不翻转卷积。 在神经网络中使用卷积是为了进行特征抽取,卷积核是否进行翻转和其特 征抽取的能力无关。特别是当卷积核是可学习的参数时,卷积和互相关是等价 的。因此,为了实现上(或描述上)的方便起见,我们用互相关来代替卷积。事 实上,很多深度学习工具中卷积操作其实都是互相关操作。 公式 (5.7) 可以表述为 邱锡鹏:《神经网络与深度学习》 Y = W ⊗ X, (5.8) https://nndl.github.io/ 102-112-1101111-3112-10111011001000-100=-12002-204-1001000100
5.1 卷积 2017 年 11 月 28 日 97 图 5.3: 图像处理中几种常用的滤波器示例。最上面的滤波器为高斯滤波器,中 间和最下面的过滤器为边缘检测滤波器。 其中 Y ∈ RM−m+1,N−n+1 为输出矩阵。 5.1.2 卷积的变种 在卷积的标准定义基础上,还可以引入滤波器的滑动步长和零填充来增加 卷积的多样性,可以更灵活地进行特征抽取。 滤波器的步长(stride)是指滤波器在滑动时的时间间隔。图5.4a给出了步 长为 2 的卷积示例。 零填充(zero padding)是在输入向量两端进行补零。图5.4b给出了输入的 邱锡鹏:《神经网络与深度学习》 https://nndl.github.io/ 原始图像0101-410101161811618141811618116011-101-1-10滤波器===输出图像
98 2017 年 11 月 28 日 第五章 卷积神经网络 (a) 步长 s = 2 (b) 零填充 p = 1 图 5.4: 卷积的步长和零填充。 两端各补一个零后的卷积示例。 假设卷积层的输入神经元个数为 n,卷积大小为 m,步长(stride)为 s,输 入神经元两端各填补 p 个零(zero padding),那么该卷积层的神经元数量为 (n − m + 2p)/s + 1。 一般常用的卷积有一下三类: • 窄卷积(narrow convolution):步长 s = 1,两端不补零 p = 0,卷积后输 通常可以通过选择合适 的卷积大小以及步长来 使得 (n− m + 2p)/s + 1 为整数。 • 宽卷积(wide convolution):步长 s = 1,两端补零 p = m − 1,卷积后 出长度为 n − m + 1。 输出长度 n + m − 1。 • 等长卷积(equal-width convolution):步长 s = 1,两端补零 p = (m−1)/2, 卷积后输出长度 n。图5.4b就是一个等长卷积示例。 除了特别声明外,一般说的卷积默认为窄卷积。 邱锡鹏:《神经网络与深度学习》 https://nndl.github.io/ 112-11-31-110112-11-3100-1-12120-3
5.1 卷积 2017 年 11 月 28 日 99 5.1.3 卷积的数学性质 卷积有很多很好的数学性质。在本节中,我们介绍一些二维卷积的数学性 质,但是这些数学性质同样可以适用到一维卷积的情况。 交换性 如果不限制两个卷积信号的长度,卷积是具有交换性的,即x⊗ y = y⊗ x。 当输入信息和卷积核有固定长度时,它们的宽卷积依然具有交换性。 对于两维图像 X ∈ RM×N 和卷积核 W ∈ Rm×n,对图像 X 的两个维度进 行零填充,两端各补 m − 1 和 n − 1 个零,得到全填充(full padding)的图像 ˜X ∈ R(M+2m−2)×(N+2n−2)。 图像 X 和卷积核 W 的宽卷积(wide convolution)定义为 ˜Y = W ˜⊗X = W ⊗ ˜X, W ˜⊗X = X ˜⊗W. 其中 ˜⊗ 为宽卷积操作。 宽卷积具有交换性,即 导数 (5.9) (5.10) (5.11) 假设 Y = W ⊗ X,其中 X ∈ RM×N ,W ∈ Rm×n,函数 f(Y ) ∈ R 为一个 标量函数,则 ∂f(Y ) ∂wuv = = = M−m+1∑ M−m+1∑ M−m+1∑ i=1 i=1 N−n+1∑ N−n+1∑ N−n+1∑ j=1 j=1 i=1 j=1 ∂yij ∂wuv ∂f(Y ) ∂yij xi+u−1,j+v−1 ∂f(Y ) ∂yij ∂f(Y ) ∂yij xu+i−1,v+j−1 (5.12) (5.13) (5.14) 邱锡鹏:《神经网络与深度学习》 https://nndl.github.io/
100 2017 年 11 月 28 日 第五章 卷积神经网络 从公式 (5.14) 可以看出,f(Y ) 关于 W 的偏导数为 X 和 ∂f(Y ) ∂Y 的卷积 ∂f(Y ) ∂W ⊗ X. ∂Y = ∂f(Y ) N−n+1∑ N−n+1∑ j=1 ∂yij ∂xst ∂f(Y ) ∂yij 同理得到, ∂f(Y ) ∂xst M−m+1∑ M−m+1∑ i=1 = = ws−i+1,t−j+1 i=1 j=1 (5.15) (5.16) (5.17) ∂f(Y ) ∂yij , 其中当(s− i + 1) < 1,或(s− i + 1) > m,或(t− j + 1) < 1,或(t− j + 1) > n 时,ws−i+1,t−j+1,即相当于对 W 进行了 p = (M − m, N − n) 的零填充。 从公式(5.17) 可以看出,f(Y ) 关于 X 的偏导数为 W 和 ∂f(Y ) ∂Y 的宽卷积。公 式 (5.17) 中的卷积是真正的卷积而不是互相关,为了一致性,我们用互相关的 “卷积”,即 ∂f(Y ) ∂X = rot180( ∂f(Y ) )˜⊗W = rot180(W)˜⊗ ∂f(Y ) ∂Y ∂Y (5.18) (5.19) . 5.2 卷积神经网络 5.2.1 用卷积来代替全连接 在全连接前馈神经网络中,如果第 l 层有 nl 个神经元,第 l − 1 层有 n(l−1) 个神经元,连接边有 n(l) × n(l−1) 个,也就是权重矩阵有 n(l) × n(l−1) 个参数。 当 m 和 n 都很大时,权重矩阵的参数非常多,训练的效率会非常低。 如果采用卷积来代替全连接,第 l 层的净输入z(l) 为第 l − 1 层活性值a(l−1) 和滤波器 w(l) ∈ Rm 的卷积,即 z(l) = w(l) ⊗ a(l−1) + b(l), (5.20) 其中滤波器 w(l) 为权重向量,b(l) ∈ Rnl−1 为偏置。 根据卷积的定义,卷积层有两个很重要的性质: 邱锡鹏:《神经网络与深度学习》 https://nndl.github.io/
分享到:
收藏