卷积神经网络(CNN)知识点总结

1 卷积

1.1 卷积的定义

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

1.1.1 一维卷积

一维卷积经常用在信号处理中,用于计算信号的延迟累积.假设一个信号发生器每个时刻𝑡 产生一个信号 x t x_{t} xt,其信息的衰减率为 w k w_{k} wk,即在𝑘 − 1 个时间步长后,信息为原来的 w k w_{k} wk 倍.假设 w 1 w_{1} w1 = 1, w 2 w_{2} w2 = 1/2, w 3 w_{3} w3 = 1/4,那么在时刻𝑡 收到的信号 y t y_{t} yt 为当前时刻产生的信息和以前时刻延迟信息的叠加
在这里插入图片描述
我们把𝑤1, 𝑤2, ⋯称为滤波器(Filter)卷积核(Convolution Kernel) 假设滤波器长度为𝐾,它和一个信号序列𝑥1, 𝑥2, ⋯ 的卷积为
在这里插入图片描述
为了简单起见,这里假设卷积的输出𝑦𝑡 的下标𝑡 从𝐾 开始.信号序列𝒙 和滤波器𝒘 的卷积定义为

在这里插入图片描述
其中∗ 表示卷积运算.一般情况下滤波器的长度𝐾 远小于信号序列𝒙 的长度.
我们可以设计不同的滤波器来提取信号序列的不同特征.比如,当令滤波器𝒘 = [1/𝐾, ⋯ , 1/𝐾] 时,卷积相当于信号序列的简单移动平均(窗口大小为𝐾).移动平均(Moving Average,MA)是在分析时间序列数据时的一种简单平滑技术,能有效地消除数据中的随机波动.

当令滤波器𝒘 = [1, −2, 1] 时,可以近似实现对信号序列的二阶微分,即
𝑥″(𝑡) = 𝑥(𝑡 + 1) + 𝑥(𝑡 − 1) − 2𝑥(𝑡).
这里将𝑥(𝑡) = 𝑥𝑡 看作关于时间𝑡 的函数.
下图给出了两个滤波器的一维卷积示例.可以看出,两个滤波器分别提取了输入序列的不同特征.滤波器𝒘 = [1/3, 1/3, 1/3] 可以检测信号序列中的低频信息,而滤波器𝒘 = [1, −2, 1] 可以检测信号序列中的高频信息.这里的高频和低频指信号变化的强烈程度.
在这里插入图片描述
下层为输入信号序列,上层为卷积结果.连接边上的数字为滤波器中的权重.左图的卷积结果为近似值.

1.1.2 二维卷积

卷积也经常用在图像处理中.因为图像为一个二维结构,所以需要将一维卷积进行扩展.给定一个图像𝑿 ∈ R M × N R^{M\times N} RM×N 和一个滤波器𝑾 ∈ R U × V R^{U\times V} RU×V,一般𝑈 << 𝑀, 𝑉 << 𝑁,其卷积为
在这里插入图片描述
为了简单起见,这里假设卷积的输出𝑦𝑖𝑗 的下标(𝑖, 𝑗) 从(𝑈, 𝑉) 开始.
输入信息𝑿 和滤波器𝑾 的二维卷积定义为
在这里插入图片描述
其中∗ 表示二维卷积运算.下图给出了二维卷积示例.
在这里插入图片描述
(此处的卷积应是上下与左右旋转后的卷积核进行卷积操作后得到的特征映射
在图像处理中常用的均值滤波(Mean Filter)就是一种二维卷积,将当前位置的像素值设为滤波器窗口中所有像素的平均值。
在图像处理中,卷积经常作为特征提取的有效方法.一幅图像在经过卷积操作后得到结果称为特征映射(Feature Map).下图给出在图像处理中几种常用的滤波器,以及其对应的特征映射.图中最上面的滤波器是常用的高斯滤波器,可以用来对图像进行平滑去噪;中间和最下面的滤波器可以用来提取边缘特征.
在这里插入图片描述

1.2 互相关

在机器学习和图像处理领域,卷积的主要功能是在一个图像(或某种特征)上滑动一个卷积核(即滤波器),通过卷积操作得到一组新的特征.在计算卷积的过程中,需要进行卷积核翻转.在具体实现上,一般会以互相关操作来代替卷积,从而会减少一些不必要的操作或开销.
互相关(Cross-Correlation)是一个 衡量两个序列相关性的函数,通常是用滑动窗口的点积计算来实现.给定一个图像𝑿 ∈ R M × N R^{M\times N} RM×N 和卷积核𝑾 ∈ R U × V R^{U\times V} RU×V,它们的互相关为
在这里插入图片描述

互相关和卷积的区别仅仅在于卷积核是否进行翻转.因
此互相关也可以称为不翻转卷积.互相关还可以表示成下式
在这里插入图片描述
在神经网络中使用卷积是为了进行特征抽取,卷积核是否进行翻转和其特征抽取的能力无关.特别是当卷积核是可学习的参数时,卷积和互相关在能力上是等价的.因此,为了实现上(或描述上)的方便起见,我们用互相关来代替卷积.事实上,很多深度学习工具中卷积操作其实都是互相关操作.

1.4 卷积的数学性质

1.4.1 交换性

如果不限制两个卷积信号的长度,真正的翻转卷积是具有交换性的,即𝒙 ∗𝒚 = 𝒚 ∗ 𝒙.对于互相关的“卷积”,也同样具有一定的“交换性”.
我们先介绍宽卷积(Wide Convolution)的定义.给定一个二维图像𝑿 ∈ R M × N R^{M\times N} RM×N和一个二维卷积核𝑾 ∈ R U × V R^{U\times V} RU×V ,对图像𝑿 进行零填充,两端各补𝑈 − 1 和𝑉 − 1个零,得到全填充(Full Padding)的图像𝑿̃ ∈ R M + 2 U − 2 × N + 2 V − 2 R^{M+2U-2\times N+2V-2} RM+2U2×N+2V2).图像𝑿 和卷积核𝑾 的宽卷积定义为
在这里插入图片描述
当输入信息和卷积核有固定长度时,它们的宽卷积依然具有交换性
在这里插入图片描述
其中rot180(⋅) 表示旋转180 度

1.4.2 导数

假设𝒀 = 𝑾 ⊗ 𝑿,其中𝑿 ∈ R M × N R^{M\times N} RM×N,𝑾 ∈ R U × V R^{U\times V} RU×V,𝒀 ∈ R M − U + 1 × N − V + 1 R^{M-U+1\times N-V+1} RMU+1×NV+1,函数𝑓(𝒀) ∈ R 为一个标量函数,则
在这里插入图片描述
从上式可以看出,𝑓(𝒀) 关于𝑾 的偏导数为𝑿 和 ∂ f ( Y ) ∂ Y \frac{\partial f(Y) }{\partial Y} Yf(Y)的卷积其中当(𝑠 − 𝑖 + 1) < 1,或(𝑠 − 𝑖 + 1) > 𝑈,或(𝑡 − 𝑗 + 1) < 1,或(𝑡 − 𝑗 + 1) > 𝑉时, w s − i + 1 , t − j + 1 = 0 w_{s-i+1,t-j+1}=0 wsi+1,tj+1=0.即相当于对𝑾 进行了𝑃 = (𝑀 − 𝑈, 𝑁 − 𝑉) 的零填充.
在这里插入图片描述
同理得到,𝑓(𝒀) 关于X的偏导数为W和 ∂ f ( Y ) ∂ Y \frac{\partial f(Y) }{\partial Y} Yf(Y)的宽卷积.

1.5 池化函数

池化函数使用某一位置的相邻输出的总体统计特征来代替网络在该位置的输出。例如,最大池化(max pooling)函数 (Zhou and Chellappa, 1988) 给出相邻矩形区域内的最大值。其他常用的池化函数包括相邻矩形区域内的平均值、L 2 范数以及基于据中心像素距离的加权平均函数。
不管采用什么样的池化函数,当输入作出少量平移时,池化能够帮助输入的表示近似 不变(invariant)。对于平移的不变性是指当我们对输入进行少量平移时,经过池化函数后的大多数输出并不会发生改变。下图用了一个例子来说明这是如何实现的。局部平移不变性是一个很有用的性质,尤其是当我们关心某个特征是否出现而不关心它出现的具体位置时。例如,当判定一张图像中是否包含人脸时,我们并不需要知道眼睛的精确像素位置,我们只需要知道有一只眼睛在脸的左边,有一只在右边就行了。但在一些其他领域,保存特征的具体位置却很重要。例如当我们想要寻找一个由两条边相交而成的拐角时,我们就需要很好地保存边的位置来判定它们是否相交。
在这里插入图片描述

1.6 小结

该部分主要解释了卷积的定义以及卷积操作和卷积数学性质,最后介绍了池化函数。
重要概念
卷积核
特征映射
互相关
局部平移不变性

2 卷积神经网络

2.1 卷积的运算

密集连接层和卷积层的根本区别在于,Dense层从输入特征空间中学到的是全局模式,而卷积层学到的是局部模式,对于图像来说,学到的就是在输入图像的二维小窗口中发现的模式

在这里插入图片描述
这个重要特性使卷积神经网络具有以下两个有趣的性质:

  • 卷积神经网络学到的模式具有平移不变性(translation invariant)卷积神经网络在图像右下角学到某个模式之后,它可以在任何地方识别这个模式,比如左上角。对于密集连接网络来说,如果模式出现在新的位置,它只能重新学习这个模式。这使得卷积神经网络在处理图像时可以高效利用数据(因为视觉世界从根本上具有平移不变性),它只需要更少的训练样本就可以学到具有泛化能力的数据表示。
  • 卷积神经网络可以学到模式的空间层次结构(spatial hierarchies of patterns),见下图。
    第一个卷积层将学习较小的局部模式(比如边缘),第二个卷积层将学习由第一层特征组成的更大的模式,以此类推。这使得卷积神经网络可以有效地学习越来越复杂、越来越抽象的视觉概念(因为视觉世界从根本上具有空间层次结构)。
    在这里插入图片描述
    卷积由以下两个关键参数所定义。
  • 从输入中提取的图块尺寸:这些图块的大小通常是 3×3 或 5×5。
  • 输出特征图的深度:卷积所计算的过滤器(卷积核)的数量。
    卷积的工作原理:在3D 输入特征图上滑动(slide)这些3×3 或5×5 的窗口,在每个可能的位置停止并提取周围特征的3D 图块[形状为(window_height, window_width, input_depth)]。然后每个3D 图块与学到的同一个权重矩阵[叫作卷积核(convolution kernel)]做张量积,转换成形状为(output_depth,) 的1D 向量。然后对所有这些向量进行空间重组,使其转换为形状为(height, width,output_depth) 的3D 输出特征图。输出特征图中的每个空间位置都对应于输入特征图中的相同位置(比如输出的右下角包含了输入右下角的信息)。举个例子,利用3×3 的窗口,向量output[i, j, :] 来自3D 图块input[i-1:i+1,j-1:j+1, :]。整个过程详见下图

在这里插入图片描述
注意,输出的宽度和高度可能与输入的宽度和高度不同。不同的原因可能有两点。

  • 边界效应,可以通过对输入特征图进行填充来抵消。
  • 使用了步幅(stride),稍后会给出其定义。

2.1.1 边界效应与填充

假设有一个5×5 的特征图(共25 个方块)。其中只有9 个方块可以作为中心放入一个3×3 的窗口,这9 个方块形成一个3×3 的网格(见下图)。因此,输出特征图的尺寸是3×3。它比输入尺寸小了一点,在本例中沿着每个维度都正好缩小了2 个方块。
在这里插入图片描述
如果你希望输出特征图的空间维度与输入相同,那么可以使用填充(padding)。填充是在输入特征图的每一边添加适当数目的行和列,使得每个输入方块都能作为卷积窗口的中心。

在这里插入图片描述

2.1.2 卷积步幅

影响输出尺寸的另一个因素是步幅的概念。目前为止,对卷积的描述都假设卷积窗口的中心方块都是相邻的。但两个连续窗口的距离是卷积的一个参数,叫作步幅,默认值为1。也可以使用步进卷积(strided convolution),即步幅大于1 的卷积。在下图 中,你可以看到用步幅为2 的3×3 卷积从5×5 输入中提取的图块(无填充)
在这里插入图片描述
步幅为2 意味着特征图的宽度和高度都被做了2 倍下采样(除了边界效应引起的变化)。虽然步进卷积对某些类型的模型可能有用,但在实践中很少使用。熟悉这个概念是有好处的。为了对特征图进行下采样,我们不用步幅,而是通常使用最大池化(max-pooling)运算。

2.2 卷积层

卷积层的作用是提取一个局部区域的特征,不同的卷积核相当于不同的特征提取器.由于卷积网络主要应用在图像处理上,而图像为二维结构,因此为了更充分地利用图像的局部信息,通常将神经元组织为三维结构的神经层,其大小为高度𝑀× 宽度𝑁× 深度𝐷,由𝐷 个𝑀 × 𝑁 大小的特征映射构成.

2.3 池化层

池化层(Pooling Layer)也叫子采样层(Subsampling Layer),其作用是进行特征选择,降低特征数量,从而减少参数数量.卷积层虽然可以显著减少网络中连接的数量,但特征映射组中的神经元个数并没有显著减少.如果后面接一个分类器,分类器的输入维数依然很高,很容
易出现过拟合.为了解决这个问题,可以在卷积层之后加上一个池化层,从而降低特征维数,避免过拟合。
池化(Pooling)是指对每个区域进行下采样(Down Sampling)得到一个值,作为这个区域的概括.
常用的池化函数有两种:
(1) 最大池化(Maximum Pooling 或Max Pooling):对于一个区域,选择这个区域内所有神经元的最大活性值作为这个区域的表示,即

在这里插入图片描述
(2) 平均池化(Mean Pooling):一般是取区域内所有神经元活性值的平均值,即
在这里插入图片描述

典型的汇聚层是将每个特征映射划分为2 × 2 大小的不重叠区域,然后使用最大汇聚的方式进行下采样.汇聚层也可以看作一个特殊的卷积层,卷积核大小为𝐾 × 𝐾,步长为𝑆 × 𝑆,卷积核为max 函数或mean 函数.过大的采样区域会急剧减少神经元的数量,也会造成过多的信息损失.

2.4 全连接层

全连接层(fully connected layers,FC)在整个卷积神经网络中起到“分类器”的作用。如果说卷积层、池化层和激活函数层等操作是将原始数据映射到隐层特征空间的话,全连接层则起到将学到的“分布式特征表示”映射到样本标记空间的作用。在实际使用中,全连接层可由卷积操作实现:
对前层是全连接的全连接层可以转化为卷积核为1x1的卷积;而前层是卷积层的全连接层可以转化为卷积核为hxw的全局卷积,h和w分别为前层卷积结果的高和宽。
全连接的核心操作就是矩阵向量乘积 y = Wx

2.5 卷积网络的整体结构

一个典型的卷积网络是由卷积层、汇聚层、全连接层交叉堆叠而成.目前常用的卷积网络整体结构如图5.9所示.一个卷积块为连续𝑀 个卷积层和𝑏 个池化层(𝑀 通常设置为2 ∼ 5,𝑏 为0 或1).一个卷积网络中可以堆叠𝑁 个连续的卷积块,然后在后面接着𝐾 个全连接层(𝑁 的取值区间比较大,比如1 ∼ 100 或者更大;𝐾 一般为0 ∼ 2).
在这里插入图片描述
此外,由于卷积的操作性越来越灵活(比如不同的步长),池化层的作用也变得越来越小,因此目前比较流行的卷积网络中,汇聚层的比例正在逐渐降低,趋向于全卷积网络.

2.6 卷积神经网络特性

2.6.1 参数共享

参数共享(parameter sharing)是指在一个模型的多个函数中使用相同的参数。在传统的神经网络中,当计算一层的输出时,权重矩阵的每一个元素只使用一次,当它乘以输入的一个元素后就再也不会用到了。作为参数共享的同义词,我们可以说一个网络含有绑定的权重(tied weights) ,因为用于一个输入的权重也会被绑定在其他的权重上。 在卷积神经网络中, 核的每一个元素都作用在输入的每一位置上(是否考虑边界像素取决于对边界决策的设计) 。卷积运算中的参数共享保证了我们只需要学习一个参数集合,而不是对于每一位置都需要学习一个单独的参数集合。这虽然没有改变前向传播的运行时间(仍然是 O(k × n)) ,但它显著地把模型的存储需求降低至k个参数
参数共享的物理意义是使得卷积层具有平移等变性说,在猫的图片上先进行卷积,再向右平移x像素的输出,与先将图片向右平移x像素再进行卷积操作的输出结果是相等
在这里插入图片描述

2.6.2 稀疏交互

卷积网络具有稀疏交互(sparse interactions) (也叫做 稀疏连接(sparse connectivity)或者 稀疏权重(sparse weights) )的特征,表示每个输出神经元仅与前一层特定局部区域内的神经元存在连接权重。这是使核的大小远小于输入的大小来达到的。举个例子,当处理一张图像时,输入的图像可能包含成千上万个像素点,但是我们可以通过只占用几十到上百个像素点的核来检测一些小的有意义的特征,例如图像的边缘。这意味着我们需要存储的参数更少,不仅减少了模型的存储需求,而且提高了它的统计效率。这也意味着为了得到输出我们只需要更少的计算量。这些效率上的提高往往是很显著的。稀疏交互的图形化解释如下:
在这里插入图片描述
而对于对于全连接网络,任意一对输入与输出神经元之间都产生交互
在这里插入图片描述

2.7 小结

本节分别从卷积操作是如何作用于图像中提取特征的,整个卷积神经网络的构成,不同层的作用,以及卷积神经网络的特性来介绍了卷积神经网络。
重要概念
局部模式
边界效应与填充
步幅
步进卷积
最大池化
平均池化
卷积块
参数共享
稀疏交互

3 几种典型的卷积神经网络

3.1 LeNet-5

LeNet-5[LeCun et al., 1998] 虽然提出的时间比较早,但它是一个非常成功的神经网络模型.基于LeNet-5 的手写数字识别系统在20 世纪90 年代被美国很多银行使用,用来识别支票上面的手写数字.LeNet-5 的网络结构如下图所示
在这里插入图片描述
(汇聚层就是池化层)
LeNet-5 共有7 层,接受输入图像大小为32 × 32 = 1 024,输出对应10 个类别的得分.LeNet-5 中的每一层结构如下:
(1) C1层是卷积层,使用6个5×5的卷积核,得到6组大小为28×28 = 784的特征映射.因此,C1 层的神经元数量为6 × 784 = 4 704,可训练参数数量为6 × 25 + 6 = 156,连接数为156 × 784 = 122 304(包括偏置在内,下同).
(2) S2 层为汇聚层,采样窗口为2 × 2,使用平均汇聚,并使用一个非线性函数.神经元个数为6 ×14 × 14 = 1 176,可训练参数数量为6 × (1 + 1) = 12,连接数为6 × 196 × (4 + 1) = 5 880.
(3) C3 层为卷积层.LeNet-5 中用一个连接表来定义输入和输出特征映射之间的依赖关系.如图5.11所示,共使用60 个5 × 5 的卷积核,得到16 组大小为10 × 10 的特征映射.如果不使用连接表,则需要96 个5 × 5 的卷
积核.神经元数量为16 × 100 = 1 600,可训练参数数量为
(60 × 25) + 16 = 1 516,连接数为100 × 1 516 = 151 600.
(4) S4 层是一个汇聚层,采样窗口为2 × 2,得到16 个5 × 5 大小的特征映射,可训练参数数量为16 × 2 = 32,连接数为16 × 25 × (4 + 1) = 2 000.
(5) C5 层是一个卷积层,使用120 × 16 = 1 920 个5 × 5 的卷积核,得到120 组大小为1 × 1 的特征映射.C5 层的神经元数量为120,可训练参数数量为1 920 × 25 + 120 = 48 120,连接数为120 × (16 × 25 + 1) = 48 120.
(6) F6 层是一个全连接层,有84 个神经元,可训练参数数量为84 × (120 +1) = 10164.连接数和可训练参数个数相同,为10164.
(7) 输出层:输出层由10 个径向基函数(Radial Basis Function,RBF)组成.这里不再详述.
在这里插入图片描述

3.2 AlexNet

AlexNet[Krizhevsky et al., 2012] 是第一个现代深度卷积网络模型,其首次使用了很多现代深度卷积网络的技术方法,比如使用GPU 进行并行训练,采用了ReLU 作为非线性激活函数,使用Dropout 防止过拟合,使用数据增强来提高模型准确率等.AlexNet 赢得了2012 年ImageNet 图像分类竞赛的冠军.AlexNet 的结构如图5.12所示,包括5 个卷积层、3 个汇聚层和3 个全连接层(其中最后一层是使用Softmax 函数的输出层).因为网络规模超出了当时的单个GPU 的内存限制,AlexNet 将网络拆为两半,分别放在两个GPU 上,GPU 间只在某些层(比如第3 层)进行通信.
在这里插入图片描述
AlexNet 的输入为224 × 224 × 3 的图像,输出为1 000 个类别的条件概率,具体结构如下: 这里的卷积核使用四
维张量来描述.
(1) 第一个卷积层,使用两个大小为11 × 11 × 3 × 48 的卷积核,步长𝑆 = 4,零填充𝑃 = 3,得到两个大小为55 × 55 × 48 的特征映射组.
(2) 第一个汇聚层,使用大小为3 × 3 的最大汇聚操作,步长𝑆 = 2,得到两个27 × 27 × 48 的特征映射组.这里的汇聚操作是有重叠的,以提取更多的特征.
(3) 第二个卷积层,使用两个大小为5 × 5 × 48 × 128 的卷积核,步长𝑆 = 1,零填充𝑃 = 2,得到两个大小为27 × 27 × 128 的特征映射组.
(4) 第二个汇聚层,使用大小为3 × 3 的最大汇聚操作,步长𝑆 = 2,得到两个大小为13 × 13 × 128 的特征映射组.
(5) 第三个卷积层为两个路径的融合,使用一个大小为3 × 3 × 256 × 384的卷积核,步长𝑆 = 1,零填充𝑃 = 1,得到两个大小为13 × 13 × 192 的特征映射组.
(6) 第四个卷积层,使用两个大小为3 × 3 × 192 × 192 的卷积核,步长𝑆 = 1,零填充𝑃 = 1,得到两个大小为13 × 13 × 192 的特征映射组.
(7) 第五个卷积层,使用两个大小为3 × 3 × 192 × 128 的卷积核,步长𝑆 = 1,零填充𝑃 = 1,得到两个大小为13 × 13 × 128 的特征映射组.
(8) 第三个汇聚层,使用大小为3 × 3 的最大汇聚操作,步长𝑆 = 2,得到两个大小为6 × 6 × 128 的特征映射组.
(9) 三个全连接层,神经元数量分别为4 096、4 096 和1 000.此外,AlexNet 还在前两个汇聚层之后进行了局部响应归一化(Local Response Normalization,LRN)以增强模型的泛化能力.

3.3 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 的卷积相当于先进行一次特征抽取.

在这里插入图片描述

3.4 残差网络

残差网络(Residual Network,ResNet) 通过给非线性的卷积层增加直连边(Shortcut Connection)也称为残差连接(Residual Connection))的方式来提高信息的传播效率
假设在一个深度网络中,我们期望一个非线性单元(可以为一层或多层的卷积层)𝑓(𝒙; 𝜃) 去逼近一个目标函数为ℎ(𝒙).如果将目标函数拆分成两部分:恒等函数(Identity Function)𝒙 和残差函数(Residue Function)ℎ(𝒙) − 𝒙
残差网络(Residual Network,ResNet) 通过给非线性的卷积层增加直连边(Shortcut Connection)也称为残差连接(Residual Connection))的方式来提高信息的传播效率
假设在一个深度网络中,我们期望一个非线性单元(可以为一层或多层的卷积层)𝑓(𝒙; 𝜃) 去逼近一个目标函数为ℎ(𝒙).如果将目标函数拆分成两部分:恒等函数(Identity Function)𝒙 和残差函数(Residue Function)ℎ(𝒙) − 𝒙
在这里插入图片描述
在这里插入图片描述
残差网络就是将很多个残差单元串联起来构成的一个非常深的网络.和残差网络类似的还有Highway Network

4 其他卷积方式

4.1 转置卷积

我们一般可以通过卷积操作来实现高维特征到低维特征的转换.比如在一维卷积中,一个5 维的输入特征,经过一个大小为3 的卷积核,其输出为3 维特征.如果设置步长大于1,可以进一步降低输出特征的维数.但在一些任务中,我们需要将低维特征映射到高维特征,并且依然希望通过卷积操作来实现.
我们将低维特征映射到高维特征的卷积操作称为转置卷积(Transposed Convolution),也称为反卷积(Deconvolution).
在这里插入图片描述
微步卷积 我们可以通过增加卷积操作的步长𝑆 > 1 来实现对输入特征的下采样操作,大幅降低特征维数.同样,我们也可以通过减少转置卷积的步长𝑆 < 1来实现上采样操作,大幅提高特征维数.步长𝑆 < 1 的转置卷积也称为微步卷积

4.2 空洞卷积

对于一个卷积层,如果希望增加输出单元的感受野,一般可以通过三种方式实现:1)增加卷积核的大小;2)增加层数,比如两层3 × 3 的卷积可以近似一层5 × 5 卷积的效果;3)在卷积之前进行池化操作.前两种方式会增加参数数量,而第三种方式会丢失一些信息
空洞卷积(Atrous Convolution)是一种不增加参数数量,同时增加输出单元感受野的一种方法,也称为膨胀卷积。
空洞卷积通过给卷积核插入“空洞”来变相地增加其大小.如果在卷积核的每两个元素之间插入𝐷 − 1 个空洞,卷积核的有效大小为
𝐾′ = 𝐾 + (𝐾 − 1) × (𝐷 − 1),
其中𝐷 称为膨胀率(Dilation Rate).当𝐷 = 1 时卷积核为普通的卷积核.
在这里插入图片描述

(《Python深度学习》的中文版翻译真的不行,建议多结合其他书一起看,要不然可能会越看越糊涂。)

  • 0
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值