英语原文共 8 页,剩余内容已隐藏,支付完成后下载完整资料
卷积神经网络:结构,特征提取与训练
Ivars Namatēvs Riga Technical University, Latvia
摘 要:深度卷积神经网络(CNN)旨在处理具有已知的网络拓扑结构的数据。它们被广泛用于识别图像中的对象,判断时间序列中的模式以及传感器数据的分类。本文主要从卷积操作,典型层次以及用于训练和学习的基本方法等方面介绍深层卷积神经网络的理论和实践。介绍了其中包括相关信息和图像分类等实际应用。最后,本文描述了卷积神经网络的层次结构,并利用卷积神经网络对3D传感器数据中的关键特征进行分类。
关键词:卷积层,卷积运算,深度卷积神经网络,特征提取
一.介绍
最近的深度学习被赋予了新的力量,因为它能够构建几年前不可能实现的人工智能(AI)系统。
今天,人工智能是一种很热门的技术,因为它可以完成那些需要计算机执行大量计算的任务。另一方面,人们可以根据自己的直觉和经验来解决人们需要解决的问题,比如识别图像绘制,理解口语或研究道路的方向和障碍等问题。这也就意味着,通过大规模并行处理系统和复杂算法的引入,这些解决方案可以更快,更准确地得到。这些计算设施是基于感知层次的。每个计算层的特点是与层概念的关系,其中最基本的层是由简单的概念组成的。如果我们绘制一张图表来展示这些概念是如何建立在彼此之上的,那么图形很深,有很多图层。因为这个原因,我们将这种方法称为深度学习,它涵盖了机器学习的几个方面[1]。
在人工智能领域有两种基本方法。第一种方法是基于知识工程系统,逻辑编程和逻辑推理的。第二种方法基于生物模型[2]的。人工神经网络(ANN)和遗传算法就是应用第二种方法的重要实例。人工神经网络的领域最初被认为是一种通过模仿大脑执行特定任务的方式,它将大脑看作是为一个高度复杂的非线性并行信息处理系统[3],[4]。
人工神经网络最显著的特点是:简单处理单元的大规模互连网络,调整网络参数或权重,以便通过学习过程执行任务或适应其环境。用数学术语来说,一个人工神经网络可以看作是每个节点实现神经元模型的直接图像[3]。
深度卷积神经网络(CNN)是一种特殊的人工神经网络,它至少在其中一个层中使用卷积来代替一般的矩阵乘法[1]。卷积神经网络与具有一个或多个隐藏层的简单神经网络相比,它是由许多层组成。这样的特征使得层与层可以紧凑地表示高度非线性和变化的函数[5]。CNN涉及很多连接,他的体系结构通常由不同类型的层组成,包括卷积,池化和全连接层,并实现了正则化形式[6]。为了学习可代表高级抽象的复杂特征和功能(例如,在视觉,语言和其他AI级任务中),CNN需要深度架构。深层体系结构的CNN由大量的神经元和多级潜在的非线性计算组成。根据Bengio [7],CNN的每个架构级别表示不同抽象层次上的特征,这被定义为较低级别特征的组合。
CNNs近期在图像识别[8],[9],语句和文本分类[10],多元时间序列数据分析[11],医学[12],时间序列生理信号[13],电机故障诊断[14],超声信号分类[15]和生物图像分类[16]等方面发挥着重要作用。 深度学习技术近期也被Adobe,苹果,百度,Facebook,Google,IBM,微软,NEC,Netflix和NVIDIA等公司研究并使用[17]。
文章的其余部分组织如下。在第二节中,给出了CNN简短的历史概述,描述了卷积神经网络的演变。在第三节中,描述了卷积操作的定义。第四节描述了卷积神经网络的基本原则,这些原则对于理解深层神经网络方法是必要的。在第五节中,本文描述了CNN学习和训练的主要原则。在第六节中,提出了由所提出的用于信号数据分类的卷积层组成的易于理解的深度CNN系统体系结构。第七部分进行了总结并提出了未来研究的建议。
二.卷积神经网络简史
从生物学角度来说,CNN的出现是受到了哺乳动物视觉结构工作原理和David Hubel以及Torsten Wiesel模型[18]的启发所提出的。基于他们的开创性模型,计算深度学习被视为计算智能范例的一部分。其基本思想来自他们的模型——利用计算机基础设备,算法并通过标记数据进行学习,这样可以在人造“神经网络”中来模拟大脑皮层的大量神经元。
他们的模型有助于理解大脑功能的许多方面,尤其是初级视觉皮层(PVC)。 Goodfellow等人[1],[19]概述了通过PVC设计卷积网络的三个性质:首先,PVC具有二维结构,这被组织为一个空间映射。CNN可以根据二维图定义的特征来捕获此属性。其次,PVC包含了许多简单的细胞,这些细胞在小空间局部的感受野中以图像的线性函数为特征。卷积网络的检测器单元被设计用来复制简单单元的这些特征。第三,PVC也含有许多复杂的细胞,这些细胞对那些特征做出相应的反应。与简单细胞相比,不管其测量条件的变化如何,复杂的细胞对于其特征位置的微小变化是不可改变的。这也就促使了CNN的汇集。
第一个当代卷积网络是福岛在1980年提出的,被称为Neocognitron[20]。这也许是第一个拥有“深”这一属性的人工神经网络,同时着也是第一个应用了PVC神经生理模型的神经网络。Neocognitron与现代那些可测试的,纯监督,前馈的,基于梯度的深度网络学习体系结构非常相似,它具有交替卷积和下采样层[21]。
1986年,Rumelhart等人[22]提出了一个反向传播网络来训练拥有一个或两个隐藏层的神经网络。1989年,LeCun[23]证明了使用移位不变局部特征检测器进行图像识别的层次结构。在1989年,反向传播被应用于具有自适应连接的类似Neocognitron的权重共享卷积神经层。1991年,Robinson和Fallside [25]提出了一种用于语音识别的递归神经网络(RNN)。在同一年,Bengio等人,[26]提出了用于语音识别的多层感知器(MLP)。1980年开始的这种利用深度神经网络作为连接主义方法的浪潮在1995年左右结束。
当前的深度学习兴起于2006年,当时Hinto等人[27]研究表明,神经网络可以在MNIST基准上表现优于高斯或径向基函数(RBF)内核的方法。2006年,基于早期显卡(GPUs)的CNN,它的实现速度比计算处理单元(CPU)CNN的速度快4倍[28],相较与早期标准前馈神经网络(FNN的GPU实现,它的与加速因子为20[29]。显卡(GPU),数字信号处理(DSP),现场可编程门阵列(FPGA)以及其他架构在执行深度卷积神经网络的特殊模式时,已经成为训练和评估的计算资源的关键组成部分。
由于卷积网络研究者Yann LeCun,Geofrrey Hinton对深度学习方法的研究以及Jeff Hawkins创建大脑记忆预测框架理论和描述的分层时间记忆(HTM)的发展,如今的深度卷积神经网络被用于许多实际应用。Maximilian Riesenhuber和Tomas Poggio致力于研究对象识别(HMAX)的层次模型,该模型是基于Poggio的大脑功能计算模型的开发,构建智能机器视觉,可以模仿人类的表现。最后,Sepp Hochreiter和Jurgen Schmidhuber研究了递归神经网络(RNN)和长短时记忆(LSTM) 递归神经网络。
值得一提的是一些全球会议为CNN的发展做出了贡献。其中最主要的有:
神经信息处理系统大会(NIPS);
世界上最大和最重要的GPU开发者大议(GPU);
国际机器学习大会(ICML);
国际计算机视觉与模式识别会议(CVPR);
国际计算机视觉大会(ICCV)。
三.卷积操作
在最一般的形式中,卷积的概念是两个函数的数学运算,运算会产生一个新的函数。这个新函数反映了原始函数在图形相互对齐情况下匹配的程度。
卷积定理指出在一定条件下卷积的傅里叶变换是傅里叶变换的点积。换句话说,在一个域中的卷积(例如,时域)等于在另一个域(例如,频域)上的点乘运算。在一个维度中,两个函数之间的卷积定义如下:
|
(1) |
此公式f(x),g(x)为两个函数。
s是积分的虚拟变量(取值0或1)。
在两个维度中,两个函数之间的卷积定义如下:
|
(2) |
卷积操作通常用星号*表示,不要与乘法混淆。
例如,在一维应用中,我们有一个信号时域x(t)和一个频域w(a),根据卷积定理,卷积运算为[1]:
|
(3) |
其中x,是第一个参数,被称为输入;w,第二个参数被称为内核;s(t)输出被称为特征映射或内核映射。
在计算机应用程序中,时间序列数据将被离散化并且时间t只能取整数值。因此,离散卷积可以定义如下:
|
(4) |
在机器学习应用中,输入通常是一个多维的数据数组,而内核通常是由学习算法调整的多维参数数组[1]。这些多维数组称为张量。
如果存在二维空间,例如图像I作为输入,则必须使用二维的内核K,两个维度下的卷积如下:
|
(5) |
如果假设m的有效值范围与n相比的变化范围较小,并且假设卷积是可以交换的,那么我们可以等价地将(5)写成如下形式:
|
(6) |
如果m增加,输入值会增加,但进入内核的部分会减少,这意味着我们已经翻转了相对于输入的内核。如果内核没有翻转,我们使用称为交叉关联的相关函数:
|
(7) |
在机器学习中,算法会在适当位置学习适当的内核值[1]。在机器学习中,卷积并不是单独使用的,而是与其他函数的组合同时使用。这也是基于卷积神经网络的工作原理。
四.神经网络
根据上文所提到的,我们可以清楚地认识到,与其他传统神经网络相比,CNN的拓扑结构是不同的。后者使用一个矩阵乘积AB,它是由两个矩阵相乘得到的,其中n是一个参数矩阵,m是一个参数,用于描述每个输入单元和每个输出单元之间的相互作用[1]。
与传统的全连接神经网络相比,应用卷积神经网络的主要好处是减少了要学习的参数数量[30]。 CNN拓扑基于三个主要概念,即:本地感受域,共享权重和空间或时间采样[31]。这意味着CNNs通常由卷积层等不同类型的层组成,而每个卷积层由小的内核组成,这些内核能够以有效的方式提取高级特征。最后的卷积层被送到全连接层。正如之前所说的,如果CNNs要学习的参数数量减少,这会使得连接减少从而更容易训练[8]。因此,这种特殊类型的神经网络是假定我们是以数据驱动的方式学习滤波器来作为提取描述输入的特征的手段[6]。
CNN的标准模型是由输入层,交替卷积层,池化或子采样层,非线性函数层和少量全连接层组成,最后一层通常是sofmax分类器[32]。在复杂的层术语中,一个卷积网络或卷积层由卷积阶段(例如仿射变换),检测器阶段(例如线性修正)和汇集阶段[1]组成。这意味着每个卷积层都有多个阶段。卷积层的每个阶段都可以分开设置,并且它的每个处理步骤都可以按照自己的权限进行限定。通常来说,卷积层与子采样层交替在一起,以减少计算时间,并逐步建立进一步的空间和构形不变性[7]。下面列出了CNN的基本层。
输入层。输入通常是一个多维数据数组,其中的数据输入到网络[6]。输入数据可以是图像像素或它们的变换图案,以及时间序列或视频信号。
卷积层或卷积阶段。它是CNN的核心。卷积的主要目的是从输入中提取不同的特征。 Krig [33]描述了卷积层由一系列过滤器或可学习的内核组成,这些内核旨在从输入中提取局部特征,并且每个内核用于计算特征映射或内核映射。
第一个卷积层提取低级别的有意义的特征,如边缘,角落,纹理和线条。接下来的卷积层提取更高层的特征,最高层的特征在最后的卷积层中提取[34]。内核大小是指过滤器的大小,它围绕特征映射进行卷积,而过滤器滑动的量是步长。它控制过滤器如何在特征映射周围进行卷积。过滤器通过每次滑动单元来卷积输入特征映射的不同层[1]。
卷积神经网络的另一个基本特征是填充,它提供了输入数据更宽的选择。例如,元素Vi、j、k。如果需要独立控制输出的大小和内核宽度W,则使用输入的零填充。
非线性层或探测器阶段。通过非线性激活函数的引入,利用检测器阶段检测每个线性激活。换句话说,线性激活将非线性引入神经网络,使它能够学习更复杂的模型[11]。
本文描述几个非线性激活函数。以f(x) = tanh(x)、sigmoid(x)或ReLU[32]为输入x的函数来建模神经元输出f的标准方法。RELU函数是优秀的,因为它使训练的速度比其他激活函数要好几倍。有些论文由于其简单而在所有激活阶段采用sigmoid函数[11]。ReLU应用函数y = max(x,0),它在不影响卷积层的接受域的情况下,增加了整个网络的非线性性质。根据[8],使用ReLU可以通过保持所有网络层上的梯度大致保持不变来加速CNN的训练。
池化,下采样,或子
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[22666],资料为PDF文档或Word文档,PDF文档可免费转换为Word
课题毕业论文、外文翻译、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。