首页> 中国专利> 一种随机神经网络硬件实现装置

一种随机神经网络硬件实现装置

摘要

本发明涉及一种随机神经网络硬件实现装置,它包括输入层、隐含层和输出层:输入层由m个输入神经元I组成,输入神经元I包括一个随机数转换器A,输入向量经过随机数转换器A后输出随机数据序列一;隐含层由s个隐含神经元J组成,隐含神经元J包括一个随机数转换器B、一个随机函数发生器和一个确定数转换器C,参数码流经过随机数转换器B后与随机数据序列对齐再经随机函数发生器,得到随机数据序列二,随机数据序列二经过确定数转换器C,输出确定数一;输出层由n个输出神经元K组成,输出神经元K包括一个确定数转换器D和一个线性函数处理器,参数码流二经过确定数转化器D后与确定数对齐再经线性函数处理器,输出目的向量。本发明可极大降低硬件逻辑和布线资源,降低电路成本功耗,同时网络运算精度高,增强训练样本的拟合能力。

著录项

  • 公开/公告号CN106127301A

    专利类型发明专利

  • 公开/公告日2016-11-16

    原文格式PDF

  • 申请/专利权人 上海大学;

    申请/专利号CN201610026441.8

  • 申请日2016-01-16

  • 分类号G06N3/06(20060101);

  • 代理机构上海上大专利事务所(普通合伙);

  • 代理人何文欣

  • 地址 200444 上海市宝山区上大路99号

  • 入库时间 2023-06-19 00:53:35

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-01-11

    授权

    授权

  • 2016-12-14

    实质审查的生效 IPC(主分类):G06N3/06 申请日:20160116

    实质审查的生效

  • 2016-11-16

    公开

    公开

说明书

技术领域

本发明涉及一种随机神经网络硬件实现装置。所谓随机神经网络是指输入层和隐含层采用随机数对数据进行传输和处理,输出层采用确定性数的方式进行输出的一种网络结构。

背景技术

人工神经网络(Artificial Neural Network,简称神经网络),是从信息处理的角度模仿大脑神经网络的结构和功能,通过大量简单神经元互连而构成的一种复杂网络。每个神经元接受大量其他神经元的输入,并通过并行网络产生输出,影响其他神经元。网络之间的互相制约和相互影响,实现了从输入状态到输出状态空间的非线性映射。人工神经网络可以通过训练和学习来获得网络的权值与结构,呈现出很强的自学习能力和对环境的自适应能力。同时,人工神经网络也有较高的容错性,具有很好的使用价值。

人工神经网络技术的发展使得其用途日益广泛,应用领域也在不断扩展。具体而言,其主要用于模式信息处理和模式识别、最优化问题计算、信息的智能化处理、复杂控制以及信号处理的工作。人工神经网络的实现目前主要有两种方法:一是在现有的冯·诺依曼体系结构的数字计算机上编制程序,利用计算机高性能的数学运算能力,用软件来模拟实现神经网络;另一种方法是借助于微电子、光或光电技术用硬件直接实现神经网络。软件模拟实现人工神经网络的方法不能体现神经网络并行处理信息的基本特性,即使利用各种硬件加速处理单元,在处理速度上依然远不能满足研究和使用的要求,特别是实时应用的要求。而用硬件手段直接实现的人工神经网络系统,才能真正体现神经网络的并行信息处理能力。

目前,中国专利,专利号为200810034313.3“人工神经网络算法的硬件实现方法及其系统”,用脉冲作为神经网络的输入,与给定的权值进行乘积运算,最终拟合成神经网络的Sigmoid函数。然而BP网络使用Sigmoid函数作为激活函数,相比于径向基函数(RBF)神经网络,其收敛速度慢且无法保证网络误差收敛到全局最小。

中国专利,专利号为201110362577.3“一种基于概率计算的正余弦信号的产生方法”,用概率数的方式产生正余弦信号,其中乘法和相减操作的硬件结构,均以概率计算的方式实现,虽然能够减少电路所需逻辑门数量,使核心电路复杂性降低,但是不能用概率计算的方式完成其他运算结构,且只适用于通信领域正余弦信号的产生,应用范围有一定局限性。

中国专利,专利号为201510904444.2“一种基于概率计算的人工神经网络硬件实现装置”,输入层到隐含层、隐含层到输出层均采用概率计算的方式实现逻辑运算门的计算,虽然能够减少电路所需逻辑门数量,完成如高斯函数等复杂的函数计算,但是对于同样的精度需要采用更长的随机码流,每次的概率计算均增加了误差,使得输出值均方误差较大。

我们知道,精度要求是神经网络的一个关键问题,网络训练精度越高,允许的训练误差越小,网络对于训练样本的拟合能力越高。神经元太少,网络也不能很好地学习,需要训练的次数也多,很难达到较高的训练精度。然而在现有技术中,网络训练精度越高,模型越复杂,硬件实现面积也越大,使得模型的适应能力和推广能力大大降低,不同的拓扑结构(输入层节点数m和隐含层节点数s)的网络,达到最优计算精度的目标值不同,存在一个最优网络,其拓扑结构和网络收敛部位均达到最优。本领域的技术人员致力于研发一种低成本高精度的大规模神经网络,可用普通硬件电路实现。

发明内容

本发明的目的是针对上述神经网络精度不高、模型复杂等的缺陷,提供一种精度较高,实时性和容错性较佳的随机神经网络硬件实现装置。一方面可以用非常简单的硬件逻辑运算门实现加法、乘法和指数运算,采用具有自适应能力的径向基神经网络进行学习,具有结构简单易于调整、收敛速度快等优点;另一方面,该装置采用随机逻辑、确定性逻辑相结合的方法,大大提高了网络精度,有效减小误差,尤其是在输入数据极大的情况下,具有很好鲁棒性(反映精度对输入参数变动的敏感程度),是一种相对准确、高效、低成本的神经网络。

为了达到上述目的,本发明的构思是:将传统的二进制数转换为随机数据序列,以序列中出现1(或0)的概率来表示确定数计算中采用的数值,则能用一个简单的逻辑与门或一个逻辑异或门来完成乘法运算,以一维线性状态机或二维矩阵状态机来完成指数运算,从而大大减少逻辑电路规模,网络的输出采用确定数输出,与现有神经网络的接口兼容,资源消耗少。不仅克服了现有的硬件实现技术的昂贵与占用硬件资源过大的缺陷,而且该优化装置具有良好的神经网络拟合效果,减少了系统功耗,具有较高的插值精度,为模式识别、目标预测和函数插值工程应用提供了基础。

根据上述发明构思,本发明采用下述的技术方案:

一种随机神经网络硬件装置,该装置的网络框图如图1所示。它包括输入层、隐含层和输出层,输入层接受输入向量(1)的输入,将所得输出传输至隐含层,隐含神经元J接受随机数据序列一(2)、参数码流一(11),输出确定数一(14)并输入给输出神经元K,最终得到目的向量(23)。其中输入层由一些感知神经元组成,它将外界输入变量与神经网络内部神经元进行连接传输,在整个网络中起到缓冲和连接的作用,隐含层则是要将输入向量映射到隐含层空间上去,该过程是非线性的变换,可以采用一种径向对称的核函数作为隐含层神经元的激活函数,径向基函数承担着作为一组输入变量“基”的职责,它是一种非负且非线性的径向中心点对称衰减函数,这种函数对那些靠近核函数中心点位置的输出变量较为敏感,能够产生更强的输出信号,最后输出层针对输入数据进行简单的线性变换。

一种随机神经网络硬件装置,该装置的总体结构图如图2所示。它包括输入层、隐含层和输出层;该神经网络包含m个输入神经元I、s个隐含神经元J、n个输出神经元K,各层神经元个数根据不同应用情况设定,但皆为大于或等于1的整数;输入神经元I接受输入向量(1),经过随机数转换器A,输出随机数据序列一(2);隐含神经元J接受随机数据序列一(2)、参数码流一(11),参数码流一(11)经过随机数转换器B得到随机码流序列(12)、随机码流序列(12)和随机数据序列一(2)输入给随机函数发生器(41),得到随机数据序列二(13),随机数据序列二(13)经过确定数转换器C,输出确定数一(14);输出神经元K接受确定数一(14)、参数码流二(21),经过确定数转化器D、线性函数处理器(61),输出目的向量(23);其中,随机数据序列一(2)、随机数据序列二(13)、随机码流序列(12)均以一段时间内序列中出现1(或0)的概率表示一个数值。所述序列是指,在每一个时钟周期输出的数据连续排列形成的序列。

所述一种随机神经网络硬件装置,其特征在于,每一个输入神经元I均包含一个随机数转换器A,如图3所示,用以将输入向量(1)转换为随机数据序列一(2),所述随机数转换器A由一个随机数发生器(31)和一个多路选择器(32)组成,m个输入神经元I共包含m个随机数转换器A。

所述一种随机神经网络硬件装置,其特征在于,随机数转换器A、随机数转换器B均由一个随机数发生器(31)和一个多路选择器(32)组成,如图4所示。所述随机数发生器(31)用于产生随机数,所述多路选择器(32)将输入向量(1)和随机数发生器(31)产生的随机数进行概率为1/2的选择输出,输出所得结果为0或1,在时间上形成序列,作为随机数据序列一(2),如图4-1所示。多路选择器(32)将参数码流一(11)和随机数发生器(31)产生的随机数进行概率为1/2的选择输出,作为随机码流序列(12),如图4-2所示。所述随机数转换器B、m个随机数转换器A中的随机数发生器(31)产生的数据必须保持互不相关,即当前比特的值不依赖于前次比特的值,每一个比特的值均保持独立。所述随机数发生器(31)为伪随机数据或真随机数据。因为在实际系统中真随机数较难产生,但只要保证不同转换逻辑产生的随机数彼此不相关,则可用一定循环长度的伪随机数来产生随机序列,其效果与真随机数产生的序列相同。伪随机数一般由线性反馈移位寄存器得到。

所述一种随机神经网络硬件装置,其特征在于,每一个隐含神经元J都能够以随机数据序列一(2)为输入自变量,以参数码流一(11)通过随机转换器B输出的随机码流序列(12)为输入偏置量,在随机函数发生器(41)中完成函数运算,输出随机数据序列二(13);再经过确定数转换器C将随机数据序列二(13)转换为确定数一(14),并作为隐含神经元J的输出数据,输入至输出层。如图5所示。

所述一种随机神经网络硬件装置,其特征在于,每一个隐含神经元J均包含随机函数发生器(41)模块,所述随机函数发生器(41)包括XOR门(42)和m路二维拓扑结构状态机函数发生器(43),如图6所示。每一路随机函数发生器(41)将相应输入神经元I输入的随机数据序列一(2)和随机码流序列(12)进行逻辑异或运算,即完成随机数据的减法运算,通过二维拓扑结构状态机函数发生器(43)输出随机数据序列二(13)。该运算过程均使用概率数(即一段时间内序列中出现1(或0)的概率表示一个数值)。所有I个随机数据序列二(13)均输入至所述确定数转换器C进行逻辑转换,得到确定数一(14)作为整个隐含层神经网络的输出。

二维拓扑结构状态机函数发生器(43)完成的函数运算种类包括但不限于高斯函数、子波函数、正交函数、样条函数、多二次函数、逆多二次函数、三次函数、线性函数等;二维拓扑结构状态机函数发生器(43)的中心可以在数据点或不在数据点上,不同的学习算法决定不同的函数的中心:比如随机算法、自组织学习算法、HCM算法、自组织映射算法等,其对应的中心选取方法均不同。

所述一种随机神经网络硬件装置,其特征在于,所述确定数转换器C、确定数转换器D均由加法器(51)和除法器(52)组成,如图8所示。加法器(51)用于统计一段时间内随机数据序列二(13)中1的个数,除法器对由加法器所产生的确定数进行概率估计得到确定数一(14),如图8-1所示。确定数转换器D对于随机序列进行转换得到确定数二(22),如图8-2所示。确定数转换器C、确定数转换器D均无需进一步处理信号,便可提供一个具有相对精确的初步估计。

所述一种随机神经网络硬件装置,其特征在于,所述装置还包括参数码流一(11)和参数码流二(21),两者存储在一个非易失性存储器中。参数码流一(11)参与计算隐含神经元J的输出值(13),参数码流二(21)参与计算输出神经元K的输出值(23),参数码流一(11)和参数码流二(21)均可以为随机序列或非随机序列。当参数码流一(11)为非随机序列时,所述一种随机神经网络的硬件装置还包括随机数转换器B,用以将参数码流一(11)转换为参数码流一随机序列;当参数码流二(21)为随机序列时,所述一种随机神经网络的硬件装置还包括确定数转换器D,用以将参数码流二(21)转换为二进制确定数。

所述一种随机神经网络硬件装置,其特征在于,每一个输出神经元均包括确定数转换器D和线性函数处理器(61),输入确定数一(14)、参数码流二(21),参数码流二(21)经过确定数转换器D转换后得到确定数二(22),如图7所示。每个输出神经元的结构相同,只是权值和偏置值不同,也即输出等于加权输入加上偏差,最终得到目的向量(23)。

所述一种随机神经网络硬件装置,其特征在于,所述网络可以是前向网络,也可以是递归网络,前向网络的特点是信号流向是从输入(1)通向输出(23),递归网络的特点是输出神经元K可以通过与输入连接而返回到输入端(1),形成一个回路,如图9所示。前向网络的输出只与当前输入及其联接权值有关,递归网络中,由于将输出循环返回到网络的某(些)个输入端,所以每一时刻的网络输出不仅取决于当前的输入,而且还取决于上一时刻的输出。其输出的初始状态由输入向量(1)设定后,随着网络的不断运行,从输出反馈到输入的反馈信号不断改变,也使得输出不断变化,从而使网络表现出暂态以及动态特性,因而递归网络表现出前向网络所不具有的振荡或收敛特性。

与现有技术相比,本发明具有如下突出实质性特点和显著优点:

第一,中间神经元采用非常精简的运算逻辑实现神经网络的运算,极大地降低了神经网络的硬件逻辑资源,减小了网络构建成本。

第二,该装置不仅降低了逻辑门资源,还可以降低布线资源,进一步降低电路成本,同时也减小了逻辑运算单元,极大地降低了电路功耗,使得采用中小规模电路实现超大规模的神经网络成为可能。

第三,该装置求解思路明晰,与现有神经网络的接口兼容,抗干扰能力强,容许输入噪声和数据错误,当电路中有个别数据发生改变时,其最终结果并不会发生根本变化,能够以较高的识别率完成模式识别等任务。

第四,优化的随机神经网络装置,结构简单,与全随机神经网络相比,不仅是在处理速度上还是在精度上都获得了更进一步地提高,尤其是对于大规模且精度要求高的网络具有很好的使用价值。

附图说明

图1为本发明的一个较佳实施例中的一种随机神经网络硬件实现装置的系统设计示意图。

图2为本发明的一个较佳实施例中的一种随机神经网络硬件实现装置的结构示意图。

图3为本发明的另一个较佳实施例中的输入神经元的结构示意图。

图4为本发明的另一个较佳实施例中的随机数转换器的结构示意图。

图5为本发明的另一个较佳实施例中的隐含神经元的结构示意图。

图6为本发明的另一个较佳实施例中的二维拓扑结构状态机函数发生器的结构示意图。

图7为本发明的另一个较佳实施例中的输出神经元的结构示意图。

图8为本发明的另一个较佳实施例中的确定数转换器的结构示意图。

图9为本发明的另一个较佳实施例中的递归网络的结构示意图。

具体实施方式

为了使读者对本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明:

实施例一:

参考图1、图3、图5和图7,本发明的一个较佳实施例中的一种随机神经网络硬件实现装置的系统设计示意图,它包括三层结构——输入层、隐含层和输出层:输入层由m个输入神经元I组成,每个输入神经元I包括一个随机数转换器A,输入向量(1)经过随机数转换器A后输出随机数据序列一(2);隐含层由s个隐含神经元J组成,每个隐含神经元J包括一个随机数转换器B、一个随机函数发生器(41)和一个确定数转换器C,参数码流一(11)经过随机数转换器B后与随机数据序列一(2)一齐再经随机函数发生器(41),得到随机数据序列二(13),随机数据序列二(13)经过确定数转换器C,输出确定数一(14);输出层由n个输出神经元K组成,每个输出神经元K包括一个确定数转换器D和一个线性函数处理器(61),参数码流二(21)经过确定数转化器D后与确定数一(14)一齐再经线性函数处理器(61),输出目的向量(23);所述随机神经网络是指输入层和隐含层采用随机数对数据进行传输和处理,输出层采用确定性数的方式进行输出的一种网络结构,各层神经元个数根据不同的应用情况设定;输入神经元I的输出端连接到隐含神经元J的输入端,其连接采用全相连或者部分相连的方式;隐含神经元J的输出端连接到输出神经元K的输入端,其连接采用全相连或或者部分相连的方式。

实施例二:

参考图2为本发明的一个较佳实施例中的一种随机神经网络硬件实现装置的结构示意图。该神经网络包含m个输入神经元I、s个隐含神经元J、n个输出神经元K,各层神经元个数根据不同应用情况设定,存在一个最优的输入层节点数m和隐含层节点数s,使得网络结构具有较高的计算精度。输入神经元I接受输入向量(1),经过随机数转换器A,输出随机数据序列一(2);隐含神经元J接受随机数据序列一(2)、参数码流一(11),参数码流一(11)经过随机数转换器B得到随机码流序列(12)、随机码流序列(12)和随机数据序列一(2)输入给随机函数发生器(41),得到随机数据序列二(13),随机数据序列二(13)经过确定数转换器C,输出确定数一(14);输出神经元K接受确定数一(14)、参数码流二(21),经过确定数转化器D、线性函数处理器(61),输出目的向量(23)。

其中,随机数据序列一(2)、随机数据序列二(13)、随机码流序列(12)均以一段时间内数据序列中出现1(或0)的概率表示一个数值。上述的数据序列是指,在每一个时钟周期输出的数据连续排列形成的序列。

实施例三:

本实施例与实施例一基本相同,特别之处如下:

所述一种随机神经网络硬件实现装置还包括参数码流一(11)和参数码流二(21),两者存储在一个非易失性存储器中。其中,参数码流一(11)参与计算隐含神经元J的输出值(13),参数码流二(21)参与计算输出神经元K的输出值(23),参数码流一(11)可以为随机序列或非随机序列。当参数码流一为非随机序列时,所述一种随机神经网络硬件实现装置还包括随机数转换器B,用以将参数码流一(11)转换为随机序列。参数码流二(21)可以为随机序列或非随机序列。当参数码流二(21)为随机序列时,所述一种随机神经网络硬件实现装置还包括确定数转换器D,用以将参数码流二(21)转换为二进制确定数。

实施例四:

本实施例与实施例一基本相同,特别之处如下:

每一个所述输入神经元I均包含一个随机数转换器A,用以将输入向量(1)转换为随机数据序列一(2),如图3所示,m个输入神经元I共包含m个随机数转换器A。

所述随机数转换器A、随机数转换器B均可以由一个随机数发生器(31)和一个多路选择器(32)组成,如图4所示。所述随机数发生器(31)用于产生伪随机数或真随机数,所述多路选择器(32)将输入数据(1)/(11)和随机数发生器(31)产生的随机数进行1/2的概率选择输出,比较所得结果为0或1,在时间上形成序列,连接到各自相应的输出信号。所述随机数发生器(31)可以为线性移位寄存器所产生的伪随机数据、真随机数发生器产生的真随机数据、系统外部输入的伪随机数据或真随机数据、或者其他方式产生的随机数据。所述随机数转换器B、m个随机数转换器A中的随机数发生器(31)产生的随机数必须保持互不相关。

每一个所述隐含神经元J,均包含随机函数发生器(41),所述随机函数发生器(41)包括XOR门(42)和二维拓扑结构状态机函数发生器(43),如图5所示。所述二维拓扑结构状态机函数发生器(43)是指状态根据输入值在二维空间内向相邻状态转移,当状态转移次数足够多时,该结构可等效为一个与初值状态无关的概率分布,由此可以模拟一些复杂目标函数的逻辑电路结构。 XOR门(42)将随机数据序列一(2)和随机码流序列(12)进行逻辑异或运算,得到随机数据序列三(44),二维拓扑结构状态机函数发生器(43)将随机数据序列三(44)进行函数计算,形成随机数据序列二(13),所述确定数转换器C将随机数据序列二(13)逻辑转换为确定数一(14)。

实施例五:

本实施例与实施例一基本相同,特别之处如下:

每一个所述确定数转换器C、确定数转换器D均由一个加法器(51)和一个除法器(52)组成,如图8所示。所述确定数转换器用于将随机码流转换为确定性二进制数。加法器(51)对随机数据序列二(13)中含有1(或0)的个数统计,除法器对由加法器所产生的确定数进行概率估计得到确定数一(14),如图8-1所示。确定数转换器D对于随机序列进行转换得到确定数二(22),如图8-2所示。确定数转换器C、确定数转换器D均无需进一步处理信号,便可以从目前的输入状态进行加权输出,提供一个具有相对精确的初步估计。

实施例六:

本实施例与实施例一基本相同,特别之处如下:

所述输出层(13)除一般情况下比中间层(12)要小得多,对于输出层大小没有限制。每一个所述输出神经元均包括确定数转换器D和线性函数处理器(61),输入确定数一(14)、参数码流二(21),参数码流二(21)经过确定数转换器D转换后得到确定数二(22),如图7所示。所述确定数一(14)、确定数二(22)输入至线性函数处理器(61),采用一组乘法器和加法器进行线性迭代运算,每个输出神经元的结构相同,只是权值和偏置值不同,也即输出等于加权输入加上偏差,最终得到目的向量(23)。

实施例七:

本实施例与实施例一基本相同,特别之处如下:

所述网络可以是前向网络或递归网络;信号流向从输入(1)通向输出(23)则为前向网络,递归网络是输出神经元K通过与输入连接而返回到输入端(1),形成一个回路,如图9所示。

以上所述仅为本发明的较佳实例而已,并不用以限制本发明,凡在权利要求的原则下,所做的任何修改,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号