CN108830378A - 基于fpga的som神经网络可配置模块化硬件实现方法 - Google Patents
基于fpga的som神经网络可配置模块化硬件实现方法 Download PDFInfo
- Publication number
- CN108830378A CN108830378A CN201810595873.XA CN201810595873A CN108830378A CN 108830378 A CN108830378 A CN 108830378A CN 201810595873 A CN201810595873 A CN 201810595873A CN 108830378 A CN108830378 A CN 108830378A
- Authority
- CN
- China
- Prior art keywords
- module
- network
- neural network
- hardware
- som
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开一种基于FPGA的SOM神经网络可配置模块化硬件实现方法,包括以下步骤:首先,根据SOM神经网络的整体运行过程,将模型模块化;其次,采用硬件描述语言对各模块进行描述,完成模块的数字化,从而形成通用的硬件实现功能模块库;最后,在实际应用时,根据需求通过将各模块组合,构造出所需的SOM神经网络硬件。本发明具有灵活的网络规模可配置能力,也具有可以根据实际应用,灵活进行资源占用和运行速度调整的能力。相对于软件实现方法,硬件实现的SOM网络具有很高的运行速度,可以适合高速、智能信息处理的应用需求。本发明为SOM神经网络高级应用提供了新的方法,也可为其他类型人工神经网络的硬件实现提供有价值的借鉴。
Description
技术领域
本发明涉及一种基于FPGA的SOM神经网络可配置模块化硬件实现方法,属于SOM网络的功能实现和应用领域。
背景技术
在人脑中,大量的神经细胞组成了神经网络。神经网络作为人脑信息处理的物质基础和核心,一直被各个领域的学者从不同的角度进行研究。生物神经网络的显著特性有分布存储、并行处理、强自学习能力、强鲁棒性和容错性,人们试图通过模拟大脑神经网络处理信息的方式去构造能够进行同样信息处理的人工神经网络,这些特性便成为了人工神经网络追求的目标。随着脑科学和生理学研究的深入,科学家们发现人脑中空间上的不同区域具有不同的功能,处于不同功能区的神经细胞对来自外部的同一个刺激信号的敏感程度不同。根据这些特点,上世纪80年代,芬兰的神经网络专家Kohonen教授提出了自组织映射(Self-Organizing Maps,简称SOM)神经网络模型,该模型能够模拟人脑对信号处理的特点,是目前应用最为广泛的自组织神经网络模型。
目前,人工神经网络的实现与应用大多采用基于计算机的软件仿真方法。但是生物神经网络是由大量的神经元(Neurons)和突触组成,具有自学习能力和可塑性等,软件仿真方法无法真正发挥神经网络并行、分布式、高速计算等性能,因此,采用软件仿真方法不能充分实现对生物神经网络特性与优势的模拟。从上世纪80年代开始,神经网络的硬件实现逐渐成为研究热点。在硬件实现方法上,一种趋势是利用由微电子元件和纳米元件形成的超大规模集成电路来实现人工神经网络;另一种趋势是采用现场可编程门阵列(FPGA)等可编程器件实现神经网络。同前一种方法相比,FPGA具有资源更加丰富,可灵活配置、开发手段灵活易用、成本低、开发周期短、可实现人工神经网络具有的并行处理等特性,因而被广泛应用。
目前,基于FPGA硬件实现人工神经网络的研究成果多是针对特定应用,因此,网络规模固定,内部的实现结构也不能按需配置,不具有通用性。因此,迫切需要一种网络规模可重配置、内部实现结构可按需配置、可进行资源优化和速度优化的、通用的硬件实现方法。
发明内容
针对上述技术问题,本发明提供一种基于FPGA的SOM神经网络可配置模块化硬件实现方法,该方法能够根据需求灵活改变网络规模和运算精度。
本发明所采用的技术解决方案是:
一种基于FPGA的SOM神经网络可配置模块化硬件实现方法,包括以下步骤:
(1)根据SOM神经网络的整体运行过程,将模型模块化;
(2)采用硬件描述语言对各模块进行描述,完成模块的数字化,从而形成通用的硬件实现功能模块库;
(3)在实际应用时,根据需求通过将各模块组合,构造出所需的SOM神经网络硬件。
优选的,利用MATLAB软件对SOM神经网络的学习和识别过程进行软件仿真;将SOM神经网络划分为五个主要的功能模块,首先分别对各个功能模块进行硬件实现,然后对其进行组合,最后实现目标SOM神经网络。
优选的,所述五个主要的功能模块包括:
a学习模块:完成网络的学习功能,调整和更新网络权值以及获得获胜神经元标号序列;
b数据处理模块:该模块具有三个功能,分别是数据获取、数据存储以及数据预处理,也就是将数据读入网络并转换成网络能够处理的数据形式再按照合理时序进行存储和输出;
c距离计算模块:计算输入与各个竞争层神经元的距离值;
d获胜神经元计算模块:根据距离计算模块得出的距离值,判断出最小距离,最小距离对应的竞争层神经元即为获胜神经元;
e显示模块:该模块能够判别出获胜神经元所对应的输入激励种类,同时将其以0到9的阿拉伯数字形式在数码管上显示出来。
优选的,利用VHDL语言中的constant完成对关键变量的参数化设计;关键变量的值由设计文件中定义的常量表达式来描述,修改这些常量的值,就可以修改整个设计中被参数化的变量的值;通过对参数变量的设置实现网络的可配置性能。
本发明的有益技术效果是:
本发明所提出的SOM神经网络的硬件实现方法具有灵活的网络规模可配置能力,也具有可以根据实际应用,灵活进行资源占用和运行速度调整的能力。相对于软件实现方法,硬件实现的SOM网络具有很高的运行速度,可以适合高速、智能信息处理的应用需求。本发明为SOM神经网络高级应用提供了新的方法,也可为其他类型人工神经网络的硬件实现提供有价值的借鉴。
附图说明
图1为本发明中五个功能模块的示意图;
图2为本发明中SOM神经网络测试平台上位机界面的示意图。
具体实施方式
目前,为了实现大规模的SOM网络,硬件实现方法主要是基于超大规模集成电路(VLSI) 技术,包括采用模拟电路、数字电路或模/数混合电路设计技术。而基于FPGA的实现方法,由于具有实现方便、价格合理、设计灵活的特点,正在成为SOM网络硬件实现的主要方法之一。但现有的SOM网络硬件实现方法大多是针对某一具体应用,实现固定网络规模,同时,为了简化设计过程和降低设计难度通常采用定点运算方式,因此,缺少通用性、灵活性,难以实现高性能的人工神经网络。因此,迫切需要一种基于FPGA,能够根据需求灵活改变网络规模和运算精度的、通用的SOM神经网络硬件实现方法。
一种基于FPGA的SOM神经网络可配置模块化硬件实现方法,包括以下步骤:
(1)根据SOM神经网络的整体运行过程,将模型模块化;
(2)采用硬件描述语言对各模块进行描述,完成模块的数字化,从而形成通用的硬件实现功能模块库;
(3)在实际应用时,根据需求通过将各模块组合,构造出所需的SOM神经网络硬件。
网络的可配置通过设定通用参数完成,在构建网络时,通过传递通用参数,即可完成对网络规模、乘累加器结构和数据位宽的灵活配置。
进一步的,利用MATLAB软件对SOM神经网络的学习和识别过程进行软件仿真;将SOM神经网络划分为五个主要的功能模块,首先分别对各个功能模块进行硬件实现,然后对其进行组合,最后实现目标SOM神经网络。
如图1所示的,所述五个主要的功能模块包括:
a学习模块:完成网络的学习功能,调整和更新网络权值以及获得获胜神经元标号序列;
b数据处理模块:该模块具有三个功能,分别是数据获取、数据存储以及数据预处理,也就是将数据读入网络并转换成网络能够处理的数据形式再按照合理时序进行存储和输出;
c距离计算模块:计算输入与各个竞争层神经元的距离值;
d获胜神经元计算模块:根据距离计算模块得出的距离值,判断出最小距离,最小距离对应的竞争层神经元即为获胜神经元;
e显示模块:该模块能够判别出获胜神经元所对应的输入激励种类,同时将其以0到9的阿拉伯数字形式在数码管上显示出来。
更进一步的,利用VHDL语言中的constant完成对关键变量的参数化设计;关键变量的值由设计文件中定义的常量表达式来描述,修改这些常量的值,就可以修改整个设计中被参数化的变量的值;通过对参数变量的设置实现网络的可配置性能。
为验证该方法的有效性,本发明还将MATLAB与FPGA相结合,构建了用于数字识别的SOM神经网络硬件测试系统。测试结果表明,本研究所提出的SOM神经网络的硬件实现方法具有灵活的网络规模可配置能力,也具有可以根据实际应用,灵活进行资源占用和运行速度调整的能力。系统运行速度的测试结果表明,相对于软件实现方法,硬件实现的SOM 网络具有很高的运行速度,可以适合高速、智能信息处理的应用需求。本发明为SOM神经网络高级应用提供了新的方法,也可为其他类型人工神经网络的硬件实现提供有价值的借鉴。
下面对本发明进行更为具体的说明。
SOM神经网络的可配置是指能够根据实际需求设置网络中输入神经元和竞争层神经元的个数、神经元模型中的乘累加结构以及网络处理数据的位宽;而模块化是指对SOM网络进行模块划分,每个模块功能、结构相对独立。将网络划分成功能模块,不仅可以使网络的运行机制简单明了,也能够降低网络整体实现时的难度;可配置的设计则是为了能够灵活地构造不同规模的网络,同时可以根据需求不同,合理选择能够平衡资源占用与运行速度的运算器个数,合理设定处理数据的位宽以达到所需数据处理精度。
软件仿真一方面可以验证网络功能,另一方面能够通过仿真流程详细的了解SOM神经网络的整体运行过程。
网络各模块的实现即各模块的数字化,是指将网络各模块表示成易于在FPGA中实现的形式。数字化的目的是要形成一种系统的、通用的方法,使数字化后的各模块,可以方便、快速地在硬件中得以调用来构成所需要的神经网络。具体来说,就是采用VHDL(VHSICHardware Description Language,硬件描述语言)完成各模块功能的数字化描述,形成可调用的、基于VHDL的参数化模块。每个模块都是可参数化的,即可以根据需求设定所需参数,以构造所需要的SOM网络。模块与模块之间通过自定义参数设计统一信号格式。这里的参数化实际就是可配置。
学习模块:数据处理模块读入的网络权值与获胜神经元标号序列均来源于学习模块。学习过程,也称为训练过程,实质上就是一个对学习样本进行自学习并生成与之对应的网络权值与获胜神经元标号序列的过程。其中,网络权值将用于识别过程中的距离计算,获胜神经元标号序列用于对输入激励类别的确定。
由于SOM神经网络学习算法中包含大量的浮点数加法、乘法以及非线性指数运算,这些复杂的运算不适合直接在FPGA中实现,并且会消耗大量的硬件资源,因此,本发明采用的是离线学习的方法。学习模块通过MATLAB软件编程实现SOM神经网络的学习算法,调用该模块即可完成网络的学习过程,得到网络权值与获胜神经元标号序列。
由学习模块得到的网络权值和获胜神经元标号为实数形式,虽然在VHDL语言中能够定义REAL实数数据类型,但实数类型仅能在VHDL仿真器中使用,无法被综合器综合,因此,需要将实数类型的数据转换为FPGA能够处理的数据形式。
在硬件平台中实现数据运算,通常采用定点数格式,即小数点位置固定,该方法硬件电路简单、节省资源,但是小数点位置固定的同时用来表示整数部分或小数部分的数据位数也就随之固定,使得数据形式十分僵硬,难以同时表达特别大的数和特别小的数,表示范围有限。相比于定点数,浮点数能够利用指数达到浮动小数点的效果,从而可以灵活地表达更大范围的实数,且运算精度高,有利于构建通用的模块。
本发明采用一种数据位宽可配置的浮点数格式,通过参数可以灵活的改变浮点数表示范围和精度,同时,调整运算时间和资源占用。这种可配置浮点数格式,用二进制补码来表示浮点数的负指数和负小数,指数的底(基数)为2,浮点数N就可以表示为:
N=F×2E
式中,F是小数部分;E是指数;基数为2,基数是隐式的。小数部分包含符号位和实际小数位,正数时,符号位为0,负数时,符号位为1,默认二进制小数点在第一位(符号位)和第二位之间。对于大于1的浮点数化为以2为基数的纯小数形式(小于0的数),并进行规格化。规格化就是将F代表的小数部分统一规定为:第一位是符号位,正数的符号位为0,负数的符号位为1;当第一位为0时第二位必须为1,当其为1时第二位可以为0也可以为1。同时对E代表的指数进行相应的加减运算,E的第一位(符号位)为0 时,表示数N大于等于0;符号位为1时,表示数N小与0。规格化的目的是为了利用 F的所有位并使有效数字的位数最大。若F不是规格化的,通过左移(或右移)F直到使其符号位和下一位不同为止。每次左移(或右移)F时都要对指数E减1(或加1)。
数据处理模块:该模块是整个SOM神经网络数据的入口,其具有三个功能,分别是数据读取、数据存储以及数据预处理。
数据读取过程中,输入激励、网络权值以及与训练样本相对应的获胜神经元标号序列将被并行读入网络。其中,输入激励由MATLAB软件生成,网络权值以及获胜神经元标号序列来自于学习模块,被选定的输入激励以及由已经完成学习过程的学习模块生成的网络权值和获胜神经元标号序列将被存储于ROM中,通过调用Quartus II软件中的宏功能模块——单端口ROM来进行数据读取。
SOM网络的规模较大时,权值数量也会增多。由于对权值后续的运算与处理的速度远远比不上权值读取的速度,那么,便涉及到对已读入但还未使用的权值进行存储的问题。存储大量权值,必然会占用很多存储空间,因此,为了节省空间、减少逻辑资源占用,不会一次性将所有权值全部读入网络。在本发明中,采用每次读取与输入神经元个数等量的网络权值。
距离计算模块:在求获胜神经元的过程中,是通过输入激励与竞争层中各个神经元的“距离”去判断的,在距离两字上需加双引号,因为我们对原始SOM算法中的距离求取公式,即欧式距离公式,进行了简化,我们根据根号下平方和的值是非负数,同时结合y=√x函数,当x在0到+∞范围内图像单调递增可得出,y随x增大而增大,所以我们可以将根号去掉,同时不影响最终结果的正确性。
获胜神经元计算模块:通过距离计算模块,能够得到输入激励对应竞争层中各个神经元的距离值,对所得距离值进行比较,找出最短距离对应的竞争层神经元即为获胜神经元。在本发明中,由于所有距离值均为平方和,也就是非负数,根据二进制补码数据格式,设计比较器判断距离大小。
在数据都为正数的条件下,我们的判断方法为:首先将距离值中的指数部分取出,由于在VHDL中无法直接对std_logic_vector型数据直接进行比较,因此,要将指数部分转换为整数形式,再比较大小,找到最小的一个或几个距离值,记录其标号,再取出这几个距离值的小数部分,同样转化为整型数据进行比较,最后找出最小距离值,最小距离值对应的神经元即为当前输入激励对应的获胜神经元。其中,要注意零值的判别要额外处理,根据二进制补码数据格式规则,零值并不是所有位都为0,那么,在进行距离值大小判断时就会引发误判,因此,我们将零值做单独处理,当判断出有零值出现时进行记录,全部判断完毕,若无其他零值出现,则其对应神经元为获胜神经元,否则,输出“E”,即error,识别结果出错。
显示模块:该模块具有两个功能,首先,接收获胜神经元计算模块传来的获胜神经元标号,统领其他模块时间分配和调度,SOM算法中各个部分的相关性并不是很大,那么就有很多环节可以变换为流水线或者并行处理,比如某输入模式在分别和竞争层中各个神经元求距离时,和不同竞争神经元求距离的环节都是独立的,互相之间没有影响,那么就可以在计算该模式与第一个竞争神经元的距离的时候同时启动和第二个竞争神经元的距离计算,那么此时就可以节省一大半等待时间。同时,在可并行的情况下,我们就尽量少用串行,这也是节省时间的好方法。
本发明研究的SOM网络的可配置性能主要体现在网络规模(神经元个数)可配置、神经元计算中累加结构的可配置、处理数据的可配置。其中,网络规模是其他可配置的基础,网络规模确定的情况下才能对其余功能进行配置。若要实现这些可配置性能,需要对构成网络的各模块设计成可参数化形式,即通过对参数变量的设置实现网络的可配置性能。
本发明研究利用VHDL语言中的constant完成对关键变量的参数化设计。关键变量的值由设计文件中定义的常量表达式来描述,修改这些常量的值,就可以修改整个设计中被参数化的变量的值。
为验证所设计的硬件SOM神经网络的功能和性能,设计了一个基于硬件SOM神经网络的、可视化的数字识别系统。
(1)系统整体结构
该系统由上位机与下位机组成。
a上位机:该部分主要在PC机中借助MATLAB软件设计并生成一个可视化的操作界面,通过该界面可以完成网络参数设定、学习样本确定、学习过程以及生成测试样本。
b下位机:该部分是基于FPGA的SOM神经网络的硬件系统。主要是对网络进行模块化实现,以构造具有可配置性能的SOM神经网络,并完对测试样本的识别过程及识别结果显示。
(2)系统测试方法
如图2所示的,SOM神经网络测试平台上位机界面:
上位机界面是将基于SOM网络学习功能的数字识别过程以图形界面的形式显示出来。该界面利用MATLAB中图形界面创建工具GUIDE进行GUI(用户图形界面)设计,界面中的每一个内容对应相应的控件,用以完成相应的功能。顶层界面与下层界面之间可以通过特定控件进行连接。
上位机界面,其中的每一个控件实际是SOM网络数字识别系统运行过程中每个环节的代表。通过上位机界面可以直接调整参数,可以调整的参数包括:输入激励的规模、竞争层网络规模、学习样本、数据格式(数据位数和指数位数)、硬件参数中的并行程度等。同时,启动学习过程,待学习完成后,选择测试样本,给样本添加不同比例的噪声。
a记忆样本确定
选择网络规模为10×10,即输入激励中含有100个神经元。将图像数字0-9,每个数字划为一个10×10的矩阵,1表示该位置是数字的一部分,0表示该位置非数字。然后将每个数字的10×10矩阵形式按照第一行、第二行、第三行、…、最后一行依次排列构成一个含100个数据点的行向量即一个学习样本,再将10个数字行向量构成一个10×100的学习模式矩阵,为后续学习做准备。
“显示学习样本”,会显示10个数字的字符图像形式。
b学习过程
学习过程开始前,调整参数,竞争层规模决定最终学习结果可以分成几类,比如,竞争层包含20个神经元,理论上可以分成20类,但通常会使竞争层神经元个数大于所要分类的种类数,我们这里要将0到9一共10张图像分成10类,并且,本发明中竞争层都为方形阵,因此,竞争层神经元规模选为4×4。同时确定网络的数据格式。由于,MATLAB软件无法将参数传到硬件文件中,所以需要需要通过按键打开硬件参数设置文件进行参数设置。
学习是SOM神经网络网络权值的计算过程。点击按钮“学习”即开始权值的计算,当指示灯亮时,按钮显示“学习完成”,表示网络权值计算结束,即学习过程结束。学习是根据学习样本确定过程中形成的学习模式矩阵,通过SOM网络学习算法计算网络权值。
学习完成之后,得到权值和阈值,此时权值和阈值是实数矩阵表示的,想要应用于FPGA 处理,需要将这些数据转化为规定的浮点数格式,即数据的标准化。利用MATLAB编写数据转化函数,调用该函数并将转化后得到的浮点数据分别生成权值相应的weight.mif文件。保证这些能够实现的前提条件是MATLAB编写的文件和FPGA中利用VHDL编写的文件存储在同一个文件夹里。
c生成测试样本
测试样本,就是给标准样本添加一定的噪声(错误),以模拟模糊不清的数字。加噪比率利用列表框限定为2%、5%、10%、15%、20%可选,添加随机噪声。加噪比例是指样本中错误数据点的个数占样本数据点总数的比例,如5%的加噪比率就是在100个数据点中有5个错误数据点。所谓错误是指原来是1的元素,添加噪声后变为0;反之,原来是0的元素变为1。
首先选定一个记忆样本(一个标准数字),以数字1为例,选定后会显示其字符形式以及十六进制表示形式。然后选择加噪比率,以5%为例,选定后同样会显示其字符形式以及十六进制表示形式。
下位机的主要功能是基于FPGA的SOM网络的可配置模块化实现。可配置功能相关参数设置是通过上位机界面中的“网络基本参数设置”完成的。网络基本参数包括网络规模、数据格式、硬件参数。
网络规模参数的设定是对网络中神经元个数的可配置,也是对神经元模块中并行结构中运算器的个数的限定,同时也影响着网络中各个功能模块;数据格式参数是对该网络处理数据精度的可配置;硬件参数是为了能够正确地实现相应规模、相应数据精度的神经网络,若参数不匹配,则无法构建网络。
输入模式对应输入神经元个数,竞争层规模对应竞争层神经元个数,二者共同影响网络规模,对这两个参数进行设置,能够实现不同规模的SOM神经网络,观察其编译结果。编译是将VHDL编写的程序对应为实际电路,检测电路连接是否正确并确定该电路占用的硬件资源。编译平台为Quartus II 9.0,软件中提供波形仿真,为程序的调试提供了很多便利。芯片为Cyclone II EP2C35F672C8,总逻辑资源为33216个逻辑单元。
上位机学习过程中会生成现在所使用的学习样本对应的获胜神经元标号序列,下位机识别结束得到唯一获胜神经元标号,将其与序列中的标号进行比对,相同的标号所代表的学习样本就是输入激励未加噪声时的样子。识别结果通过FPGA开发板上的七段数码管进行显示。
系统按照上位机界面显示,从左到右、从上到下,完成系统运行。
(3)功能测试
以数字识别为例,对用模块化硬件实现的可配置SOM网络进行功能测试。分别对神经网络规模为64和100的网络,对标准数字添加不同比例的噪声,观察实验结果,验证网络模块化构造的可行性以及网络规模的可配置。
利用控制变量法,对基于FPGA实现的具有可配置功能的硬件SOM神经网络进行功能测试,测试结果如下:
在加噪比例为2%、5%、10%、15%时,识别结果正确。在加噪比例为20%时,数字1和4易混淆,3、8、9也会出现混淆情况,或无法识别。加噪比例为15%时识别结果较稳定,因此,后续测试过程中,以加噪比率相对稳定的最大加噪比也就是15%去加入噪声。
在加噪比例为15%时,分别将输入激励设为数字0到9,得到的识别结果均正确,可见,网络在加噪15%情况下能够稳定的识别出正确结果。
通过功能测试结果可知,该系统能够实现数字识别功能,即硬件SOM神经网路的模块化实现方法能够实现0到9的数字识别,证明了网络的模块化构造方法的正确性。同时,网络也能够通过上位机更改网络的各项参数,直接达到更改网络规模、数据位宽以及网络中运算结构的并行程度的目的,证明了该网络具有可配置功能。
(4)性能测试
硬件SOM神经网络的时钟频率取为50MHz。测试结果与结果分析如下:
以8×8大小的0到9二值数字图像作为学习样本,竞争层规模为4×4,数据总位宽为 20,指数位宽为5,将硬件SOM神经网络按照运算结构为串行、串并行结合以及全并行三种方式进行配置,其中,串并行结合运算结构的并行程度取为输入层神经元个数的二分之一,测试该系统的硬件资源占用及网络运行时间。同时,在同样的网络规模和数据格式下,测试软件仿真的运行时间,将其与硬件网络所用时间进行比较。测试结果如表1所示。
表1输入模式为8×8时,网络测试结果
以10×10大小的0到9二值数字图像作为学习样本,竞争层规模为4×4,数据总位宽为20,指数位宽为5,将硬件SOM神经网络按照运算结构为串行、串并行结合以及全并行三种方式进行配置,其中,串并行结合运算结构的并行程度取为输入层神经元个数的二分之一,测试该系统的硬件资源占用及网络运行时间。同时,在同样的网络规模和数据格式下,测试软件仿真的运行时间,将其与硬件网络所用时间进行比较。测试结果如表2所示。
表2输入模式为10×10时,网络测试结果
从以上两个测试结果可以看出:
对于同等网络规模(包括输入层网络规模和竞争层网络规模)来说,网络运算结构的并行程度越大,占用的逻辑资源越多,但运行时间也在缩短。当网络运算结构采用全并行模式时,硬件运行时间大约是软件运行时间的一半。当采用串并行结合时,我们测试了一次性并行处理输入神经元个数一半的数据,此时硬件运行时间要比软件运行时间短,且资源占用量要小于全并行运算结构。当采用串行运算结构时,虽然资源占用量减少了,但运行速度比软件还要慢很多。因此,在实际应用时,要在资源占用和运行速度之间平衡。
通过上述性能测试实验的结果与分析,可以得出如下结论:
网络在实际应用中,若硬件资源充足,可考虑采用全并行的运算结构,可以减少网络运行时间。若对速度没有很高的要求,为了减少逻辑资源占用,可采用串并行结合的运算结构。串行运算结构虽然节省硬件资源,但运行时间太长,因此不建议网络采用串行运算结构。显然,在兼顾资源占用与运行速度方面,串并行结合的运算结构最为合理。当然,在面对不同问题时,网络可按照实际需求,灵活进行资源占用与运行速度的可配置调整。
综上所述:
本发明实现了SOM网络硬件实现的模块化。这种方法首先根据SOM神经网络的整体运行过程,将模型模块化;其次,采用硬件描述语言对各模块进行描述,完成模块的数字化,从而形成通用的硬件实现功能模块;最后,在实际应用时,根据需求通过将各模块组合,就可以构造所需的SOM神经网络硬件。
实现了可配置的SOM网络硬件实现方法。网络的可配置通过设定通用参数完成,在构建网络时,通过传递通用参数,即可完成对网络规模、神经元运算时乘累加结构、数据位宽的灵活配置。可配置设计的目的是使所设计方法通用化,所实现的网络在资源占用与运行速度之间实现均衡,达到最优性价比。
构建了硬件SOM网络的测试系统。将MATLAB与FPGA相结合,构建了用于数字识别的SOM硬件神经网络测试系统。实验结果表明,本研究所提出的SOM神经网络的硬件实现方法具有灵活的网络规模可配置能力,也具有可以根据实际应用,灵活进行资源占用和运行速度的调整的能力。系统运行速度的测试结果表明,硬件实现的SOM网络具有很高的运行速度,可以适合高速、嵌入式的应用需求。
Claims (4)
1.一种基于FPGA的SOM神经网络可配置模块化硬件实现方法,其特征在于包括以下步骤:
(1)根据SOM神经网络的整体运行过程,将模型模块化;
(2)采用硬件描述语言对各模块进行描述,完成模块的数字化,从而形成通用的硬件实现功能模块库;
(3)在实际应用时,根据需求通过将各模块组合,构造出所需的SOM神经网络硬件。
2.根据权利要求1所述的一种基于FPGA的SOM神经网络可配置模块化硬件实现方法,其特征在于:
利用MATLAB软件对SOM神经网络的学习和识别过程进行软件仿真;将SOM神经网络划分为五个主要的功能模块,首先分别对各个功能模块进行硬件实现,然后对其进行组合,最后实现目标SOM神经网络。
3.根据权利要求2所述的一种基于FPGA的SOM神经网络可配置模块化硬件实现方法,其特征在于,所述五个主要的功能模块包括:
a学习模块:完成网络的学习功能,调整和更新网络权值以及获得获胜神经元标号序列;
b数据处理模块:该模块具有三个功能,分别是数据获取、数据存储以及数据预处理,也就是将数据读入网络并转换成网络能够处理的数据形式再按照合理时序进行存储和输出;
c距离计算模块:计算输入与各个竞争层神经元的距离值;
d获胜神经元计算模块:根据距离计算模块得出的距离值,判断出最小距离,最小距离对应的竞争层神经元即为获胜神经元;
e显示模块:该模块能够判别出获胜神经元所对应的输入激励种类,同时将其以0到9的阿拉伯数字形式在数码管上显示出来。
4.根据权利要求1所述的一种基于FPGA的SOM神经网络可配置模块化硬件实现方法,其特征在于:
利用VHDL语言中的constant完成对关键变量的参数化设计;关键变量的值由设计文件中定义的常量表达式来描述,修改这些常量的值,就可以修改整个设计中被参数化的变量的值;通过对参数变量的设置实现网络的可配置性能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810595873.XA CN108830378A (zh) | 2018-06-11 | 2018-06-11 | 基于fpga的som神经网络可配置模块化硬件实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810595873.XA CN108830378A (zh) | 2018-06-11 | 2018-06-11 | 基于fpga的som神经网络可配置模块化硬件实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108830378A true CN108830378A (zh) | 2018-11-16 |
Family
ID=64143484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810595873.XA Pending CN108830378A (zh) | 2018-06-11 | 2018-06-11 | 基于fpga的som神经网络可配置模块化硬件实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108830378A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111027277A (zh) * | 2019-11-12 | 2020-04-17 | 天津大学 | 一种软硬件协同的验证方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070022063A1 (en) * | 1999-02-01 | 2007-01-25 | Axeon Limited | Neural processing element for use in a neural network |
CN103488662A (zh) * | 2013-04-01 | 2014-01-01 | 哈尔滨工业大学深圳研究生院 | 基于图形处理单元的自组织映射神经网络聚类方法及系统 |
CN106447029A (zh) * | 2016-09-05 | 2017-02-22 | 郑州航空工业管理学院 | 基于bp神经网络的防眩玻璃化学侵蚀工艺参数优化方法 |
CN107392308A (zh) * | 2017-06-20 | 2017-11-24 | 中国科学院计算技术研究所 | 一种基于可编程器件的卷积神经网络加速方法与系统 |
CN108052840A (zh) * | 2017-11-13 | 2018-05-18 | 天津大学 | 基于神经网络的硬件木马检测方法 |
-
2018
- 2018-06-11 CN CN201810595873.XA patent/CN108830378A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070022063A1 (en) * | 1999-02-01 | 2007-01-25 | Axeon Limited | Neural processing element for use in a neural network |
CN103488662A (zh) * | 2013-04-01 | 2014-01-01 | 哈尔滨工业大学深圳研究生院 | 基于图形处理单元的自组织映射神经网络聚类方法及系统 |
CN106447029A (zh) * | 2016-09-05 | 2017-02-22 | 郑州航空工业管理学院 | 基于bp神经网络的防眩玻璃化学侵蚀工艺参数优化方法 |
CN107392308A (zh) * | 2017-06-20 | 2017-11-24 | 中国科学院计算技术研究所 | 一种基于可编程器件的卷积神经网络加速方法与系统 |
CN108052840A (zh) * | 2017-11-13 | 2018-05-18 | 天津大学 | 基于神经网络的硬件木马检测方法 |
Non-Patent Citations (3)
Title |
---|
S.T. BRASSAI: "FPGA Based Hardware Implementation of a Self-Organizing Map", 《IEEE 18TH INTERNATIONAL CONFERENCE ON INTELLIGENT ENGINEERING SYSTEMS》 * |
孔超 等: "一种基于FPGA的SOM神经网络算法的并行实现", 《计算机工程》 * |
王彤: "基于FPGA的Hopfield神经网络可配置硬件实现方法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111027277A (zh) * | 2019-11-12 | 2020-04-17 | 天津大学 | 一种软硬件协同的验证方法 |
CN111027277B (zh) * | 2019-11-12 | 2024-07-05 | 天津大学 | 一种软硬件协同的验证方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kuan et al. | VLSI design of an SVM learning core on sequential minimal optimization algorithm | |
US11740870B2 (en) | Convolutional network hardware accelerator device, system and method | |
Stanislaw | Tests of computer simulation validity: what do they measure? | |
CN110210625A (zh) | 基于迁移学习的建模方法、装置、计算机设备和存储介质 | |
Porrmann et al. | A massively parallel architecture for self-organizing feature maps | |
CN109508740B (zh) | 基于高斯混合噪声生成式对抗网络的物体硬度识别方法 | |
CN103605711A (zh) | 支持向量机分类器的构造方法及装置、分类方法及装置 | |
Dong et al. | A combined deep learning model for the scene classification of high-resolution remote sensing image | |
CN106529563A (zh) | 基于双图稀疏非负矩阵分解的高光谱波段选择方法 | |
CN115146580A (zh) | 基于特征选择和深度学习的集成电路路径延时预测方法 | |
CN112420125A (zh) | 分子属性预测方法、装置、智能设备和终端 | |
Jovanović et al. | A survey of hardware self-organizing maps | |
Zhang et al. | Hyperpelt: Unified parameter-efficient language model tuning for both language and vision-and-language tasks | |
CN108830378A (zh) | 基于fpga的som神经网络可配置模块化硬件实现方法 | |
Galicia et al. | Neurovp: A system-level virtual platform for integration of neuromorphic accelerators | |
Ahn | Computation of deep belief networks using special-purpose hardware architecture | |
Neves et al. | Reconfigurable stream-based tensor unit with variable-precision posit arithmetic | |
CN113449968B (zh) | 一种基于深度学习的新能源电网频率风险评估方法及装置 | |
Riazati et al. | Autodeephls: Deep neural network high-level synthesis using fixed-point precision | |
Deshpande | FPGA implementation & acceleration of building blocks for biologically inspired computational models | |
Peng et al. | Trainable and low-cost SMO pattern classifier implemented via MCMC and SFBS technologies | |
Lee et al. | i TPlace: machine learning-based delay-aware transistor placement for standard cell synthesis | |
Tiwari et al. | Design of intelligent system for medical applications using rough set theory | |
CN108664368B (zh) | 处理器性能指标评估方法及设备 | |
Ma | Hardware Acceleration of Deep Convolutional Neural Networks on FPGA |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181116 |
|
RJ01 | Rejection of invention patent application after publication |