一种基于现场可编程门阵列实现神经网络计算的方法

文档序号:9200213阅读:140来源:国知局
一种基于现场可编程门阵列实现神经网络计算的方法
【技术领域】
[0001]本发明涉及一种基于现场可编程门阵列实现神经网络计算的方法,属于神经网络计算技术领域。
【背景技术】
[0002]基于现场可编程门阵列(以下简称FPGA)内部包括可配置逻辑模块(Configurable LogicBlock,以下简称 CLB)、输入输出模块(Input Output Block,以下简称1B)和内部连线(Interconnect)三个部分。其中,CLB是FPGA内的基本逻辑单元,在Xilinx公司的FPGA器件中,CLB由多个(一般为4个或2个)相同的逻辑片(Slice)和附加逻辑如开关阵列构成。每个CLB模块不仅可以用于实现组合逻辑、时序逻辑,还可以配置为分布式随机访问内存(Random Access Memory,以下简称RAM)和分布式只读存储器(Read Only Memory,以下简称ROM)。逻辑片(Slice)内部结构中的逻辑片(Slice)由两个4输入的函数、进位逻辑、算术逻辑、存储逻辑和函数复用器组成。
[0003]基于冯诺依曼体系的计算机在偏向人工智能的可自学习的应用场景下,无法达到让人满意的结果,如:信息模糊处理、智能机器人、图像识别与筛选等。当前,神经网络有人工神经网络(Artificial Neural Network,以下简称ANN)和脉冲神经网络(SpikingNeuron Networks,以下简称SNN)两种不同的实现方式。ANN的实现方式主要依靠深度学习算法,从而达到类似人学习的一个过程。SNN充分模拟大脑的工作原理,来实现神经计算。
[0004]人脑宏观上是复杂的互联网络构成一个有机的整体,而FPGA中有大量的计算单元和可配置的互联方式,利用计算单元和内部连线(Interconnect)可构成复杂网络,实现神经计算,模拟大脑行为。现阶段流行的基于FPGA模拟神经网络的方法通过EDA综合工具生成电路后烧录于FPGA中,数个基本逻辑单元组合构成与单个神经元相同或类似的结构,进而构成整个网络,如SNN从而模拟神经网络、完成神经计算。鉴于单个基本逻辑单元已经有足够的运算能力,这种方法虽能模拟神经网络行为但产生了巨大的资源浪费。

【发明内容】

[0005]本发明的目的是提出一种基于现场可编程门阵列实现神经网络计算的方法,将现场可编程门阵列所具有的复杂计算与存储网络直接模拟神经网络,以现场可编程门阵列中基本逻辑单元来映射神经网络中的组成部分,通过一定的方法使现场可编程门阵列具有自适应调整器件之间的互联关系,以实现神经网络计算。
[0006]本发明提出的基于现场可编程门阵列实现神经网络计算的方法,包括以下步骤:
[0007](I)建立现场可编程门阵列中基本逻辑单元与神经网络各组成部分的映射关系;
[0008](2)用编程语言描述现场可编程门阵列各个基本逻辑单元的功能,建立现场可编程门阵列中的所有基本逻辑单元的模型,将所有基本逻辑单元的模型根据现场可编程门阵列的结构进行组合,得到现场可编程门阵列的模型;
[0009](3)对步骤(2)的现场可编程门阵列的模型设定多个配置信号,配置信号为现场可编程门阵列中各基本逻辑单元的互联关系和各基本逻辑单元的功能定义,使现场可编程门阵列模型中的各基本逻辑单元形成类神经网络的互联关系,将一个与神经网络计算相应的输入信号施加到现场可编程门阵列模型中,记录与该互联关系相对应的输出信号;
[0010](4)根据神经网络学习算法,优化步骤(3)中的基本逻辑单元之间的互联关系,使现场可编程门阵列软件模型对应特定的输入具有特定的输出,现场可编程门阵列内部基本逻辑单元之间形成稳定互联关系;
[0011](5)将步骤(4)的稳定互联关系映射到现场可编程门阵列中,该现场可编程门阵列完成神经网络计算。
[0012]本发明提出的基于现场可编程门阵列实现神经网络计算的方法,其优点是:本发明通过FPGA与神经网络结构的映射关系来模拟神经网络,通过FPGA基本逻辑单元间互联关系的重新配置以及其自身的运算能力完成网络的自学习过程,相比现阶段追求与真实神经网络结构一致的方法,本发明在模拟相同复杂度的神经网络时能较大的减少硬件开销。其次,本发明在现场可编程门阵列软件模型上完成神经网络的学习过程,大大地减少了学习的周期,节省了时间成本。
【附图说明】
[0013]图1是本发明提出的基于现场可编程门阵列实现神经网络计算的方法涉及的FPGA基本单元与真实神经细胞的映射关系图,其中逻辑片(Slice)单元可作为神经元,开关阵列(Switch Matrix)单元可作为突触,内部连线(Interconnect)可作为轴突。
【具体实施方式】
[0014]本发明提出的基于现场可编程门阵列实现神经网络计算的方法,包括以下步骤:
[0015](I)建立现场可编程门阵列中基本逻辑单元与神经网络各组成部分的映射关系;例如,将现场可编程门阵列中的逻辑片单元(Slice)看做为神经网络中的神经元,将现场可编程门阵列中的开关阵列单元(Switch Matrix)看做为神经网络中的多个突触,将现场可编程门阵列的内部连线看做为神经网络中的轴突,如图1所示。
[0016](2)用编程语言,如C语言,描述现场可编程门阵列各个基本逻辑单元的功能,建立现场可编程门阵列中的所有基本逻辑单元的模型,通过分析现场可编程门阵列各个基本逻辑单元的电路结构,了解其输入输出关系及其控制信号,用编程语言抽象描述其功能,形成现场可编程门阵列基本逻辑单元的模型。将所有基本逻辑单元的模型根据现场可编程门阵列的结构进行组合,得到现场可编程门阵列的模型;由于神经网络搭建完成后处于初始状态,其学习的过程需要大量及反复地调整互联结构,而真实的现场可编程门阵列构成的神经网络在调试过程中需要不断调整硬件语言代码并烧录于现场可编程门阵列中,整个过程耗时且效率低。而软件实现的现场可编程门阵列模型能以更便利地方式和更快地速度进行现场可编程门阵列内部的结构调整。
[0017](3)对步骤(2)的现场可编程门阵列的模型设定多个配置信号,配置信号为现场可编程门阵列中各基本逻辑单元的互联关系和各基本逻辑单元的功能定义,使现场可编程门阵列模型中的各基本逻辑单元形成类神经网络的互联关系,将一个与神经网络计算相应的输入信号施加到现场可编程门阵列模型中,如图像信号,记录与该互联关系相对应的输出信号;
[0018](4)根据神经网络学习算法,如脉冲神经网络(共享最近邻聚类)学习算法等,改善步骤(3)中形成的基本逻辑单元的互联关系,最终使现场可编程门阵列软件模型针对特定的输入,其有特定的输出以及其内部基本逻辑单元有稳定互联关系;例如对现场可编程门阵列模型输入由图像转化而成的数字信号时,现场可编程门阵列模型即可输出图像中对应物体的中文ASC II码。此即为整个现场可编程门阵列软件模型的训练、学习过程。
[0019](5)将步骤(4)稳定互联关系映射到现场可编程门阵列中,该现场可编程门阵列完成神经网络计算。
[0020]本发明方法中,可以根据神经网络计算的需要,将多个现场可编程门阵列级联,形成现场可编程门阵列网络以模拟规模更大的神经网络。
[0021]以下介绍本发明方法的一个实施例:
[0022]完成FPGA建模工作后,按照FPGA与神经网络的映射关系,配置FPGA模型,使得FPGA基本逻辑单元间形成类神经网络结构。现场可编程门阵列中逻辑片单元具有计算、存储功能,故可做为类神经网络中的神经元。现场可编程门阵列中的开关阵列单元可完成不同逻辑片单元间的连接,故可做为类神经网络中的突触。现场可编程门阵列的内部连线看做为神经网络中的轴突以传递信号。将机动车牌照图像信号,即像素矩阵作为输入信号,施加到FPGA模型输入端,对FPGA模型进行仿真,通过脉冲神经网络(共享最近邻聚类)学习算法程序调整FPGA模型中基本逻辑单元的连接关系,直至FPGA模型的输出信号为输入信号中车牌数字或字母的ASC II码值。将此时FPGA模型中基本逻辑单元的连接关系复制到真实的FPGA中,此FPGA即可实现车牌识别的功能。
[0023]以上,仅为本发明的较佳实施例,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求所界定的保护范围为准。
【主权项】
1.一种基于现场可编程门阵列实现神经网络计算的方法,其特征在于该方法包括以下步骤: (1)建立现场可编程门阵列中基本逻辑单元与神经网络各组成部分的映射关系; (2)用编程语言描述现场可编程门阵列各个基本逻辑单元的功能,建立现场可编程门阵列中的所有基本逻辑单元的模型,将所有基本逻辑单元的模型根据现场可编程门阵列的结构进行组合,得到现场可编程门阵列的模型; (3)对步骤(2)的现场可编程门阵列的模型设定多个配置信号,配置信号为现场可编程门阵列中各基本逻辑单元的互联关系和各基本逻辑单元的功能定义,使现场可编程门阵列模型中的各基本逻辑单元形成类神经网络的互联关系,将一个与神经网络计算相应的输入信号施加到现场可编程门阵列模型中,记录与该互联关系相对应的输出信号; (4)根据神经网络学习算法,优化步骤(3)中的基本逻辑单元之间的互联关系,使现场可编程门阵列软件模型对应特定的输入具有特定的输出,现场可编程门阵列内部基本逻辑单元之间形成稳定互联关系; (5)将步骤(4)的稳定互联关系映射到现场可编程门阵列中,该现场可编程门阵列完成神经网络计算。
【专利摘要】本发明涉及一种基于现场可编程门阵列实现神经网络计算的方法,属于神经网络计算技术领域。首先建立现场可编程门阵列中基本逻辑单元与神经网络各组成部分的映射关系,用编程语言,描述现场可编程门阵列各个基本逻辑单元的功能,建立现场可编程门阵列中的所有基本逻辑单元的模型,通过FPGA与神经网络结构的映射关系来模拟神经网络,通过FPGA基本逻辑单元间互联关系的重新配置以及其自身的运算能力完成网络的自学习过程,相比现阶段追求与真实神经网络结构一致的方法,本发明在模拟相同复杂度的神经网络时能较大的减少硬件开销。其次,本发明在现场可编程门阵列软件模型上完成神经网络的学习过程,大大地减少了学习的周期,节省了时间成本。
【IPC分类】G06N3/02, G06F9/44
【公开号】CN104915195
【申请号】CN201510258018
【发明人】何虎, 马海林, 徐志恒, 马千里, 杨弈南, 邓宁
【申请人】清华大学
【公开日】2015年9月16日
【申请日】2015年5月20日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1