Deep Learning for Computer Vision: A Brief Review

2022-09-03 19:46:31 浏览数 (1)

摘要

在过去的几年里,深度学习方法在几个领域的表现都超过了以往的机器学习技术,其中最突出的一个例子就是计算机视觉。这篇综述文章简要介绍了计算机视觉问题中最重要的一些深度学习方案,即卷积神经网络、深度玻尔兹曼机和深度信念网络,以及叠加去噪自编码器。简要介绍了它们的历史、结构、优点和局限性,然后介绍了它们在各种计算机视觉任务中的应用,如对象检测、人脸识别、动作和活动识别以及人体姿态估计。最后,简要介绍了未来计算机视觉问题深度学习方案的设计方向和面临的挑战。

1、简介

深度学习允许多个处理层的计算模型学习和表示具有多个抽象级别的数据,模拟大脑如何感知和理解多模态信息,从而隐式地捕获大型数据的复杂结构。深度学习是一个丰富的方法家族,包括神经网络、分层概率模型和各种无监督和监督的特征学习算法。最近,人们对深度学习方法的兴趣激增,这是因为事实证明,深度学习方法在一些任务上的表现要优于之前的先进技术,而且来自不同来源(例如,视觉、听觉、医学、社交和传感器)的复杂数据也很丰富。

创建一个模拟人脑的系统的愿望推动了神经网络的最初发展。1943年,McCulloch和Pitts[1]试图了解大脑是如何通过使用相互连接的基本细胞(称为神经元)产生高度复杂的模式的。神经元的McCulloch和Pitts模型称为MCP模型,对人工神经网络的发展做出了重要贡献。表1列出了该领域的一系列主要贡献,包括LeNet[2]和Long Short-Term Memory[3],导致了今天的“深度学习时代”。深度学习最重大的突破之一出现在2006年,Hinton等人[4]引入了深度信念网络,该网络由多层受限制的玻尔兹曼机器组成,以一种未经观察的方式贪婪地一次训练一层。使用无监督学习(在每个级别上本地执行)指导中级表示层的培训,是过去十年中导致深度架构和深度学习算法激增的一系列发展背后的主要原则。

最突出的因素,导致了巨大的促进深度学习的大的外观,高质量、公开可用的标签数据集,随着GPU并行计算的赋权,使从CPU-based过渡到基于GPU的培训从而允许显著加速'training深度模型。也扮演了一个小的角色会和一些额外因素相关联,如减轻梯度problemowing消失的脱离fromsaturating activationfunctions(例如双曲正切和物流功能),新的正则化技术的建议(例如,辍学,批正常化,和数据增大),和强大的框架的外观像TensorFlow [5], theano[6],和mxnet[7],它允许更快的原型。深度学习已经在各种计算机视觉问题上取得了巨大的进步,如对象检测(如[8,9])、运动跟踪(如[10,11])、动作识别(如[8,9])。,[12,13]),人体姿态估计(e.g.,[14,15]),语义分割(e.g.,[16,17])。在这篇概述中,我们将简要回顾计算机视觉应用的深度学习架构和算法的主要发展。在这篇文章中,我们将重点讨论三种最重要的深度学习模型,它们在视觉理解方面的适用性,即卷积神经网络(CNNs)、“Boltzmann家族”,包括深度信念网络(DBNs)、深度Boltzmann机器(DBMs)和堆叠(去噪)自动编码器。不用说,目前的报道绝不是详尽无遗的;例如,长期短期记忆(LSTM)在复发性神经网络的范畴,虽然具有重要意义的深度学习计划,不是提出了审查,因为它主要是应用于建模问题,如语言,文本分类、手写识别、机器翻译、语音/音乐识别,那么在计算机视觉问题。Te概述的目的是成为有用的计算机视觉和多媒体分析人员,以及通用机器学习研究人员感兴趣的艺术深度学习对于计算机视觉任务,如目标检测和识别,人脸识别,行动/活动识别和人体姿态估计。

本文的其余部分组织如下。在第2节中,我们回顾了前面提到的三组深度学习模型:卷积神经网络、深度信念网络和深度玻尔兹曼机,以及堆叠式自动编码器。介绍了每一组的基本架构、培训流程、最新发展、优势和局限性。在第3节中,我们描述了深度学习算法对关键计算机视觉任务的贡献,如对象检测和识别、人脸识别、动作/活动识别和人体姿态估计;我们还提供了一个重要的数据集和资源列表,用于基准测试和验证深度学习算法。最后,第四部分对全文进行总结。

2、深度学习方法和发展

2.1、卷积神经网络

卷积神经网络(CNNs)的灵感来自于视觉系统的结构,特别是来自于[18]中提出的模型。第一个计算模型基于这些当地的神经元之间的连接性和分层次组织图像的转换在Neo识别机[19],它描述了相同的参数,当neuronswith应用补丁的上一层在不同的位置,获得一个印钞机印平移不变性。Yann LeCun及其合作者后来利用误差梯度设计了卷积神经网络,并在各种模式识别任务中取得了很好的结果[20-22]。CNN包含三种主要类型的神经层,即(i)卷积层、(ii)池化层和(iii)全连接层。每种类型的层扮演不同的角色。图1显示了图像任务中对象检测的CNN架构。CNN的每一层都将输入量转换为神经元激活的输出量,最终形成最终的全连接层,将输入数据映射到一维特征向量。CNNs在计算机视觉应用方面非常成功,如人脸识别、目标检测、机器人视觉驱动和自动驾驶汽车。

(i)卷积层:在卷积层中,CNN利用各种内核对整个图像以及中间的feature map进行卷积,生成各种feature map。由于卷积运算的优点,已有一些著作(如[23,24])提出用卷积代替全连接层,以达到更快的学习时间。

(ii)池层:池化层负责减少下一个卷积层的输入量的空间维度(宽度×高度)。Te池化层不影响卷的深度维度。该层执行的Te操作也称为子采样或下采样,因为减小尺寸会导致同时丢失信息。然而,这样的损失对网络来说是有益的,因为尺寸的减少会减少即将到来的网络层的计算开销,而且还可以防止过度拟合。平均池和最大池是最常用的策略。在[25]中对max pooling和average pooling性能进行了详细的理论分析,与在[26]中一样,max pooling可以更快的收敛,选择更好的不变特征,提高概化能力。文献中还有许多关于池化层的其他变体,每一种都受到不同动机的启发,服务于不同的需求,例如随机池化[27]、空间金字塔池化[28,29]和反池化[30]。

(iii)全连接层:在经过几个卷积和池化层之后,神经网络中的高级推理通过全连接层进行。完全连接层中的神经元与前一层中的所有激活都有完全的连接,就像它们的名字所暗示的那样。因此,可以通过矩阵乘法和偏置偏移来计算它们的激活。完全连接的层最终将二维特征映射转换为一维特征向量。推导出的向量既可以前馈到一定数量的类别中进行分类[31],也可以作为进一步处理[32]的特征向量。CNNs的架构采用了三个具体的思想:(a)局部接受域,(b)约束权重,(c)空间子抽样。基于局部接受域,卷积层中的每个单元接收来自上一层的一组相邻单元的输入。通过这种方式,神经元能够提取基本的视觉特征,如边缘或角落。然后,这些特征被随后的卷积层合并,以检测更高阶的特征。此外,基本特征检测器对图像的一部分有用,而对整个图像有用,这一思想是通过绑定权值的概念实现的。系权的概念限制了一组具有相同权值的单位。具体来说,卷积层的单位被组织在平面上。一个平面的所有单位都有相同的权值。因此,每个平面负责构造一个特定的特征。平面的输出称为特征图。每个卷积层由多个平面组成,因此可以在每个位置构建多个feature map。在构造feature map的过程中,整个图像被一个状态存储在feature map中相应位置的单元扫描。这个构造相当于一个卷积运算,后面是一个加性偏置项和一个s型函数:

mathbf{y}^{(d)}=sigmaleft(mathbf{W} mathbf{y}^{(d-1)} mathbf{b}right)

W是权重矩阵,和b是偏差项。对于全连通神经网络,权值矩阵是满的,即将每个输入用不同的权值连接到每个单元。对于CNNs,由于约束权的概念,权矩阵W非常稀疏。因此,W的形式为:

left[begin{array}{cccc} mathbf{w} & 0 & cdots & 0 \ 0 & mathbf{w} & cdots & 0 \ vdots & cdots & ddots & vdots \ 0 & cdots & 0 & mathbf{w} end{array}right]

其中w是具有与单位接受域相同维数的矩阵。采用稀疏权矩阵减少了网络可调参数的数量,提高了网络的泛化能力。将W与层输入相乘就像是将输入与W进行卷积,这可以看作是一个可训练的滤波器。如果d-1卷积层的输入为N times N 维数,卷积层d特定平面上单元的感受野为m times m 维,则构建的feature map为一个维数矩阵(N-m 1)×(N-m 1)。具体来说,(i,j)处的feature map元素为:

mathbf{y}_{i j}^{(d)}=sigmaleft(x_{i j}^{(d)} bright)

with

x_{i j}^{(d)}=sum_{alpha=0}^{m-1} sum_{b=0}^{m-1} w_{alpha b} mathbf{y}_{(i alpha)(j b)}^{(d-1)}

使用(4)和(3)对输入的所有(i,j)位置依次构造对应平面的特征映射。训练CNNs时可能出现的困难之一是需要学习大量的参数,这可能会导致过拟合问题。为此,提出了随机池、退出和数据扩充等技术。此外,CNNs常常要经过预训练,即使用预训练的参数而不是随机设置的参数来初始化网络。预处理可以加速学习过程,提高网络的泛化能力。总体而言,CNNs在计算机视觉和模式识别任务[33]的广泛范围内表现出明显优于传统机器学习方法,其示例将在第3节中介绍。他们出色的表现和相对轻松的训练是他们在过去几年里人气飙升的主要原因。

2.2、深度信念网络和深度玻尔兹曼机

深度信念网络和深度玻尔兹曼机器是属于“玻尔兹曼家族”的深度学习模型,因为它们利用了有限玻尔兹曼机器(RBM)作为学习模块。受限玻尔兹曼机(RBM)是一个生成型随机神经网络。dbn在顶部两层有无向连接,它们形成一个RBM,并直接连接到较低的层。DBMs在网络的所有层之间都有无向连接。DBNs和DBMs的图形描述可以在图2中找到。在接下来的小节中,我们将描述DBNs和DBMs的基本特征,然后介绍它们的基本构件RBM。

2.2.1、受限制的玻耳兹曼机

受限制的玻耳兹曼机([34、35])是一个无向的图形模型与随机变量k可见∈{0,1}和随机隐藏变量h in{0,1}^{F} ,其中每个可见变量连接到每个隐藏变量。RBM是玻尔兹曼机的一个变体,其限制是可见单位和隐藏单位必须构成二部图。这个限制允许更有效的训练算法,特别是基于梯度的对比发散算法[36]。

模型定义的能量函数为:

E:{0,1}^{D} times{0,1}^{F} rightarrow R:

E(mathbf{v}, mathbf{h} ; theta)=-sum_{i=1}^{D} sum_{j=1}^{F} W_{i j} v_{i} h_{j}-sum_{i=1}^{D} b_{i} v_{i}-sum_{j=1}^{F} alpha_{j} h_{j}

其中theta={a, b, W} 是模型的参数,即W_{ij} 为可见单元i与隐藏单元j之间的对称交互项,b_ia_i 为偏置项。给出了可见单元和隐藏单元的联合分布

begin{array}{l} P(mathbf{v}, mathbf{h} ; theta)=frac{1}{mathscr{Z}(theta)} exp (-E(mathbf{v}, mathbf{h} ; theta)) \ mathscr{I}(theta)=sum_{mathbf{v}} sum_{mathbf{h}} exp (-E(mathbf{v}, mathbf{h} ; theta)) end{array}

其中E(theta) 为归一化常数。隐h和可见v向量上的条件分布可由式(5)和式(6)得到

begin{array}{l} P(mathbf{h} mid mathbf{v} ; theta)=prod_{j=1}^{F} pleft(h_{j} mid mathbf{v}right) \ P(mathbf{v} mid mathbf{h} ; theta)=prod_{i=1}^{D} pleft(v_{i} mid mathbf{h}right) end{array}

给定一组观测值left{v_{n}right}_{n=1}^{N} ,对数似然对模型参数的导数可由式(6)得到

frac{1}{N} sum_{n=1}^{N} frac{partial log Pleft(mathbf{v}_{n} ; thetaright)}{partial W_{i j}}=mathbb{E}_{P_{text {data }}}left[v_{i} h_{j}right]-mathbb{E}_{P_{text {model }}}left[v_{i} h_{j}right]

E_{p_{text {data }}}数据表示一个期望的数据分布

P_{text {data }}(mathbf{h}, mathbf{v} ; theta)=P(mathbf{h} mid mathbf{v} ; theta) P_{text {data }}(mathbf{v})

P_{text {data }}(v)=(1 / N) sum_{n} deltaleft(v-v_{n}right)

, 代表经验分布和继续,E_{p_{text {model }}} 是一个期望对定义的分布模型,如(6)。详细说明的描述一个可行的方法来训练遏制了[37],而[38]讨论了训练RBMs的主要困难及其背后的原因,并提出了一种自适应学习率和增强梯度的新算法,以解决上述困难。

2.2.2、深度信念网络

深度信念网络是一种概率生成模型,它在可观测数据和标签上提供一个联合的概率分布。它们是通过堆叠RBMs并以贪婪的方式训练它们而形成的,就像[39]中提出的那样。DBN最初使用一种高效的逐层贪婪学习策略来初始化深度网络,在后续中,使用期望的输出来微调所有的权值。DBNs是一种图形化的模型,它学习提取训练数据的深层层次表示。他们对观测向量x与l隐含层aaaa的联合分布进行如下建模:

Pleft(mathbf{x}, mathbf{h}^{1}, ldots, mathbf{h}^{l}right)=left(prod_{k=0}^{l-2} Pleft(mathbf{h}^{k} mid mathbf{h}^{k 1}right)right) Pleft(mathbf{h}^{l-1}, mathbf{h}^{l}right)

其中mathbf{x}=mathbf{h}^{0}, Pleft(mathbf{h}^{k} mid mathbf{h}^{k 1}right)k级可见单位的条件分布,条件为k 1级RBM的隐藏单位,Pleft(mathbf{h}^{l-1} mid mathbf{h}^{l}right) 为顶层RBM的可见隐藏联合分布。贪心逐层无监督训练的原理可以应用于以RBMs作为每一层构建块的DBNs[33, 39]。该过程的简要描述如下:

(1)将第一层训练为RBM,将原始输入x=h^0 建模为其可见层。

(2)使用第一层来获得作为第二层数据的输入的表示。有两种常见的解决方案。这个表示可以选择为平均激活AAAA或BBBB的样本。

(3)将第二层训练为RBM,将转换后的数据(样本或均值激活)作为训练实例(针对该RBM的可见层)。

(4)迭代步骤((2)和(3))为所需的层数,每次向上传播的样本或平均值。

(5)针对DBN对数似然的代理或针对监督训练标准(在添加额外的学习机制将学习到的表示转化为监督的预测,例如一个线性分类器),对这个深度结构的所有参数进行微调。

上述dbns的贪婪学习过程有两个主要优点。首先,它解决了适当选择参数的挑战,在某些情况下,这可能导致糟糕的本地优化,从而确保网络得到适当的初始化。其次,由于过程是无监督的,所以不需要标签数据。然而,DBN也存在一些缺点,例如与DBN训练相关的计算成本,以及基于最大似然训练逼近的网络进一步优化的步骤还不清楚。此外,DBNs的一个显著缺点是没有考虑到输入图像的二维结构,这可能会显著影响DBNs在计算机视觉和多媒体分析问题中的性能和适用性。然而,DBN之后的一个变体Convolutional Deep Belief Network (CDBN)通过引入Convolutional RBMs来利用相邻像素的空间信息,从而产生了一个平移不变的生成模型,该模型在处理高维图像时能够成功地进行缩放,[44]就是一个很好的证明。

2.2.3、深度玻尔兹曼机

Deep Boltzmann Machines (DBMs)[45]是另一种使用RBM作为其构建块的Deep模型。dbn架构的不同之处在于,在DBM中,上层两层是无向的图形模型,下层是有向的生成模型,而DBM中所有的连接都是无向的。DBMs有多层隐藏单元,奇数层中的单元有条件地独立于偶数层,反之亦然。因此,DBM中的推理通常是难以处理的。尽管如此,在可见单元和隐藏单元之间进行适当的交互选择可以得到模型的更易于处理的版本。在网络训练中,DBM联合训练一个特定的无监督模型的所有层,DBM不是直接最大化似然,而是使用一个基于SML的[46]算法来最大化似然的下界。这样的过程似乎很容易陷入当地的最低[45],导致几个单位实际上死亡。相反,我们提出了一种贪婪的逐层训练策略[47],它本质上是对DBM的各层进行预处理,类似于DBN,即通过叠加RBMs,对每一层进行训练,分别对上一层的输出进行独立建模,然后进行最后的联合细化。关于DBMs的优点,它们可以捕获输入数据的许多复杂表示层,并且适合于非监督学习,因为它们可以针对未标记的数据进行训练,但是它们也可以以监督的方式对特定的任务进行调整。将DBMs与其他深度模型区别开来的一个属性是,除了通常的自底向上的过程外,DBMs的近似推理过程还包括自顶向下的反馈,从而更有效地综合了输入的不确定性。此外,在数据库管理系统中,通过遵循似然目标上的一个变分下界的近似梯度,可以联合优化所有层的参数,这是非常有益的,特别是在从来自不同模式的[48]的异构数据学习模型的情况下。就DBMs的缺点而言,最重要的缺点之一是,如上所述,推理的计算成本很高,这在大型数据集中进行联合优化时几乎是不可能的。提出了几种提高数据库管理系统有效性的方法。这包括通过使用单独的模型来初始化所有层中隐藏单元的值来加速推断[47,49],或在训练前阶段[50,51]或在训练阶段[52,53]进行其他改进。

2.3、堆叠(去噪)

Autoencoders。堆叠的自动编码器使用自动编码器作为其主要构件,类似于深度信念网络使用受限的玻尔兹曼机作为组件的方式。因此,在描述堆叠(去噪)自动编码器的深度学习架构之前,简要介绍自动编码器的基础知识及其去噪版本是很重要的。

2.3.1、自编码器

一个自动编码器被训练成以一种可以从r(x)[33]重构输入的方式将输入x编码成一个表示r(x)。因此,自动编码器的目标输出就是自动编码器的输入本身。因此,输出向量具有与输入向量相同的维数。在这个过程中,重构误差被最小化,相应的代码就是学习特征。如果有一个线性隐藏层和均方误差准则用于训练网络,然后隐藏单位学习项目输入第一个?张成的空间主成分数据[54]。如果隐含层是非线性的,则自动编码器的行为与PCA不同,能够捕获输入分布[55]的多模态方面。对模型参数进行了优化,使平均重建误差最小。测量重构误差的方法有很多,包括传统的平方误差:

L=|mathbf{x}-mathbf{f}(mathbf{r}(mathbf{x}))|^{2}

其中函数f为解码器,f(r(x))为模型生成的重构。如果将输入解释为位向量或位概率向量,则重建的损失函数可表示为交叉熵;也就是说,

L=-sum_{i} mathbf{x}_{i} log mathbf{f}_{i}(mathbf{r}(mathbf{x})) left(1-mathbf{x}_{i}right) log left(1-mathbf{f}_{i}(mathbf{r}(mathbf{x}))right)

目标是使表示(或代码)r(x)成为一种分布式表示,它能够根据数据的主要变化捕获坐标,类似于主成分分析(PCA)的原理。鉴于r (x)不是无损的,它不可能是一个成功的压缩所有输入x。上述优化过程的结果在低重建误差测试例子从相同的分布训练例子但一般高重建误差样本从输入空间任意选择。

2.3.2、去噪自编码器

去噪自编码器[56]是一个随机版本的自编码器,其中输入随机损坏,但未损坏的输入仍然作为重建的目标。简单来说,主要有两个方面的功能去噪自编码器:首先,它试图编码输入(即保存的信息输入),其次它试图消除腐败的影响过程随机应用于输入自编码器(参见图3)。后者只能通过捕获统计输入之间的依赖关系。可以看出,去噪的自编码器最大限度地降低了生成模型的日志可能性。在[56]中,随机破坏过程任意地将一些输入设置为零。然后,去噪自动编码器试图从未损坏的值预测损坏的值,为随机选择的子集的缺失模式。从本质上讲,从剩余变量中预测变量子集的能力是完全捕获一组变量之间的联合分布的充分条件。需要指出的是,在早期的作品(如[57])中已经介绍了使用自动编码器去噪,但[56]的主要贡献在于成功地演示了对深层架构进行无监督预训练的方法,并将去噪的自动编码器与生成模型联系起来。

2.3.3、堆叠自编码

将去噪自编码器的潜在表示(输出码)作为当前层的输入,可以将去噪自编码器的潜在表示(输出码)叠加起来,形成一个深度网络。这种体系结构的无监督预培训一次完成一层。每一层都被训练成一个去噪的自动编码器,通过最小化重建其输入(即前一层的输出代码)的错误。当第一个?层训练,我们可以训练(? 1)届层,因为它将可能计算的潜在表示层下面。当所有层的预培训完成后,网络将经历第二个阶段的培训,称为微调。这里,当目标是优化监督任务的预测误差时,将考虑监督微调。为此,在网络输出层的输出代码上添加一个逻辑回归层。然后将导出的网络训练成多层感知器,此时只考虑每个自动编码器的编码部分。这个阶段是监督的,因为在训练中目标班级被考虑在内。正如很容易看到的,训练堆叠的自动编码器的原理和之前描述的深度信念网络的原理是一样的,只是使用自动编码器而不是受限制的玻尔兹曼机。大量的对比实验研究表明,深度信念网络的表现往往优于叠加自编码器([58,59]),但情况并非总是如此,尤其是将DBNs与叠加去噪自编码器[56]进行比较时。自动编码器作为深层体系结构的基本无监督组件的一个优点是,与RBMs不同,在训练标准在参数上连续的条件下,自动编码器允许几乎所有层的参数化。相比之下,情景应用程序的缺点之一是与生成模型不对应,当使用RBMs和DBNs等生成模型时,可以绘制样本来检查学习过程的输出。

2.4、讨论

所提出的深度学习模型的一些优点和局限性已经在相应的小节中进行了讨论。为了比较这些模型(见表2),我们可以说CNNs通常比DBNs在当前基准计算机视觉数据集(如MNIST)上的表现更好。在输入非可视的情况下,DBN通常比其他模型表现得更好,但是在准确估计联合概率以及创建DBN的计算成本方面存在困难。CNNs的一个主要的积极方面是“特征学习”,即绕过手工制作的特征,这对于其他类型的网络是必要的;然而,在CNNs特征是自动学习。另一方面,CNNs依赖于ground truth(即标记的训练数据)的可用性,而DBNs/DBMs和SAs没有这种限制,可以在无监督的情况下工作。另一方面,自动编码器的缺点之一在于,如果错误出现在第一层,那么它们就会失效。这些错误可能会导致网络学习重构训练数据的平均值。然而,去噪自动编码器[56],可以从一个损坏的版本检索正确的输入,从而导致网络掌握输入分布的结构。就培训过程的效率而言,只有在情景应用程序中才可能进行实时培训,而CNNs和DBNs/DBMs培训过程非常耗时。最后,CNNs的优势之一是,它们可以不受平移、缩放和旋转等转换的影响。不变性,平移、旋转和尺度是cnn的最重要的资产之一,尤其是在计算机视觉问题,如目标检测,因为它允许抽象对象的身份或类别的具体视觉输入(例如,相对位置/取向的相机和对象),从而使网络能够有效地识别一个给定对象的情况下实际像素值图像可以显著不同。

0 人点赞