CN101246508A - 基于fpga的神经网络缺失数据估算器及其估算方法 - Google Patents
基于fpga的神经网络缺失数据估算器及其估算方法 Download PDFInfo
- Publication number
- CN101246508A CN101246508A CNA2008100207618A CN200810020761A CN101246508A CN 101246508 A CN101246508 A CN 101246508A CN A2008100207618 A CNA2008100207618 A CN A2008100207618A CN 200810020761 A CN200810020761 A CN 200810020761A CN 101246508 A CN101246508 A CN 101246508A
- Authority
- CN
- China
- Prior art keywords
- data
- layer
- fpga
- neural network
- processing unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Testing Or Calibration Of Command Recording Devices (AREA)
Abstract
本发明公开了一种基于FPGA的神经网络缺失数据估算器及其估算方法,将输入层内置在隐含层内,每个处理单元PE由基本运算单元PEA,查找表单元LUT,权值寄存器WT及临时寄存器REG组成,将各处理单元PE串联在一起并由FPGA构建线性阵列结构,每个PE的两侧连接数据总线以及数据有效标志信号;本发明建立故障时刻的数据估算数学模型,使用了移位寄存器和计数,以故障传感器的历史数据和与故障传感器相关的空间和时间上的其它传感器的数据为输入来估计故障传感器的缺失数据,实现缺失数据的恢复性估算,估计速度快,实时性好;使用串级结构减少系统对带宽的要求,在实现查找表功能时,使用函数对称性,减少了查找表的数据规模。
Description
技术领域
本发明涉及一种神经网络估算技术,特别涉及采用广义回归神经网络的数据融合方法的缺失数据估算器及其估算背景技术
神经网络是近年来迅速发展的一门学科,它是由大量的处理单元PE通过广泛的连接形成的复杂的网络,神经网络技术已引入到了参数估计与系统辨识中,神经网络估算技术已应用于生物、医疗、电子、数学、物理和工程等学科,通过建立模型实现。常用的广义回归神经网络由输入层、一层或者多层隐含层和输出层组成,各层之间采用全互连接,但同一层单元间不相互连接,只要在隐层中有足够多的神经元,多层网络就可以用来逼近几乎任何一个非线性函数,根据一组特定的输入便可得到要求的输出。
可编程逻辑阵列(FPGA)是由逻辑功能块排成阵列并由可编程的互连资源连接这些逻辑功能块,从而实现不同的设计。
目前,要控制生物、医疗、电子、数学、物理和工程等诸多领域中多种因素对主体的影响,必须对这些因素进行长期连续监测,通过评估所监测的空间和时间上的历史数据确定采取相应的措施来控制。但是,实践中由于长期连续测量导致传感器经常发生故障,由于传感器故障原因引起了数据的缺失和失真。
发明内容
本发明针对现有技术中由于传感器故障引起数据缺失和失真的情况,提供了一种基于FPGA的神经网络缺失数据估算器,可获得最逼近故障传感器的缺失数据。本数据估算器采用可编程集成电路FPGA的硬件电路实现的,与通常用软件来实现的神经网络相比,估计速度快,体积小,功耗低,便于产品化。在用FPGA的硬件电路实现的过程中,采用了串行结构,增加了该设计的灵活性和可维护性。
本发明的另一目的在于提供了一种基于FPGA的神经网络缺失数据估算器的估算方法,可实现故障传感器缺失或失真数据的恢复。
本发明估算器采用的技术方案是:由输入层、隐含层和输出层组成,每一层都包含处理单元PE,各层之间采用全互连接,但同一层单元间不相互连接,将输入层内置在隐含层内,每个处理单元PE由基本运算单元PEA,查找表单元LUT,权值寄存器WT及临时寄存器REG组成,将各处理单元PE串联在一起并由FPGA构建线性阵列结构,每个PE的两侧连接数据总线以及数据有效标志信号。
本发明估算方法采用的技术方案是:依次包括如下步骤:
(A)初始化查找表LUT和每个PE中临时存放数据的寄存器,同时将初始的权值读入各自的权值存储器中;
(B)隐含层中的PE从最左侧依次接收一组数据中的每一个输入数据进行内部运算,然后接收下一组输入数据运算后依次将接收的输入数据输出;再将运算结果输出到右侧下一个PE,通过三态门连接到总线,进而输入到输出层PE9;
(C)输出层接收数据后,通过计算得出自身的权值误差,再通过数据总线依次将接收的权值误差反向传播,直至最左侧PE接收到该数据;完成一组权值更新。
本发明通过FPGA构建神经网络恢复器,建立故障时刻的数据估算数学模型,使用了移位寄存器和计数,以故障传感器的历史数据和与故障传感器相关的空间和时间上的其它传感器的数据为输入来估计故障传感器的缺失数据,实现缺失数据的恢复性估算,估计速度快,实时性好。使用特殊的串级结构,减少了系统对带宽的要求,增加了该设计的可维护性。在实现查找表功能时,使用函数对称性,减少了查找表的数据规模。
附图说明
下面结合附图和具体实施方式对本发明作进一步详细说明。
图1是本发明的系统结构示意图;
图2是图1中隐含层PE的整体结构示意图。
具体实施方式
如图1、2所示,本发明的基本原理是利用FPGA构建神经网络数据恢复器对若干数据进行统计,从而将缺失的部分数据估算出来。具体方法是将故障传感器的历史数据和与故障传感器相关的空间和时间上的其它传感器的数据,将这些数据设为输入进行训练,建立合理的神经网络数据模型,将所要求的故障传感器的缺失数据估算出来。
本发明估算器的结构是采用线性阵列结构构架硬件神经网络,包括隐含层和输出层,将输入层内置在隐含层内,每一层都包含处理单元PE,各层之间采用全互连接,但同一层单元间不相互连接,每个处理单元PE由基本运算单元PEA,查找表LUT,权值寄存器WT及临时寄存器REG组成,将各处理单元PE串联在一起并由FPGA构建线性阵列结构,每个PE的两侧连接数据总线以及数据有效标志信号。当发生数据失效时,直接读取该硬件输出数据替代原有传感器的数据,从而实现数据恢复的功能。采用串级结构实现神经网络功能。如图1所示,采用了6输入1输出的BP神经网络结构,该隐含层由8个处理单元PE组成(PE1至PE8),所有的处理单元串联在一起,每个PE的两侧提供三个数据总线(chan1,chan2,chan3)以及三个数据有效标志信号(valid1,valid2,valid3)。隐含层中每个PE具有类似于神经网络中隐含层神经元的作用,执行相同的功能(正向传播和反传误差及权值的调整)。输出层由PE9组成,基本结构与隐含层PE类似,实现输出层功能。该估算器的结构优点是仅通过增减处理单元数目来达到改变整个神经网络结构的目的,不需要更改同步时序控制电路,同时将系统对数据带宽的要求最小化。整个系统由隐含层和输出层组成,神经网络输入层的功能在隐含层内实现。
当传感器出现故障时,系统就根据传感器的所在位置和缺失数据产生的时刻,将该时刻前一段时间的24组相应的输入输出数据(故障传感器的历史数据和与故障传感器相关的空间和时间上的其它传感器的数据)对神经网络进行训练,调整神经网络的权值,逐步建立合理的神经网络模型。训练结束后,用该神经网络估算出该时刻传感器的真实值替代采样值,实现数据恢复。从前馈阶段开始,其算法的计算公式分别为:
在前馈阶段,对隐含层
对输出层
在反传阶段,对输出层δj=(tj-yj)f′(sj) …(3);
对隐含层
在权值更新阶段,对输出层Wij(n+1)=Wij(n)+λδjhi …(5);
对隐合层Wnj(n+1)=Wni(n)+λδjhi …(6)。
这里的W为权值,X为输入值。f(S)为激活函数f(S)=255/(1+e-s),h和y为隐含层和输出层的输出,tj是期望值,λ为学习率。经过试验研究,在本发明中λ的值取0.4-0.65之间较为合适。
本发明估算器的估算方法是:所有的运算都是通过基本处理单元PE实现,处在不同层的PE具有类似的结构,执行不同的功能。每个PE由基本运算单元PEA,查找表LUT,权值寄存器WT及临时寄存器REG组成。现以结构较复杂的隐含层PE的设计为例,其整体结构如图2所示,由前馈部分(FORWARD部分)和反传更新(BACKWARD部分)两个部分组成。其中PEA1和PEA2为计算单元,LUT1和LUT2为函数激活单元,MUX为数据选择单元,SHIFT为数据移位单元。
PEA1,PEA2单元主要实现输入数据与权值的乘积累加功能,由乘法器,累加器组成。计数器的数值为一组输入数据的个数。为了确保输入数据与对应的权值相乘,从寄存器里读取缓存的输入数据和权值的过程均由计数器控制。累加器在每次进行累加后,将计数器的数值加1。当计数器复位时,累加器会将累加结果输出,然后对内部寄存器复位并重新开始累加。由于该单元中输入数及权值均为8位数,因此,我们使用了8*8的布斯编码乘法器以及16位超前进位加法器和数据累加器。
本发明中的LUT单元为查找表单元,由ROM,移位寄存器,计数器及减法器组成,其中LUT1主要实现激活函数f(Si),LUT2主要实现激活函数f′(Si)。查找表的数据通过C语言编程产生数据文件,其数据的宽度为8位数,该数据文件在配置阶段被预存入对应的ROM里查找。本设计为了减小规模,仅选取了S函数曲线第一象限上的16个点的数值作为查找表数据。根据S函数的曲线特点,我们将16个点的坐标分别取X=2i-1,i=1,2,3…16。此16个点的查找表中对应数值为公式f(x)=255/(1+e-x/8)的整数部分。在使用查找表时,先根据输入数据的符号位判断数据的正负性。若为正,该数值即对应第一象限的点,通过移位计数,求出该输入对应的i的值,即数据在查找表ROM中的地址值,找到相应的数据;若为负,则为第二象限的点,必须先通过查找表找出该点在第一象限对称点的数值,然后根据S函数的对称性公式f(x)=255-f(-x)。由8位的减法器计算出该点的真实数值。MUX模块为一个多位数据选择器,它与临时寄存器共同实现数据的选择。临时寄存器由一个RAM组成,用来存储不能及时处理的数据。在使用MUX选择数据时,需先将所有输出的数据存入临时寄存器中,然后根据设定好的选择原则选择输出。SHIFT模块由移位寄存器构成,通过右移一位可以达到乘以一个λ的效果,从而实现神经网络学习率的控制。
根据系统的运行,过程分为配置阶段、前馈阶段和反传更新三个阶段。在配置阶段主要是初始化查找表和每个PE中临时存放数据的寄存器,同时将初始的权值读入各自的权值存储器中。当配置结束后,进入前馈阶段。在前馈阶段,系统将隐含层的PE1左侧valid1置1,PE1从左侧依次接收一组数据中的每一个输入数据。PE1在接受数据后即开始进行内部运算,并依次将接收的输入数据从chan1总线输出。当PE1的chan1有数据输出时,系统将PE1右侧的valid1置1,并把该值传递到PE2左侧的valid1。当PE2左侧valid1为1时,PE2开始接收PE1的数据。与此类似,系统依次启动PE3至PE8,将输入数据传输到整个隐含层里。当一组输入数据输入结束时,PE1将开始接收下一组输入数据,并将此时的运算结果由chan2输出到下一个PE,此结果就是该组数据对一个隐含层神经元的激活结果。Chan2数据的传输过程与chan1一样。当PE8开始输出运算结果时,本设计将该结果由chan2输出,并通过三态门连接到chan1总线,进而输入到输出层的PE9里(如图1)。PE9接收到数据后,实现输出层前馈阶段的所有功能。当输出层PE9输出完第一组数据时,将PE9右侧valid3置1,系统进入反传更新阶段。当进入反传更新阶段时,系统期望值tj即该时刻的传感器数据由chan3总线反向输入到输出层的PE9。输出层的PE9接收数据后,通过计算得出自身的权值误差,进行权值更新,同时通过chan3输出公式(4)的计算结果δi。隐含层PE8接收到PE9的输出数据后进行权值误差计算,更新自身的权值,同时通过chan3数据总线依次将接收的δi依次反向传播,直至PE1接收到该数据。当PE1完成一组权值更新时,对应的该组数据的神经网络训练过程结束。
Claims (3)
1.一种基于FPGA的神经网络缺失数据估算器,由输入层、隐含层和输出层组成,每一层都包含处理单元PE,各层之间采用全互连接,但同一层单元间不相互连接,其特征是:将输入层内置在隐含层内,每个处理单元PE由基本运算单元PEA,查找表LUT,权值寄存器WT及临时寄存器REG组成,将各处理单元PE串联在一起并由FPGA构建线性阵列结构,每个PE的两侧连接数据总线以及数据有效标志信号。
2.根据权利要求1所述的基于FPGA的神经网络缺失数据估算器:其特征是:采用6输入和1输出的网络结构,隐含层采用8个神经元;在每个PE的两侧连接三个数据总线以及三个数据有效标志信号。
3.一种如权利要求1所述的基于FPGA的神经网络缺失数据估算器的估算方法,其特征是依次包括如下步骤:
(A)初始化查找表LUT和每个PE中临时存放数据的寄存器,同时将初始的权值读入各自的权值存储器中;
(B)隐含层中的PE从最左侧依次接收一组数据中的每一个输入数据进行内部运算,然后接收下一组输入数据运算后依次将接收的输入数据输出;再将运算结果输出到右侧下一个PE,通过三态门连接到总线,进而输入到输出层PE9;
(C)输出层接收数据后,通过计算得出自身的权值误差,再通过数据总线依次将接收的权值误差反向传播,直至最左侧PE接收到该数据;完成一组权值更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100207618A CN101246508A (zh) | 2008-02-26 | 2008-02-26 | 基于fpga的神经网络缺失数据估算器及其估算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100207618A CN101246508A (zh) | 2008-02-26 | 2008-02-26 | 基于fpga的神经网络缺失数据估算器及其估算方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101246508A true CN101246508A (zh) | 2008-08-20 |
Family
ID=39946959
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008100207618A Pending CN101246508A (zh) | 2008-02-26 | 2008-02-26 | 基于fpga的神经网络缺失数据估算器及其估算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101246508A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104199536A (zh) * | 2014-07-23 | 2014-12-10 | 西安空间无线电技术研究所 | 一种基于bp神经网络的fpga动态功耗估算方法 |
CN105069298A (zh) * | 2015-08-14 | 2015-11-18 | 华中农业大学 | 一种农产品信息采集系统中节点缺失数据的估算方法 |
CN105334888A (zh) * | 2015-11-16 | 2016-02-17 | 江苏科技大学 | 一种基于触发机制的网络串级温度控制系统及其方法 |
CN106391314A (zh) * | 2016-11-16 | 2017-02-15 | 南京航空航天大学 | 一种静电除尘器火花跟踪控制方法 |
CN107735803A (zh) * | 2015-06-25 | 2018-02-23 | 微软技术许可有限责任公司 | 用于深度学习应用的存储器带宽管理 |
CN107766936A (zh) * | 2016-08-22 | 2018-03-06 | 耐能有限公司 | 人造神经网络、人造神经元及人造神经元的控制方法 |
CN107844833A (zh) * | 2017-11-28 | 2018-03-27 | 郑州云海信息技术有限公司 | 一种卷积神经网络的数据处理方法、装置及介质 |
CN108509723A (zh) * | 2018-04-02 | 2018-09-07 | 东南大学 | 基于人工神经网络的LRU Cache预取机制性能收益评估方法 |
CN108629406A (zh) * | 2017-03-24 | 2018-10-09 | 展讯通信(上海)有限公司 | 用于卷积神经网络的运算装置 |
CN109726633A (zh) * | 2018-11-23 | 2019-05-07 | 成都品果科技有限公司 | 一种基于查找表激活函数的人脸关键点检测方法 |
EP3502974A1 (de) * | 2017-12-20 | 2019-06-26 | Siemens Aktiengesellschaft | Verfahren zur realisierung eines neuronalen netzes |
CN110087207A (zh) * | 2019-05-05 | 2019-08-02 | 江南大学 | 无线传感器网络缺失数据重建方法 |
-
2008
- 2008-02-26 CN CNA2008100207618A patent/CN101246508A/zh active Pending
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104199536B (zh) * | 2014-07-23 | 2017-06-06 | 西安空间无线电技术研究所 | 一种基于bp神经网络的fpga动态功耗估算方法 |
CN104199536A (zh) * | 2014-07-23 | 2014-12-10 | 西安空间无线电技术研究所 | 一种基于bp神经网络的fpga动态功耗估算方法 |
CN107735803B (zh) * | 2015-06-25 | 2021-06-22 | 微软技术许可有限责任公司 | 用于深度学习应用的存储器带宽管理 |
CN107735803A (zh) * | 2015-06-25 | 2018-02-23 | 微软技术许可有限责任公司 | 用于深度学习应用的存储器带宽管理 |
CN105069298A (zh) * | 2015-08-14 | 2015-11-18 | 华中农业大学 | 一种农产品信息采集系统中节点缺失数据的估算方法 |
CN105069298B (zh) * | 2015-08-14 | 2018-08-03 | 华中农业大学 | 一种农产品信息采集系统中节点缺失数据的估算方法 |
CN105334888A (zh) * | 2015-11-16 | 2016-02-17 | 江苏科技大学 | 一种基于触发机制的网络串级温度控制系统及其方法 |
CN107766936A (zh) * | 2016-08-22 | 2018-03-06 | 耐能有限公司 | 人造神经网络、人造神经元及人造神经元的控制方法 |
CN106391314A (zh) * | 2016-11-16 | 2017-02-15 | 南京航空航天大学 | 一种静电除尘器火花跟踪控制方法 |
CN106391314B (zh) * | 2016-11-16 | 2017-09-05 | 南京航空航天大学 | 一种静电除尘器火花跟踪控制方法 |
CN108629406B (zh) * | 2017-03-24 | 2020-12-18 | 展讯通信(上海)有限公司 | 用于卷积神经网络的运算装置 |
CN108629406A (zh) * | 2017-03-24 | 2018-10-09 | 展讯通信(上海)有限公司 | 用于卷积神经网络的运算装置 |
CN107844833A (zh) * | 2017-11-28 | 2018-03-27 | 郑州云海信息技术有限公司 | 一种卷积神经网络的数据处理方法、装置及介质 |
EP3502974A1 (de) * | 2017-12-20 | 2019-06-26 | Siemens Aktiengesellschaft | Verfahren zur realisierung eines neuronalen netzes |
WO2019121206A1 (de) * | 2017-12-20 | 2019-06-27 | Siemens Aktiengesellschaft | Verfahren zur realisierung eines neuronalen netzes |
US11704561B2 (en) | 2017-12-20 | 2023-07-18 | Siemens Aktiengesellschaft | Method for realizing a neural network |
CN108509723A (zh) * | 2018-04-02 | 2018-09-07 | 东南大学 | 基于人工神经网络的LRU Cache预取机制性能收益评估方法 |
CN109726633A (zh) * | 2018-11-23 | 2019-05-07 | 成都品果科技有限公司 | 一种基于查找表激活函数的人脸关键点检测方法 |
CN110087207B (zh) * | 2019-05-05 | 2020-04-10 | 江南大学 | 无线传感器网络缺失数据重建方法 |
CN110087207A (zh) * | 2019-05-05 | 2019-08-02 | 江南大学 | 无线传感器网络缺失数据重建方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101246508A (zh) | 基于fpga的神经网络缺失数据估算器及其估算方法 | |
CN109784489B (zh) | 基于fpga的卷积神经网络ip核 | |
US20140344203A1 (en) | Neural network computing apparatus and system, and method therefor | |
CN109344964A (zh) | 一种适用于神经网络的乘加计算方法和计算电路 | |
GB2287820A (en) | Neural network | |
CN108446761A (zh) | 一种神经网络加速器及数据处理方法 | |
JP4392089B2 (ja) | ニューロン、当該ニューロンを用いて構成された階層型ニューラルネットワーク及び当該ニューロン内部での乗算処理に用いられる乗算回路 | |
CN113110104B (zh) | 一种单编组列车制动智能化级联试验系统 | |
Hariprasath et al. | FPGA implementation of multilayer feed forward neural network architecture using VHDL | |
CN110580519B (zh) | 一种卷积运算装置及其方法 | |
Balasubramaniam et al. | Delay-range dependent stability criteria for neural networks with Markovian jumping parameters | |
Wan et al. | Efficient neuron architecture for FPGA-based spiking neural networks | |
CN104777456B (zh) | 可配置的雷达数字信号处理器及其处理方法 | |
CN114266387A (zh) | 一种输变电工程工期预测方法、系统、设备及存储介质 | |
US20220027714A1 (en) | Convolution block array for implementing neural network application and method using the same, and convolution block circuit | |
Perez-Garcia et al. | Multilayer perceptron network with integrated training algorithm in FPGA | |
CN116992932A (zh) | 一种数据片外分块传输的参数化lstm加速系统及其设计方法 | |
Prado et al. | FPGA based implementation of a Fuzzy Neural Network modular architecture for embedded systems | |
Yoshioka et al. | LUTNet-RC: Look-Up Tables Networks for Reservoir Computing on an FPGA | |
CN112346703B (zh) | 一种用于卷积神经网络计算的全局平均池化电路 | |
CN110456679B (zh) | 基于fpga的机器人数值膜控制系统及其构建方法 | |
Schwenker et al. | Echo state networks and neural network ensembles to predict sunspots activity | |
JP4568987B2 (ja) | ニューロン、及び当該ニューロンを用いて構成された階層型ニューラルネットワーク | |
CN113592067B (zh) | 一种用于卷积神经网络的可配置型卷积计算电路 | |
Boro et al. | Fpga implementation of a dedicated processor for temperature prediction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20080820 |