基于硬件加速的卷积神经网络实现研究文献综述

 2022-10-28 14:54:52

文献综述(或调研报告):

卷积神经网络(CNN)是一种常见的深度学习架构,受生物自然视觉认知机制启发而来。1959年,Hubel amp; Wiesel [1] 发现,动物视觉皮层细胞负责检测光学信号。受此启发,1980年 Kunihiko Fukushima 提出了CNN的前身——neocognitron。

  20世纪 90 年代,LeCun et al.[2] 等人发表论文,确立了CNN的现代结构,后来又对其进行完善。他们设计了一种多层的人工神经网络,取名叫做LeNet-5,可以对手写数字做分类。和其他神经网络一样, LeNet-5 也能使用 backpropagation 算法训练。CNN能够得出原始图像的有效表征,这使得CNN能够直接从原始像素中,经过极少的预处理,识别视觉上面的规律。然而,由于当时缺乏大规模训练数据,计算机的计算能力也跟不上,LeNet-5 对于复杂问题的处理结果并不理想。

  2006年起,人们设计了很多方法,想要克服难以训练深度CNN的困难。其中,最著名的是 Krizhevsky et al.提出了一个经典的CNN 结构,并在图像识别任务上取得了重大突破。其方法的整体框架叫做 AlexNet[3],与 LeNet-5 类似,但要更加深一些。AlexNet 取得成功后,研究人员又提出了其他的完善方法,其中最著名的要数 VGGNet [4], GoogleNet [5] 和 ResNet [6] 这四种。从结构看,CNN 发展的一个方向就是层数变得更多,ILSVRC 2015 冠军 ResNet 是 AlexNet 的20 多倍,是 VGGNet 的8 倍多。通过增加深度,网络便能够利用增加的非线性得出目标函数的近似结构,同时得出更好的特性表征。但是,这样做同时也增加了网络的整体复杂程度,使网络变得难以优化,很容易过拟合,此外CNN层数的增加带来最直接的问题便是所需计算量的大幅度增加。

过去几年,卷积神经网络在解决诸如视觉识别等很多问题方面都表现出色,但是其参数规模和计算量都是巨大的,因此训练和运行卷积神经网络都需要巨大的硬件和时间代价,通常训练一个神经网络需要数周的时间。现有研究[7]表明,卷积神经网络中90%以上的运算量由卷积层(Convolutional Layer)的卷积运算组成,可以表示为下式子:

其中,是输入图像通道,和表示图像滤波器尺寸。每个输入图像都和滤波器卷积,其中和是输入图像的尺寸。上述操作不是最优算法,从该实现可以得出卷积层一次前向传播的计算量为次乘加,显然直接实现该卷积运算量巨大,即便是优化过的CPU架构也无法胜任如此巨大的运算量。

针对卷积神经网络的加速主要从卷积层的优化出发,目前最广泛使用的是基于GPU平台的加速架构,GPU相比于CPU有更高的计算并行度和系统吞吐速率,利用全新的处理器架构以及高度优化的加速库(cuBLAS、cuDNN[8]),将图像卷积操作转化为大规模的线性矩阵乘积运算,可以在大幅度提升CNN速度的情况下保持一定的可配置特性,当前深度学习系统已经大量使用 GPU 集群作为处理平台,但是GPU的功耗一般高达上百瓦,单位功耗的计算效率还有待提高。

此外,使用 FPGA 也逐渐成为一种替代方案。由于 FPGA 架构灵活,研究者能够发挥模型级别优化,这是在固定架构如 GPU 上不具备的优势。FPGA提供每瓦高性能,对于应用科学家大规模基于服务器的部署或资源受限的嵌入式应用非常有吸引力。Stratix 10中每个变精度DSP 硬核可以独立配置为定点模式或兼容 IEEE-754 的浮点模式。上图为浮点模式,每个 DSP 硬核都包括一个单精度浮点乘法器和一个单精度浮点加法器,可以实现浮点加法、浮点乘法、浮点乘加、浮点乘累加等基本计算,非常适合 CNN 加速。Yann LeCun 2009 年的论文[9]中介绍了低端FPGA 上高效实现 ConvNets 的工作。利用了 ConvNets 内在并行性和 FPGA 上多个硬件乘累加单元。整个系统使用单个 FPGA 以及外部存储模块实现,没有其他额外单元。

现有文献针对CNN的优化主要从提高系统吞吐率、优化内存分配等角度出发,但是很少从减少卷积运算强度的角度出发对系统进行优化,在文献[10]中提出了一种可以有效降低卷积算术强度的方法。并行快速有限冲击响应算法(简称并行FFA)是算法强度缩减在并行FIR 滤波器中的应用。强度缩减利用共享子结构达到了缩减硬件复杂度的效果。在一个VLSI 实现或者一个可编程DSP 实现的迭代周期中,用这种变换可以降低硅面积和功耗。

从数字信号处理角度来看,一个N抽头有限脉冲响应(FIR)滤波器在时域上的操作其实是一维卷积。在卷积神经网络中,虽然卷积是二维的,但在每一行(或每一列)上仍然是一维卷积,那么我们就可以在每一行(或每一列)上运用并行快速有限冲击响应算法来降低计算复杂度。

剩余内容已隐藏,您需要先支付 10元 才能查看该篇文章全部内容!立即支付

发小红书推广免费获取该资料资格。点击链接进入获取推广文案即可: Ai一键组稿 | 降AI率 | 降重复率 | 论文一键排版