神经网络算法的FPGA实现及其性能优化
发布时间:2020-12-24 10:28
在人工智能领域,目前大多数神经网络的计算任务由CPU和GPU完成,传统的芯片计算架构已无法支撑神经网络所需求的大规模并行计算要求,这就需要新的底层硬件来更好地加速计算过程,为整个人工智能的实现提供算力。FPGA基于其出色的可重构性及并行运算等特性非常适合用来提升神经网络的计算性能,因此研究基于FPGA的神经网络计算架构具有重要的现实意义。本文通过分析神经网络计算的特点以及FPGA芯片的硬件特性,总结了FPGA实现神经网络过程中需要研究的几个关键问题,并针对性的给出的优化的设计方案。主要的研究内容包括:(1)讨论了典型激活函数的几种拟合方法,在对比分析的基础上提出了一种最佳等距分段逼近法对激活函数进行线性拟合,提高激活函数的拟合精度;(2)通过对比不同定点位数组合下神经网络的预测误差,得到定点位数与误差之间的关系,并据此确定定点位数的优选值;(3)介绍了两种脉动阵列的运算模式,分析了这种运算模式对于神经网络的乘加运算的适应性,应用潜力和局限性;(4)由于CSD编码可以极大的减少了乘法运算过程中产生的部分积数量,因此设计了一种基于CSD编码的可重载系数乘法运算模块,不但减少了乘法运算占用的...
【文章来源】:中北大学山西省
【文章页数】:78 页
【学位级别】:硕士
【部分图文】:
神经网络Figure1-1ArtificialNeuralNetworkANNsArtificialNeuralNetworks
中北大学学位论文11来更新权值阈值以缩小误差,此过程就叫做训练;直至输出误差达到期望的误差范围,停止更新保存当下的权值阈值,至此完成一个符合设计要求的BP神经网络。2.2.1梯度下降原理梯度下降算法原理是指在运算中找到目标函=()的极值点,即使导数′(x)=0的点[35]。在数学上,求出′(x)=0的解,便可得到=()的极值点(x0,y0)。在算法实现上,如图2-5所示,选定初始值X0,训练过程中通过多次迭代改变x的取值,最终经过大量的迭代试验后找到了函数极小值点。图2-5BP神经网络模型Figure2-5BPNeuralNetworkModel在求函数极小值的过程中,x值的改变是沿着=()的负梯度方向,即函数对自变量偏导数的反方向,因为沿着负梯度的方向=()减小最迅速,函数=()均朝着函数极小值的方向逼近,多次迭代后函数就能达到极小值。BP神经网络的误差反向传播的过程,充分利用了梯度下降法的原理,可以最快速度的寻找代价函数的最小值,得到最终的模型参数。2.2.2BP神经网络的训练过程BP神经网络利用梯度下降法原理,将神经网络的权值沿着误差的负梯度方向进行修正。BP神经网络在训练过程中,每次正向传播输出结果产生误差,误差反向输入,神经网络根据输入的误差改变每一个连接的权值和阈值。BP神经网络的学习过程主要分
中北大学学位论文16于FPGA具有布线资源丰富,可重复编程和集成度高,投资较低的特点,在数字电路设计领域得到了广泛的应用。2.3.1FPGA可重构技术FPGA因其芯片内部特有的结构,拥有动态可重构技术,可以多次重复配置的特点,采用时分复用的方式充分利用FPGA内部资源,使得时间上离散的功能模块能在同一FPGA片内顺序实现[39]。在神经网络的设计过程中,需要改变网络的拓扑结构以及连接的权值,FPGA的动态可重构技术完全满足神经网络的设计要求。FPGA芯片内部结构如图2-8所示。图2-8FPGA芯片内部结构示意图Figure2-8SchematicdiagramoftheinternalstructureoftheFPGAchip2.3.2流水线技术在神经网络中的应用FPGA拥有并行运算能力,非常适合神经网络的实现。FPGA中数据的串行或者并行处理会影响整个系统的速度。神经网络一般在硬件中不能完全实现并行运算,会存在一些必要的串行顺序处理,所以在神经网络硬件化设计中,需要设计最适合硬件的并行结构[40]。数据通过的串并结合的方式输入到网络,每一层的神经元之间采用并行计算,而网络的模块之间采用FPGA的流水线技术设计。神经网络的每一层之间采用FPGA的流水线的设计,这样可以将运算过程拆解成多个模块,再通过多个时钟周期完成运算,这种流水线设计可以提高每一层之间的处理速度。如图2-9所示,采用流水线设计,第
【参考文献】:
期刊论文
[1]基于FPGA的BP神经网络硬件实现及改进[J]. 杨景明,杜韦江,吴绍坤,李良,魏立新. 计算机工程与设计. 2018(06)
[2]深度学习中的卷积神经网络系统设计及硬件实现[J]. 王昆,周骅. 电子技术应用. 2018(05)
[3]基于Nios Ⅱ的脉冲神经网络硬件实现方法[J]. 张文娟,王蕾,王连明. 东北师大学报(自然科学版). 2016(04)
[4]基于FPGA的RBF神经网络的硬件实现[J]. 王兴. 电子设计工程. 2012(16)
[5]人工神经网络概述[J]. 张巧超,曾昭冰. 辽宁经济管理干部学院(辽宁经济职业技术学院学报). 2010(04)
[6]基于FPGA的混沌神经网络的硬件实现[J]. 任志山,张卫平. 龙岩学院学报. 2009(05)
博士论文
[1]基于卷积神经网络的硬件加速器设计及实现研究[D]. 赵博雅.哈尔滨工业大学 2018
硕士论文
[1]应用于人工视觉假体的图像分割神经网络设计与硬件实现[D]. 余强浩.西安理工大学 2019
[2]基于ZYNQ的卷积神经网络的硬件加速研究与实现[D]. 张斌.青岛大学 2019
[3]面向视频行人检测的卷积神经网络硬件实现与性能分析[D]. 杨帆.北京交通大学 2019
[4]基于卷积神经网络的SAR图像变化检测及硬件实现[D]. 杨孟然.西安电子科技大学 2019
[5]基于FPGA的SOM神经网络可配置模块化硬件实现方法研究[D]. 杜琳.东北师范大学 2018
[6]基于FPGA的BP神经网络硬件实现及应用[D]. 杜韦江.燕山大学 2018
[7]卷积神经网络的硬件实现算法研究[D]. 马静.上海交通大学 2018
[8]利用机器视觉分拣裂伤磁环的人工神经网络算法及硬件实现[D]. 路威德.河北工业大学 2017
[9]基于卷积神经网络的人脸识别及硬件实现[D]. 马杰.西安理工大学 2017
[10]基于FPGA器件的脉冲神经网络硬件实现研究[D]. 万雷.广西师范大学 2017
本文编号:2935490
【文章来源】:中北大学山西省
【文章页数】:78 页
【学位级别】:硕士
【部分图文】:
神经网络Figure1-1ArtificialNeuralNetworkANNsArtificialNeuralNetworks
中北大学学位论文11来更新权值阈值以缩小误差,此过程就叫做训练;直至输出误差达到期望的误差范围,停止更新保存当下的权值阈值,至此完成一个符合设计要求的BP神经网络。2.2.1梯度下降原理梯度下降算法原理是指在运算中找到目标函=()的极值点,即使导数′(x)=0的点[35]。在数学上,求出′(x)=0的解,便可得到=()的极值点(x0,y0)。在算法实现上,如图2-5所示,选定初始值X0,训练过程中通过多次迭代改变x的取值,最终经过大量的迭代试验后找到了函数极小值点。图2-5BP神经网络模型Figure2-5BPNeuralNetworkModel在求函数极小值的过程中,x值的改变是沿着=()的负梯度方向,即函数对自变量偏导数的反方向,因为沿着负梯度的方向=()减小最迅速,函数=()均朝着函数极小值的方向逼近,多次迭代后函数就能达到极小值。BP神经网络的误差反向传播的过程,充分利用了梯度下降法的原理,可以最快速度的寻找代价函数的最小值,得到最终的模型参数。2.2.2BP神经网络的训练过程BP神经网络利用梯度下降法原理,将神经网络的权值沿着误差的负梯度方向进行修正。BP神经网络在训练过程中,每次正向传播输出结果产生误差,误差反向输入,神经网络根据输入的误差改变每一个连接的权值和阈值。BP神经网络的学习过程主要分
中北大学学位论文16于FPGA具有布线资源丰富,可重复编程和集成度高,投资较低的特点,在数字电路设计领域得到了广泛的应用。2.3.1FPGA可重构技术FPGA因其芯片内部特有的结构,拥有动态可重构技术,可以多次重复配置的特点,采用时分复用的方式充分利用FPGA内部资源,使得时间上离散的功能模块能在同一FPGA片内顺序实现[39]。在神经网络的设计过程中,需要改变网络的拓扑结构以及连接的权值,FPGA的动态可重构技术完全满足神经网络的设计要求。FPGA芯片内部结构如图2-8所示。图2-8FPGA芯片内部结构示意图Figure2-8SchematicdiagramoftheinternalstructureoftheFPGAchip2.3.2流水线技术在神经网络中的应用FPGA拥有并行运算能力,非常适合神经网络的实现。FPGA中数据的串行或者并行处理会影响整个系统的速度。神经网络一般在硬件中不能完全实现并行运算,会存在一些必要的串行顺序处理,所以在神经网络硬件化设计中,需要设计最适合硬件的并行结构[40]。数据通过的串并结合的方式输入到网络,每一层的神经元之间采用并行计算,而网络的模块之间采用FPGA的流水线技术设计。神经网络的每一层之间采用FPGA的流水线的设计,这样可以将运算过程拆解成多个模块,再通过多个时钟周期完成运算,这种流水线设计可以提高每一层之间的处理速度。如图2-9所示,采用流水线设计,第
【参考文献】:
期刊论文
[1]基于FPGA的BP神经网络硬件实现及改进[J]. 杨景明,杜韦江,吴绍坤,李良,魏立新. 计算机工程与设计. 2018(06)
[2]深度学习中的卷积神经网络系统设计及硬件实现[J]. 王昆,周骅. 电子技术应用. 2018(05)
[3]基于Nios Ⅱ的脉冲神经网络硬件实现方法[J]. 张文娟,王蕾,王连明. 东北师大学报(自然科学版). 2016(04)
[4]基于FPGA的RBF神经网络的硬件实现[J]. 王兴. 电子设计工程. 2012(16)
[5]人工神经网络概述[J]. 张巧超,曾昭冰. 辽宁经济管理干部学院(辽宁经济职业技术学院学报). 2010(04)
[6]基于FPGA的混沌神经网络的硬件实现[J]. 任志山,张卫平. 龙岩学院学报. 2009(05)
博士论文
[1]基于卷积神经网络的硬件加速器设计及实现研究[D]. 赵博雅.哈尔滨工业大学 2018
硕士论文
[1]应用于人工视觉假体的图像分割神经网络设计与硬件实现[D]. 余强浩.西安理工大学 2019
[2]基于ZYNQ的卷积神经网络的硬件加速研究与实现[D]. 张斌.青岛大学 2019
[3]面向视频行人检测的卷积神经网络硬件实现与性能分析[D]. 杨帆.北京交通大学 2019
[4]基于卷积神经网络的SAR图像变化检测及硬件实现[D]. 杨孟然.西安电子科技大学 2019
[5]基于FPGA的SOM神经网络可配置模块化硬件实现方法研究[D]. 杜琳.东北师范大学 2018
[6]基于FPGA的BP神经网络硬件实现及应用[D]. 杜韦江.燕山大学 2018
[7]卷积神经网络的硬件实现算法研究[D]. 马静.上海交通大学 2018
[8]利用机器视觉分拣裂伤磁环的人工神经网络算法及硬件实现[D]. 路威德.河北工业大学 2017
[9]基于卷积神经网络的人脸识别及硬件实现[D]. 马杰.西安理工大学 2017
[10]基于FPGA器件的脉冲神经网络硬件实现研究[D]. 万雷.广西师范大学 2017
本文编号:2935490
本文链接:https://www.wllwen.com/kejilunwen/dianzigongchenglunwen/2935490.html