人工神经网络算法的硬件实现方法及其系统技术方案

技术编号:4168973 阅读:358 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种人工神经网络算法的硬件实现方法及其系统,克服了现有的硬件实现技术的昂贵与占用硬件资源过大的缺陷;它包括顶层模块,所述顶层模块由若干神经元模块组成,所述神经元模块的脉冲输入端输入给定的权值乘积,其输出端通过正态分布随机发生器和非线性变换器拟合成神经网络的Sigmoid函数,再经过脉冲转换器,转换成脉冲输出;本发明专利技术的神经网络算法的硬件实现方法及其系统和现有的实现技术相比,克服以往软件实现中的串行方式来完成并行计算的尴尬,取代了软件实现的弊端;又由于进行了算法优化,节省了大量硬件资源,在FPGA平台上实现,成本较低,利用优化的算法,避开了Sigmoid函数用硬件难以实现的困境,又使用了累加方式,节省了硬件资源。

Hardware implementation method and system of artificial neural network algorithm

The present invention provides an artificial neural network algorithm and hardware implementation method and system, to overcome the technical realization of existing hardware and expensive hardware resources occupied large defects; it includes the top-level module, the top-level module consists of several modules of the weights of neurons, neurons product module pulse input is given, the the output end of the normal distribution of random generator and converter nonlinear quasi Sigmoid function synthesis of the neural network, and then through the pulse converter, converted to pulse output; compared with the neural network algorithm of the invention of the hardware realization method and system and the existing technologies, to overcome the previous way of software realization in serial parallel computing to complete the embarrassment instead, the software and the drawbacks; optimizes algorithm, save a lot of hardware resources, On the FPGA platform, the cost is low, and the optimized algorithm is used to avoid the difficult realization of Sigmoid function with hardware, and the accumulation method is used to save the hardware resource.

【技术实现步骤摘要】

本专利技术涉及一种人工神经网络算法,特别涉及一种通过FPGA硬件的人工 神经网络算法的硬件实现方法及其系统。
技术介绍
人工神经网络是一种模拟人的直观性的思维,是一个非线性动力学系统, 其特点在于信息的分布式存储和并行协同处理。虽然单个神经元的结构极其简 单,功能有限,但大量神经元构成的网络系统所能实现的行为却是极其丰富多 彩的。人工神经网络的研究就是有效的利用了人大脑的这一特性,属于一门新 兴的边缘和交叉科学,对神经网络的研究,必定会对计算机科学和智能科学产 生深刻的影响,提高计算机的智能水平。人工神经网络的实现技术主要可以分为软件实现和硬件实现两种类型。软 件实现依托于目前的高性能计算机,通过程序编制来模拟实现神经网络,随着 计算机处理能力的不断增强,这种技术的应用范围也越来越广。而硬件实现就 是借助于微电子、光电子技术用硬件直接实现神经网络。软件实现人工神经网络的局限性在于软件实现人工神经网络是由支撑软 件运行的平台决定的,而目前的软件都是运行在单处理器的计算机或者工作站 上,这些计算机都是采用串行计算的方式来完成任务,因此其运算速度远未达 到实现实时神经网络的要求。虽然现在不断出现的多级流水线结构的专用数字 信号处理芯片从某种程度上为实现人工神经网络的并行处理提供了可能,但是 其单计算单元和总线冲突控制的限制使其不可能在同一时间完成多个神经元加权和计算。人工神经网络的硬件实现是基于不断发展的半导体技术的;所谓硬件实现 是指物理上的处理单元及通讯通道与一个实际应用的神经网络模型中的神经 元及连接一一对应。因此,要采用硬件实现的方式实现一个较大规模的人工神 经网络,需要耗费大量的硬件资源。近几十年来,半导体工艺的发展一直遵循摩尔定律,面积不断增大的晶圆、 宽度不断减小的连线、更加先进的蚀刻工艺等都使得我们可以在一块芯片上集 成更多的晶体管,因而可以实现更大规模、更加复杂的神经网络。尽管许多通过电脑程序的人工神经网络模拟已经被人们实现了,但电脑硬件不是为神经网络处理而最优化的,同时微处理器和DSP并不合适于并行设计。全并行的模块也可以使用ASIC或VLSI来实现,但由于其开发的昂贵性 和时间消耗太大,加之人工神经网络设计是仅针对一个目标的设计,所以并不 是很适合用于人工神经网络的开发。
技术实现思路
本专利技术的目的在于提供一种人工神经网络算法的硬件实现方法及其系统, 克服了现有的硬件实现技术的昂贵与占用硬件资源过大的缺陷,用VHDL实 现,便于硬件实现并且可以节省硬件资源。本专利技术所解决的技术问题可以采用以下技术方案来实现-一种人工神经网络算法的硬件实现方法,其特征在于,它包括如下的步骤(1) 进行人工神经网络算法将算法结果拟合成神经元的Sigmoid函数;(2) 用硬件描述语言VHDL实现步骤(1)所述的算法。 所述的算法为将输入值看成随机脉冲,在给点标准脉冲输入的情况下,输入的随机脉冲与标准脉冲之间的距离可看作是一系列随机事件,并服从正态分 布,将这些脉冲累加,拟合成神经元的Sigmoid函数。所述人工神经网络算法的硬件实现方法还包括验证歩骤,所述步骤为输入 (0, 0) (0, 1) (1, 0) (1, 1)对应的脉冲序列和权值,在输出端得到相应 的输出脉冲,与标准脉冲比较后,是否与异或算法的输出脉冲相符。一种人工神经网络算法的系统,其特征在于,它包括顶层模块,所述顶层 模块由若干神经元模块组成,所述神经元模块的脉冲输入端输入给定的权值乘 积,其输出端通过正态分布随机发生器和非线性变换器拟合成神经元的 Sigmoid函数,再经过脉冲转换器,转换成脉冲输出。所述人工神经网络算法的系统采用3-2-1网络,所述顶层模块包括3个输 入神经元、2个隐含层神经元、l个输出层神经元。所述神经元模块由乘法器和累加器组成,在时钟同步信号的控制下从上层 神经元的输入串行进入神经元并和其权值相乘,相乘结果在累加器中累加。 所述神经元模块完成任务的时钟周期等于其连接上层网络的连接数目。 所述神经元模块是并行处理的,其从公共输入线上得到一个输入。 本专利技术的神经网络算法的硬件实现方法及其系统和现有的实现技术相比, 克服以往软件实现中的串行方式来完成并行计算的尴尬,取代了软件实现的弊端;又由于进行了算法优化,节省了大量硬件资源,在FPGA平台上实现,成 本较低,利用优化的算法,避开了 Sigmoid函数用硬件难以实现的困境,又使 用了累加方式,节省了硬件资源。附图说明图1为本专利技术的结构示意图; 图2为本专利技术的模块结构图。具体实施例方式为了使本专利技术实现的技术手段、创作特征、达成目的与功效易于明白了解, 下面结合具体图示,进一步阐述本专利技术。如图1、周2所示, 一种人工神经网络算法的系统,它包括顶层模块xor一s, 顶层模块xor—s由若干神经元模块NY3—s组成。神经元模块NY3—s由乘法器 Multiplier—s和累加器Adder—s组成,在时钟同步信号的控制下从上层神经元的 输入串行进入神经元并和其权值相乘,相乘结果在累加器Adder—s中累加。所述人工神经网络算法的系统采用3-2-1网络,顶层模块xor—s包括3个 输入神经元、2个隐含层神经元、l个输出层神经元。参见图1,整个神经网络可以由3个3输入1输出的神经元模块NY3—s 构成(阴影部分)。每个神经元模块NY3一s的模型可以用图1和图2所阐述的 数学模型代替,其中每个神经元模块NY3_s的3个输入脉冲经过给定的权值 乘积,输入到累加器Adder一s中,再由正态分布随机发生器LFSR—s产生对应 的随机数,拟合成Sigmoid函数,完成相应的函数变换功能后,再经过脉冲转 换器,转换成脉冲输出。5(1) 数据表示在开始一个人工神经网络设计之前,关于输入、权重、和激活函数等数据 格式(定点,浮点等问题)必须考虑,但提高设计元素的精度会显著地增加资 源消耗。在学习阶段数据精度必须尽可能地高,而在传播阶段,较低精度也是可以接受的。在解决异或(XOR)问题中我们规定输入值在O和1之间,训练 结果产生的权值必须在0和1之间。我们选择带符号位的8位精度来覆盖[O, l]的范围。(2) 网络结构在FPGA上实现全并行神经网络,在全并行的网络中每个神经元模块 NY3一s的乘法器Multiplier—s的数目和到此神经元模块NY3—s的连接数是相等 的,而且所有的输出必须求和。累加器Adder一s的数目为和连接到上层的连接 的数目减l,见图l。(3) 神经元模块NY3一s结构每个神经元模块NY3—s有一个乘法器Multiplier—s和累加器Adder—s,处 理时,在时钟同步信号的控制下从上层神经元的输入串行进入神经元并和其权 值相乘,每个神经元模块NY3—s有它自己保存权值的地方,相乘结果在累加 器Adder—s中累加。每个神经元模块NY3—s完成任务的时钟周期等于其连接上 层网络的连接数目。(4) 层次结构所有的神经元模块NY3一s都是并行处理的,它们从公共输入线上得到一 个输入,乘以相应的权值再累加其输出,不计输入层的神经元,把隐含层和输 出层的神经元共有3个,为使算法简单,每个设计元设计成3输入1输出。这 样在编程的时候底层模块可以分别调用3个神经元。(5) 激活函数本文档来自技高网
...

【技术保护点】
一种人工神经网络算法的系统,其特征在于,它包括顶层模块,所述顶层模块由若干神经元模块组成,所述神经元模块的脉冲输入端输入给定的权值乘积,其输出端通过正态分布随机发生器和非线性变换器拟合成神经网络的Sigmoid函数,再经过脉冲转换器,转换成脉冲输出。

【技术特征摘要】
1、一种人工神经网络算法的系统,其特征在于,它包括顶层模块,所述顶层模块由若干神经元模块组成,所述神经元模块的脉冲输入端输入给定的权值乘积,其输出端通过正态分布随机发生器和非线性变换器拟合成神经网络的Sigmoid函数,再经过脉冲转换器,转换成脉冲输出。2、 如权利要求1所述的系统,其特征在于所述人工神经网络算法的系 统采用3-2-1网络,所述顶层模块包括3个输入神经元、2个隐含层神经元、1 个输出层神经元。3、 如权利要求1所述的系统,其特征在于所述神经元模块由乘法器和 累加器组成,在时钟同步信号的控制下从上层神经元的输入串行进入神经元并 和其权值相乘,相乘结果在累加器中累加。4、 如权利要求1所述的系统,其特征在于所述神经元模块完成任务的时钟周期等于其连接上层网络的连接数目。5、 一种人工...

【专利技术属性】
技术研发人员:马立新李长乐张学佳
申请(专利权)人:上海理工大学
类型:发明
国别省市:31[中国|上海]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1