图像分类的灵活、高性能卷积神经网络外文翻译资料

 2022-12-09 10:12

英语原文共 6 页,剩余内容已隐藏,支付完成后下载完整资料


图像分类的灵活、高性能卷积神经网络

摘要

我们提出一种卷积神经网络变体的计算机科学技术图形处理器,它具有快速、参数化全面等特点。我们的特征提取器既不是仔细设计的也不是预先连接的,但是它在监管方式上很擅长。我们在对对象分类(NORB, CIFAR10)和手写数字识别(MNIST)上达到了最佳水准,错误率仅分别为2.53%,19.51%,0.35%。由简单的反向传播训练的深网运行起来比浅网好很多,学习速度惊人的快。NORB是完全在5个时期内训练的,1、3和17时期后,在MNIST上测试的错误率分别降低到2.42%,0.97%和0.48%。

1介绍

在凌乱的场景人类的视觉系统有效地识别特征和本地化的对象。对于人工系统,然而,这仍然是困难的,由于视点依赖对象的可变性,和许多对象的高课堂变化类型。深分层神经模型大致模仿哺乳动物视觉皮层的本质,并由社区共识是最有前途的架构等任务。最成功的分层对象赞赏系统所有从输入图片提取局部特征,卷积图像补丁和过滤器。然后反复业者和对滤波器响应,导致深前馈网络体系结构,它的输出特性向量是最终分类。第一个分级神经系统是认知器[福岛,1980]激励了许多最近的变体。

无监督学习方法应用到补丁自然图片往往产生局部过滤器类似偏心式环绕过滤器,方向敏感的探测器,伽柏过滤器(Schmidhuber et al .,1996;Olshausen and Field.,1997;Hoyer and Hyvarinen,uml;uml;2000]。这些发现与实验研究的视觉皮层证明这种过滤器的使用所谓的标准模型对象识别[Riesenhuber and Poggio,1999;Serre et al .,2007;Mutch and Lowe,2008],其过滤器是固定的,与此相反的卷积神经网络(CNN)[LeCun et al.,1998; Behnke.2003; Simard et al .,2003),重量(过滤器)的随机初始化,改变监督方式使用反向传播(BP)。

尽管在硬件上的进步,计算速度仍然是限制CNN发展的一个主要瓶颈。为了系统性地测试各种结构的影响,本文提供了一种快速GPU部署CNN框架。之前的GPU部署CNN都是为了满足GPU硬件的限制,或者使用一般的函数库,然而我们的GPU部署比较灵活而且是网络的权值学习方式。我们的部署允许训练CNN时间是以天为单位,而不是月;这样我们可以探索更大的参数空间,研究各种结构的影响。

我们评估不同网络上的手写数字基准MNIST(LeCun et al .,1998)和两个图像分类基准:NORB(LeCun et al.,2004)和CI-FAR10[Krizhevsky,2009]。

2卷积神经网络

cnn是卷积层相间的分层神经网络二次抽样层,让人想起简单初级视觉皮层和复杂的细胞(威塞尔和休博尔,1959)。cnn不同卷积和业者层是如何实现的,篮网是如何训练的。

2.1 图像处理层

图像处理层是一个可选的预处理层预定义的过滤器保持固定在训练。因此除了原始输入图像的附加信息可以提供给网络,如边缘和梯度。特别是,我们发现对比解压层(Fukushima, 2003)有助于改善NORB识别率。

2.2 卷积层

C层的参数=f(特征图大小,特征图个数,filter尺寸,跳跃间隔因子,连接表)

采用valid的卷积方式,卷积后特征图大小关系,如下式:

n代表层数,M代表每层特征个数,x,y分别代表特征图的长宽。K代表filter,S代表跳跃间隔数。(貌似上面公式并不具有普遍性,因为自己在后面的一些论文用此公式是map的尺寸和公式的结果不一样,估计可能是和Stride的定义有关,再有就是填充像素的原因)

2.3 Max-pooling层

最大的建筑区别我们的营建和CNN(LeCun et al.,1998)是使用max-pooling层而不是二次抽样层。没有这样的层使用[Simard et al .,2003)简单地跳过了附近的像素卷积之前,而不是池或平均。(Scherer et al.,2010)发现max-pooling会导致更快的收敛,选择优越的不变特性,提高泛化。池特性的理论分析、特别是max-pooling是由[Boureau et al .,2010)。max-pooling层的输出是由最大激活非重叠的矩形区域的大小(Kx,Ky)。Max-pooling使位置不变性大局部地区和下采样 Kx的输入图像的因素和Ky。

2.4 分类层

需要选择过滤器尺寸,max-pooling局域尺寸形状和跳跃间隔来使得最后一个卷基层的输出为1像素,然后通过全连接连接到分类器,或一个完全连接层结合了最顶层的输出卷积层为一个一维的特征向量。顶层总是完全连接,与一个输出单位每个类标签。

3 GPU部署

最新一代的NVIDIVA GPU,400或者500系列(我们使用GTX480和580),新一代的GPU可以快速编程和简化编码,实验中,仅仅是利用更快的GPU就可以使实验提速两到三倍。

人工优化CUDA代码是非常耗时而且容易出错;依靠L2缓存多个设备的内存互联,我们优化新的结构,而不是使用分享内存;这种优化策略代码运行很快。我们使用以下的优化方法:

预计算表达式,打开模板核内的循环,跳跃矩阵去获得联合的内存互联,注册有可能情况。

手动优化CUDA代码非常耗时且容易出错。我们为新的架构优化,依靠设备的L2高速缓存对许多内存访问,而不是手动编写代码,使用材质和共享内存。这种务实的策略获得的代码是不够快。我们使用以下类型的优化:预先计算表达式,在模板内核展开循环,向矩阵获得尽可能合并内存访问和寄存器。额外的人工优化,以防未来图像分类问题就需要更多的计算能力。

图1:卷积神经网络的架构完全连接层,内核大小5 x 5和跳过最后的1。

3.1 数据结构

输出y和增量delta;层Ln的2 D向。原始大小是Mx times; M My,但他们是水平向方向的32浮动(我们用这个步幅所有2D数据),导致合并内存访问。在CUDA垂直步避免额外的边界测试内核。

之间的所有连接的地图连续层Lnminus;1Ln存储在矩阵 Cn.。 Cn.的每一行包含所有连接,给一个特定的地图层Ln。因为我们的目标是一个灵活的体系结构与部分链接层,我们在第一列存储以前连接的数量。这个指数是用于向前传播(FP)和调整权重(AW)CUDA内核。第二列存储的连接数,其次是相应的指数Lnminus;1连接到当前地图的地图。

对于英国石油公司和FP,类似的连接信息是必要的。因此,我们在CBP存储逆向连接。AW要求所有地图连接的列表(见3.4小节),存储为一个地图索引数组对。在BP内核处理偏差需要知道特定连接的权重开始;这个信息存储在一个二维数组 WIDXBP大小M n times; M nminus;1

3.2 前馈传播

一个直截了当的方式并行FP是分配一个线程阻塞每个地图都有计算。地图有超过1024个神经元的工作是进一步分割成更小的块通过将一块分配给每一行的地图,因为每个块的线程数量有限(1024 GTX 480)。之间的一一对应线程和地图的神经元。因为重量的共享、并行线程可以访问数据块内,中存在相同的重量和上一层的输入。每个线程首先初始化与偏见的总和,然后循环遍历所有地图连接,卷积的适当补丁输入地图与相应的内核。通过获得的输出是通过激活了双曲正切函数之和,然后写入设备内存。

3.3反向传播

血压的增量可以通过两种方式来完成:通过推动或拉动。推三角洲意味着采取从每个三角洲从防渗墙层和计算的上一层相应的增量。用于与共享权重的架构这具有作为硬编码的缺点。从目前的每一层三角洲有助于在上一层,这意味着很多编程的许多增量。有两种方法避免了这一点:要么写作部分三角洲一个分离的内存块,然后把一切放在一起通过调用另一个内核(慢因为巨大的支出数量的内存访问,和另一个内核的需要),或者使用原子写道(为了避免数据危害)更新增量(非常缓慢,因为许多作品被序列化)。我们实现拉动增量,上面几乎没有限速的缺点,但是更加复杂。

该(单向或双向维)线程电网分配(双向或单向维)线程块到上层中的每个地图和一个线程在每个地图每个神经元。类似的FP,对于超过1024元的地图,二维网格进一步分割成更小的块1D通过向图中的每一行指定一个2D块。每个线程由从当前层拉动增量计算其CORRE-应的神经元的增量。在先前层的每个神经元,我们必须确定在其中连接到它的当前层神经元的列表。让我们考虑从层 Lnminus;1的映射神经元(I,J),然后假定(X,Y)是神经元的坐标有助于神经元的增量(I,J)Ln的地图。第(x,y)的神经元是从在前面的层中的每个连接地图连接到内核大小数目的神经元(KXtimes;KY)。在 Lnminus;1通过内核连接到神经元的索引(X,Y)

上述不等式指出神经元(I,J)为 Lnminus;1的增量从神经元的增量计算在矩形区域中Ln的图(图2)。三角洲总结后,每个线程乘以激活函数的导数的结果。

图2:传播增量:连接两个连续的地图从两层显示。地图在Lnminus;1 29 x 29神经元;地图在Ln 13 x 13神经元。5 x 5他们是通过链接内核k .跳过Sx = 1的因素和Sy = 1。箭和颜色描述神经元之间的通信在Lnminus;1Ln的来源。

3.4 调整权重

FP和BP有一个网格地图的列表,但AW线程网格是在内核的列表(过滤器)连续两个地图层之间。1 D网格有一块为每个连接两个地图。线程块2 D,与相应的线程每粒重。偏差包括重量作为线程的整个行,因此需要线程块有(Kx 1)times;Ky线程。大部分时间这些额外的Ky线程会等待线程(0,0)只被激活的块过程偏差。

4 实验

我们使用系统核心i7 - 920(2.66千兆赫),12 GB DDR3和四个图形卡:2 x GTX 480和2 x GTX 580。CPU版本的正确性检查通过比较分析梯度的有限差分近似。在GPU上这是不可能的,因为所有的计算与单精度浮点数被施行。因此GPU实现的正确性检查com-paring结果的随机初始化网络训练后更准确的CPU 版本。获得相同的结果后,数以万亿计的操作正确性的强烈信号。

实现了CNN的平原前馈结构是使用在线梯度下降训练。所有图像训练集用于训练和验证。如果启用了变形,只有训练集的图像会变形。根据均匀随机分布权值初始化范围内(minus;0.05,0.05)。每个神经元的激活函数是一个按比例缩小的双曲正切:y(a)= 1.7159双曲正切(0.6666)[LeCun et al.,1998)。

我们选择最低的训练有素的CNN验证错误,和评估测试集上最好的验证——TfbV(测试)。最好的测试误差(bT)也列出所有实验。报告计算次时代包括培训、验证和测试以及所有数据传输。

4.1在MNIST上实验

数据增益:平移,旋转,尺寸缩放,水平翻转和弹性形变

学习率:迭代500次,持续缩减从1E-3到3*5E-5

M代表卷积阶段特征个数,N代表全连接层的神经元个数

全连接的卷基层会导致过多的filter和连接,使得训练大型和深度CNN网络,在GPU上有些不合理。部分链接可以消除这个问题,并且部分链接更符合生物特征;本文通过随机连接的方式来确定卷积层之间的连接方式。

上表列出了2到7个卷基层,通过随机的方式确定层间连接的卷积网络。网络越深(计算越复杂)获得的准确率越大;此外,深的网络需要更多的计算时间来完成一次迭代;但同时深的网络需要更少的迭代次数就可以达到很好的准确率。上表中最深的7层网络在迭代1次,3次,17次时分别达到了2.42%,1.58%和0.68%的准确率;而4层网络在迭代1,3,17次之后达到了4.71%,1.58%和0.68%的准确率;并且在34不之后获得了0.5%的准确率。

4.2 在NORB数据集上实验

NORB包含3D的物体,所以输入有两张图片。旋转,缩放和弹性形变等数据增益技术在泛化能力上有负面影响。这些数据增益技术是2D图像本身具有的提升识别准确率的技术,但是貌似不适合3D图像。

最初在NORB上的实验CNN网络在迭代3到6步就达到了验证数据集0误

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[31440],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。