文献综述(或调研报告):
卷积神经网络是最具代表性的一种前馈多层人工神经网络,能够对大量有标签数据进行自动学习并从中提取复杂特征。卷积神经网络只需要对输入图像进行较少的预处理就能够从像素图像中识别出视觉模式,对有变化较多的识别对象也有较好的识别效果,并且识别能力不易受到图像的畸变或简单几何变换的影响。这些优点使得卷积神经网络成为多层人工神经网络研究的一个重要方向,多年来一直是研究的热点,近几年,更是在国内外知名大学、研究所、IT公司得到了大量项目支持,成为一个极其热门的研究课题。
卷积神经网络在近些年来得到了越来越广泛的应用。微软使用卷积神经网络来进行OCR和手写识别,其中包括阿拉伯文和中文字符识别系统;Google部在街景图片中使用卷积神经网络来检测人脸和车牌,以保护个人隐私;ATamp;T在用于交易的支票读取系统使用卷积神经网络来进行识别;法国电信在视频会议和其他系统中部署了基于卷积神经网络的人脸检测系统;基于视觉的非公路移动机器人使用了有监督的卷积网络来进行避障,而基于视觉导航的非公路机器人项目参与者在DARPA的资助下使用了卷积网络用来完成长距离的避障;系统在预先的离线训练采用无监督和有监督学习结合的方法进行,然后采用短距离立体视觉系统提供的带标签样本来对机器人运行进行在线。
而目前对FPGA的卷积神经网络的加速方案主要分为两个方面:一方面是从模型方面对卷积神经网络模型进行压缩,以最大限度降低 FPGA计算所需的计算资源和存储空间。目前常用的模型压缩方案主要有模型剪枝、矩阵的奇异值分解和数据量化,前两种方法主要应用于传统神经网络的全连接层的压缩,而数据量化方法则适用于卷积神经网络中的所有计算。.另一方面是从硬件实现的角度提高 FPGA对卷积神经网络的计算进行并行加速,通过对硬件的架构进行优化来达到目的。
事实上,人们在这两方面都进行了长期的研究。例如,对于模型的处理就有Hubara等人[1]的二值化神经网络(BNNs),他们的工作将深层神经网络二值化,可以显著提高功耗和计算速度。在前向传递(运行时和训练时)期间,他们所设计的BNNs大大减少了内存大小和访问,并用位操作取代了大多数算术操作。他们对前向传递中的计算进行了量化处理,大大提高了功率效率。而且他们工作中重复的二值化的卷积核就启示我们可以利用硬件来进行加速。而ICLR2016年的best paper[2](Han等人的工作)中首先对网络进行剪枝,只保留重要的连接,第二步通过参数共享量化权重矩阵,第三步对量化值进行哈夫曼编码,进一步压缩。整个网络在不影响性能的情况下,能够将参数量降低到原来的1/49~1/35。对神经网络的剪枝及量化是加速神经网络的重要途径。事实上,这样的工作还有很多。Dong等人的工作[8](2019)通过可转换架构搜索进行网络修剪,他们的模型剪枝包括三个步骤:一是通过标准分类训练程序训练未修剪的大型网络;二是通过可转换架构搜索小型网络的深度和宽度。通过简单的KD (Distilling the Knowledge)方法将知识从未修剪的大型网络转移到搜索的小型网络。在Kung等人[7]的工作中,则提出了一种新的稀疏卷积神经网络的封装方法。基于乘法器累加器的高效位串行实现,他们利用ASIC和FPGA设计研究了联合优化在高利用率和分类精度方面的有效性。在Gondimalla等人[4]的工作中,他们提出了SparTen,一种采用双边稀疏执行和内存存储支持实现内部联合的策略。
一种基于FPGA的CNN加速设计方法[9]是首先,采用了数据量化的方法对卷积神经网络中的数据进行了压缩;其次,提出了一种从 FPGA端发起数据传输的系统架构,避免了 在大量数据传输过程中处理器的频繁干预所造成的性能下降;最后,给出了用于卷积神经网络加速的高效计算和缓存电路实现.同时从软件模型、系统架构、电路实现三个方面保证了加速器的性能和效率。这种方法综合了两种加速方法,即通过对数据的量化,使得数据计算适应于FPGA上,又处理了处理器与可编程阵列之间的数据交流,充分的发挥了硬件优势。在余子健[10]的工作中,采用主机 FPGA的计算架构,设计了卷积神经网络FPGA加速器。加速器实现了完整的前向传播过程,采用流水线的结构提高整体性能。卷积运算单元结合了多种并行度,以获得数据带宽需求和运算效率的平衡;配置了乒乓式的缓存结构,利用数据重用提高运算效率;同时对全连接层计算进行了优化。激活函数采用PWL 查找表的实现方式,兼顾了通用性和资源消耗。在陆志坚[11]的工作中,我们知道通过分析卷积神经网络计算的多种并行特征开发 CNN 计算的并行性是卷积神经网络并行计算的关键问题。在 FPGA 资源约束条件下选择满足卷积神经网络性能设计要求的并行结构是 CNN 并行结构研究中的一个关键问题。缓存结构设计的优劣在很大程度上影响着卷积计算单元的硬件实现代价和性能,从而也成为并行结构研究中的一个关键问题。
卷积神经网络是一种源自人工神经网络的深度机器学习算法,它对图像的平移、比例缩放、倾斜等形式的变形具有高度的适应性,是提取图形特征的“灵敏”传感器,近年来得到越来越广泛的应用。目前,CNN神经网络主要基于通用处理器,但基于软件方式无法充分挖掘CNN神经网络的并行性,在实时性和功耗方面都不能满足应用的需求。越来越多研究者开始采用FPGA开发基于CNN神经网络的应用。因此,对CNN的硬件加速是符合工业发展所需的。
- I. Hubara, M. Courbariaux, D. Soudry, R. El-Yaniv, and Y. Bengio. Quantized neural networks: Training neural networks with low precision weights and activations. The Journal of Machine Learning Research (JMLR), 18(1):6869–6898, 2017
- S. Han, H. Mao, and W. J. Dally. Deep compression: Compressing deep neural networks with pruning, trained quantization and huffman coding. In International Conference on Learning Representations (ICLR),2015
- Barry de Bruin, Zoran Zivkovic, Henk Corporaal, Quantization of deep neural networks for accumulator-constrained processors, Micropro- cessors and Microsystems, Vol. 72, 102872, 2020.
- Gondimalla A, Chesnut N, Thottethodi M, et al. SparTen: A Sparse Tensor Accelerator for Convolutional Neural Networks[C]//Proceedings of the 52nd Annual IEEE/ACM International Symposium on Microarchitecture. ACM, 2019: 151-165.
- Liu Z, Mu H, Zhang X, et al. MetaPruning: Meta Learning for Automatic Neural Network Channel Pruning[J]. arXiv preprint arXiv:1903.10258, 2019.
- Hegde K, Asghari-Moghaddam H, Pellauer M, et al. ExTensor: An Accelerator for Sparse Tensor Algebra[C]//Proceedings of the 52nd Annual IEEE/ACM International Symposium on Microarchitecture. ACM, 2019: 319-333.
- Kung H T, McDanel B, Zhang S Q. Packing sparse convolutional neural networks for efficient systolic array implementations: Column combining under joint optimization[C]//Proceedings of the Twenty- Fourth International Conference on Architectural Support for Programming Languages and Operating Systems. ACM, 2019: 821-834.
- Dong X, Yang Y. Network Pruning via Transformable Architecture Search[J]. arXiv preprint arXiv:1905.09717, 2019.
- 张榜, 来金梅. 一种基于FPGA的卷积神经网络加速器的设计与实现[J]. 复旦学报(自然科学版), 57(2):236-242.
- 余子健. 基于 FPGA 的卷积神经网络加速器[D]. 杭州: 浙江大学, 2016.
- 陆志坚. 基于FPGA的卷积神经网络并行结构研究[D]. 哈尔滨工程大学.
- 王巍, 周凯利, 王伊昌, et al. 卷积神经网络(CNN)算法的FPGA并行结构设计[J]. 微电子学与计算机, 2019, 36(04):63-68 72.
- Rahman, M M Shaifur, Nasrin, Mst Shamima, Mostakim, Moin,et al. Bangla License Plate Recognition Using Convolutional Neural Networks (CNN)[J].
- Nagy Z, Szolgay P. Configurable multilayer CNN-UM emulator on FPGA[C]// 2003.
- Xuechao Wei, Cody Hao Yu, Peng Zhang,等. Automated Systolic Array Architecture Synthesis for High Throughput CNN Inference on FPGAs[C]// the 54th Annual Design Automation Conference 2017. ACM, 2017.
课题毕业论文、文献综述、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。