计算机软件论文栏目提供最新计算机软件论文格式、计算机软件硕士论文范文。详情咨询QQ:1847080343(论文辅导)

面向嵌入式系统的神经网络二值化思考

日期:2024年04月21日 编辑:ad201107111759308692 作者:无忧论文网 点击次数:133
论文价格:150元/篇 论文编号:lw202404161111229399 论文字数:43661 所属栏目:计算机软件论文
论文地区:中国 论文语种:中文 论文用途:硕士毕业论文 Master Thesis

本文是一篇计算机软件论文,本文研究了面向嵌入式系统的二值神经网和硬件加速方法。从系统加速、二值神经网络和硬件加速三个方向出发,深入分析了什么神经网络更适合硬件,如何使硬件计算网络更快,并提出了一系列的方法,包括:系统优化设计、0/1二值神经网络、FPGA硬件加速器。

第一章 绪

1.1 研究目的与意义

随着5G和一系列智能技术的日益发展,移动终端和物联网(IoT)设备的数量在人们的日常生活中呈现爆发性增长,这使得边缘计算成为研究界的一个关键话题。因为随着技术的发展和数据量的激增(例如智能驾驶),云计算越来越难以满足数据处理的及时性。而边缘计算的数据处理可以在边缘节点完成,而不像过去集中在云服务器上,这大大减少了数据处理和传输所需的延迟,并降低了成本和能耗。随着深度神经网络(DNNs)的不断发展,越来越流行将边缘计算和DNNs相结合。边缘计算的典型架构如图1-1所示,神经网络的推理工作在边缘节点上完成以满足低延迟的需求。神经网络的训练需要大量的计算资源,而边缘节点的设备一般为资源有限的嵌入式设备,很难高效的快速训练神经网络,因此网络的训练在云端进行。边缘节点可以从云服务器下载经过训练的神经网络模型,并使用云来扩展自身的存储空间和计算能力以应对规模更大、更复杂的神经网络。

计算机软件论文怎么写

1.2 国内外研究现状

浮点数卷积的计算操作包括大量的乘法、加法和减法,对资源受限的设备并不友好。二值化通过特定方法将激活和权重转换为{+1,-1},即将32位浮点数减少到2位甚至1位,从而可以极大地压缩模型并带来巨大的加速潜力。在将权重量化为{+1,-1}后,可以省略所有乘法运算[1][2],DNN的精度仅略有下降。当激活和权重都被量化为{+1,-1}时,xnor popcount操作可以用来完全取代乘法累加操作[3][30][36],从而大大降低硬件消耗。尽管权重和激活二值化将导致精度的小幅降低,但通过优化设计,可以保证精度的下降在可接受的范围内,甚至精度接近全精度网络的精度[4][6]。

尽管BNN大大减小了神经网络模型的大小,但由于其二值化特性,它仍然具有巨大的冗余。通过调整这些冗余[7][10],硬件可以以更低的功耗实现更高的性能。这对于在边缘计算设备上部署DNN非常重要。文献[10][11]的最新研究表明,将元素值量化为{0,1}是可行的,并且性能甚至优于{+1,-1}。文献[10]利用0/1量化为BNN带来了的稀疏性,减少了58.8% 的数据访问。此外,基于BNN的研究也可以帮助人们回答DNN的可解释性。之前有工作已经验证了神经网络的鲁棒性。但是,由于浮点错误问题,全精度验证器面临可扩展性挑战,无法提供正确性的保证。Jia等人[12]提出了EEV系统,该系统使用BNN来准确验证神经网络,并消耗更少的时间。此外,将一个特定的层进行二进制化,以探索其对准确性的影响,也可以帮助我们解释神经网络。

第二章 相关理论与技术

2.1 深度神经网络

深度神经网络(DNN)是机器学习的一个分支,强调从连续的层中学习。在通过多个层进行学习输入数据之后,DNN将生成预测结果。DNN中的“深度”很好理解,意味着模型中有许多层。更多的层数通常可以使DNN拥有更强的学习能力。大多数DNN通常包含数十甚至数百个连续的表示层,这些层是从训练数据中自动学习的。

由于其令人满意的性能,DNN已被应用于各种领域,如人脸识别和自动驾驶。然而,DNN正朝着更多层数和更多节点的方向发展,这意味着其模型容量通常非常大,其时间和能耗也非常巨大。

计算机软件论文怎么写

2.3 选择FPGA作为加速器的理由

随着DNN的结构越来越复杂,计算量越来越大,CPU已经很难执行网络训练和推理任务。因此,需要一个新的计算平台。GPU具有极高的并行性和极高的内存带宽。然而GPU的成本较高,并且消耗更多的能耗,很难在资源有限的嵌入式计算设备上大量部署GPU。

FPGA是一种具有大量分布式计算和存储资源的可编程逻辑器件。FPGA具有高度灵活的IO、较低的计算功耗以及独立、并行的流水线计算功能,非常满足嵌入式设备的计算需求。高度灵活的IO允许连接到几乎任何类型的接口,并可以处理许多传感器。FPGA只需要非常低的功耗即可完成工作。并且它可以被重新编程以支持定制的硬件设计。随着边缘计算的发展,FPGA可以很容易地适应新的需求、应用和功能,而不会带来巨大的成本负担。

与服务器上使用的GPU相比,边缘嵌入式设备上使用的FPGA可以大大降低带宽。当GPU用于提高计算能力时,计算数据需要共享服务器的网络带宽、内存带宽等,这影响了计算效率,加剧了服务器的带宽瓶颈。但是FPGA计算所需的数据不需要进入服务器。硬件加速过程与服务器的带宽瓶颈分离,以避免与CPU的带宽竞争。同时,FPGA可以承担一些原本属于CPU的计算任务,并减少进入服务器的数据量和计算复杂性。利用FPGA的并行处理数据特性,可以形成流水线设计,以减少对缓存的依赖,并进一步减少延迟。与GPU不同,FPGA可以针对每个特定应用进行深度定制,这非常适合边缘计算。在边缘节点,FPGA为来自各种终端设备的DNN加速请求队列提供服务。FPGA设备可以从DNN加速器库中执行一组DNN加速器,每一个都针对特定目标(例如精度和性能)进行优化,而这些GPU不能。

基于FPGA的硬件推理加速器具有高度的自主可扩展性和低功耗特点,如今已成为研究的热点。

第三章 面向回归问题的神经网络二值量化方法 ............. 15

3.1 研究动机 .................... 15

3.2 权重二值化 ............................. 17

3.3 数据预处理 ............................. 20

第四章 0/1与1/-1的混合量化方法 ...................... 32

4.1 研究动机 ............................. 32

4.2 深度可分离卷积 ........................ 33

4.3 混合量化策略 ............................ 36

第五章 面向0/1与1/-1混合量化的加速器设计 ................ 58

5.1 研究动机 ........................... 58

5.2 数据表示 ..................... 59

5.3 卷积层加速 .................................... 60

第五章 面向0/1与1/-1混合量化的加速器设计

5.1 研究动机

目前,已经有很多神经网络硬件加速的研究,一些工作采取直接修剪神经元全连接层的节点,以获得数倍,甚至超过40倍的权重压缩率,并实现低功耗和高帧率。但直接修剪神经元的数量会造成神经网络精度的下降。因此,一些工作选择跳过不必要的计算来达到加速的目的,而非直接修剪神经元。根据神经网络中权重或激活的相似性,硬件可以跳过许多计算步骤以减少功耗。还有一些工作研究部分二值化,因为硬件有时候不需要将神经网络完全二值化也能满足低资源消耗的要求,因此使用部分二值化来提高神经网络的精度。

计算机软件论文参考

第六章 全文总结与展望

6.1 全文总结

随着边缘计算和人工智能的快速发展,智能边缘计算概念变得越发的火热。边缘计算的优势是比云端更接近用户,可以更快速的对数据进行处理。但是边缘设备往往是资源有限的嵌入式设备,而神经网络的庞大参数和复杂计算为神经网络大规模部署在嵌入式设备上带来了困扰。随着智能边缘计算的发展,如何在嵌入式系统上部署神经网络并完成实时计算成为了研究的热点。

为了能够在嵌入式系统上完成神经网络的实时推理,本文研究了面向嵌入式系统的二值神经网和硬件加速方法。从系统加速、二值神经网络和硬件加速三个方向出发,深入分析了什么神经网络更适合硬件,如何使硬件计算网络更快,并提出了一系列的方法,包括:系统优化设计、0/1二值神经网络、FPGA硬件加速器。 本文的主要工作如下:

(1)本文针对多输入多输出的回归问题,研究二值量化,提出了一种面向回归问题的神经网络二值量化方法。该论文设计了相应的1/-1二值神经网络和硬件加速器。根据对现实应用的客观需求分析,将权重量化到{1,-1},激活保留为全精度浮点数。通过添加BN层,对数据进行预处理和重训练等工作,提高了二值神经网络的精度,使其达到现实环境的要求。通过进行并行化设计和流水线处理,使硬件计算加快了数倍以上。并通过压缩存储,使神经网络的参数可以全部存储进硬件的BRAM中。进行了软硬协同设计,优化了硬件的并行计算效率。实验数据集选用雷达照射角度数据集,因为该实际应用为热点方向且能泛化为其他的多输入多输出问题。最后在低功耗的前提下,实现了将网络规模缩小25倍、硬件资源消耗少的快速推理照射角度的功能。

(2)为了解决1/-1二值化无法在硬件中用1bit准确表示的问题,提出了一种0/1与1/-1的混合量化方法。该量化方法更适合嵌入式设备。通过使用深度可分离卷积,将神经网络的参数量和计算量大幅降低,解决了0/1二值神经网络带来的只增不减问题。使用可训练变量来代替量化函数中的边界判断,提升了混合量化神经网络的精度。分析了激活函数对混合量化神经网络的影响,并设计了新的激活函数。通过优化最大池化层,使其在进行特征提取的同时,能够包含更多的空间信息。

参考文献(略)