CN101625735A - 基于ls-svm分类和回归学习递归神经网络的fpga实现方法 - Google Patents
基于ls-svm分类和回归学习递归神经网络的fpga实现方法 Download PDFInfo
- Publication number
- CN101625735A CN101625735A CN200910023583A CN200910023583A CN101625735A CN 101625735 A CN101625735 A CN 101625735A CN 200910023583 A CN200910023583 A CN 200910023583A CN 200910023583 A CN200910023583 A CN 200910023583A CN 101625735 A CN101625735 A CN 101625735A
- Authority
- CN
- China
- Prior art keywords
- alpha
- neural network
- sub
- sigma
- neuron
- 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
- Complex Calculations (AREA)
Abstract
本发明公开了一种LS-SVM分类与回归学习递归神经网络的FPGA实现方法,该方法按照以下步骤实施:根据样本数量构造LS-SVM分类或回归学习递归神经网络的拓扑结构;选用合适的核函数,选择核函数参数并进行计算;将得到的动态方程进行离散化处理,并确定步长;选择实验使用的带补码的二进制编码的位数;构造基本的元件库,包括运算单元、存储单元和控制单元;构建LS-SVM分类或回归学习递归神经网络神经元单元;将构建的神经元单元看作基本元件,调用相应数量的神经元构建整个网络。本发明的FPGA实现方法不仅加快了LS-SVM训练速度,而且克服了模拟电路实现灵活性不足的缺点,可以较好的应对应用环境的改变。
Description
技术领域
本发明属于模式识别技术领域,涉及一种基于LS-SVM分类学习递归神经网络的FPGA实现方法,还涉及一种基于LS-SVM回归学习递归神经网络的FPGA实现方法。
背景技术
支持向量机(Support Vector Machines,SVM)以良好的推广能力、极低的分类和逼近误差、数学上的易处理性和简洁的几何解释等优点,已被广泛作为一种分类和回归的工具。目前对支持向量机的研究主要集中在理论研究和算法的优化方面。与之相比,其应用研究和算法实现的研究相对较少,目前只有较为有限的实验研究报道。同时,这些算法大多只能用计算机软件来实现,而不适合于硬件实现,这显然大大的限制了SVM在实际中的应用。
目前已经提出的SVM的硬件实现方法都是基于模拟电路的简单应用。模拟电路本身灵活性较差,拓扑结构确定后就很难改变,并且电路本身占用空间大、消耗能源多。而支持向量机在应用中经常要面对实时变化的环境,很多场合对于实现电路本身的物理条件也有要求,所以模拟电路实现SVM学习的方法在实际应用中就受到了限制。近年来FPGA技术的发展非常迅速,特别是FPGA本身具有构建拓扑结构迅速、消耗低、适应性强和设计简单等优点,FPGA的发展为SVM的硬件实现提供了一个新的思路。
标准支持向量机的训练问题实质上是求解一个二次规划问题,而最小二乘支持向量机采用等式约束,将原标准SVM问题转化为线性方程求解问题,从而简化了计算的复杂性,并且算法易实现、收敛速度快。因此对LS-SVM的FPGA实现研究,对于SVM的实际应用及理论研究均具有重要意义。
发明内容
本发明的目的是,提供一种基于LS-SVM分类学习递归神经网络的FPGA实现方法,还提供一种基于LS-SVM回归学习递归神经网络的FPGA实现方法,加快递归神经网络训练速度,提高了电路的灵活性。
本发明的技术方案是,一种基于LS-SVM分类学习递归神经网络的FPGA实现方法,该方法按以下步骤实施:
步骤1:根据样本数量构造LS-SVM分类学习递归神经网络的拓扑结构为:将-α1qi1…-αNqiN、1、-γ-1αi以及-byi接入∑中进行求和,∑的输出端接入积分器∫,积分器∫的输出即为αi,而αi再经权值-qij反馈到各相对应的∑中,形成一个递归神经网络;
给定分类训练集(zi,yi)是一组待分类的样本,i=1,2,...N,对于所有的zi∈RN都有yi∈(+1,-1)为样本相对应的类别,其分类决策面描述为其中W是权值向量,b是阈值,表示训练样本从输入空间到特征空间的非线性映射,LS-SVM的分类学习即解决下面受约束的优化问题:
求解该问题引入Lagrange函数:
其中αi为Lagrange乘子,利用KKT条件分别对Lagrange函数各个变量求偏导可以得到该问题的最优条件:
其中αi为Lagrange乘子,b是阈值,(zi,yi)是一组待分类的样本,i=1,2,...N,
步骤3:结合步骤2的结果,将动态方程(6)、(7)进行离散化处理,并确定步长ΔT;
将方程(6)、(7)进行离散化处理后得到离散动态方程(8)、(9)
方程(8)、(9)中的时间间隔ΔT即是采样的步长;
步骤4:确定带补码的二进制编码的位数:将32位的带补码的二进制编码C转换为16位的带补码的二进制编码,包括整数位的位数和小数位的位数;
步骤5:按照步骤4构造基本的元件库,包括运算单元、存储单元和控制单元,其中运算单元包括乘累加单元MAC、乘法器单元Mul、减法器单元Sub、累加器单元AC;存储单元包括ROM和RAM;控制单元调用ISE9.1中IP核实现MAC、Mul、Sub、AC和ROM;
步骤6:利用步骤5得到的元件库,分别构建神经元单元:
构建LS-SVM分类学习神经元模块,
A1、当数据存储完毕,此时从ROM和RAM中同时读取数据,输入到MAC单元中,其中在一个触发沿中的αj(t)和qij是相互对应的,在MAC单元计算的同时计算1-b(t)yi,首先通过使用Mul的映射单元Mul(1)完成b(t)yi运算,然后通过使用Sub的映射单元Sub(1)完成1-b(t)yi;
A2、等待MAC单元运算完毕,将结果和1-b(t)yi输入到Sub的映射单元Sub(2),与Sub(2)平行的位置还有Mul(2),在这个时间段内同时完成γ-1αi(t)的计算;
A3、将Mul(2)和Sub(2)的结果输入到Sub(3)中,完成 的计算;
A4、再将Sub(3)的结果与设定好的ΔT送入Mul(3),此时得到运算结果αj(ΔT),再将αj(ΔT)送入到AC模块中进行累加,最终得到αj(t+ΔT),对于(9)中 部分看作是αj(t)到αj(t+ΔT)一个增量,当它为0时,即AC模块的输入为0的时候,AC模块的输出不再变化时,神经元的输出稳定,输出结果为αj;
步骤7:将各个神经元单元看作基本元件,Neuro1~Neuroi代表i个神经元,Neuro_b代表阈值神经元,调用i个神经元和Neuro_b阈值神经元并联接入select模块,通过i+1个神经元的规则连接,构成了SVM学习功能的神经网络,同时使每个神经元受控于一个时钟控制信号,每个神经元一个周期内计算完毕后,都产生一个有效控制信号,当神经网络控制单元接收到的所有神经元的控制信号有效时,产生一个总的有效控制信号使全部神经元进入下一周期的运算,当网络进行递归运算直至稳定时,求得收敛参数α,b。
本发明的另一技术方案是,一种基于LS-SVM回归学习递归神经网络的FPGA实现方法,该方法按以下步骤实施:
步骤1、根据样本数量构造LS-SVM回归学习递归神经网络的拓扑结构:将-α1Ωi1…-αNΩiN、yi、-γ-1α以及-b接入∑中进行求和,∑的输出端接入积分器∫,积分器∫的输出即为αi,而αi再经权值-Ωij反馈到各相对应的∑中,
给定训练集(zi,yi),i=1,...,N,其中,第i个输入数据zi∈Rn并且第i个输出数据yi∈R,与分类问题相似的回归函数为:其中W为权值向量,b为偏移量,表示从输入空间到特征空间的非线性映射,LS-SVM的回归问题即解决下面优化问题:
同样构建Lagrange函数:
其中αi为Lagrange乘子,由KKT条件和与分类问题的推导得到问题最优必须满足:
得到LS-SVM回归学习神经网络模型的动态方程:
其中αi为Lagrange乘子,b是阈值,(zi,yi)是一组待分类的样本,i=1,2,...N,
步骤3:结合步骤2的结果,将动态方程(15)(16)进行离散化处理,并确定步长ΔT;
方程(17)、(18)中的时间间隔ΔT即是采样的步长;
步骤4:确定带补码的二进制编码的位数:将32位的带补码的二进制编码C转换为16位的带补码的二进制编码,包括整数位的位数和小数位的位数;
步骤5:按照步骤4构造基本的元件库,包括运算单元、存储单元和控制单元,其中运算单元包括乘累加单元MAC、乘法器单元Mul、减法器单元Sub、累加器单元AC;存储单元包括ROM和RAM;控制单元调用ISE9.1中IP核实现MAC、Mul、Sub、AC和ROM;
步骤6:利用步骤5得到的基本元件库,构建LS-SVM回归学习递归神经元单元,
B2、等待MAC单元运算完毕,将结果和yi-b(t)输入到Sub的映射单元Sub(2),与Sub(2)平行的位置还有Mul(1),在这个时间段内同时完成γ-1αi(t)的计算;
B3、将Mul(1)和Sub(2)的结果输入到Sub(3)中,完成 的计算;
B4、再将Sub(3)的结果与设定好的ΔT送入Mul(2),此时得到运算结果αj(ΔT),再将αj(ΔT)送入到AC模块中进行累加,最终得到αj(t+ΔT),对于(9)中 部分看作是αj(t)到αj(t+ΔT)一个增量,当它为0时,即AC模块的输入为0的时候,AC模块的输出不再变化时,神经元的输出稳定,输出结果为αj;
步骤7:将各个神经元单元看作基本元件,Neuro1~Neuroi代表i个神经元,Neuro_b代表阈值神经元,调用i个神经元和Neuro_b阈值神经元并联接入select模块,通过i+1个神经元的规则连接,构成了SVM学习功能的神经网络,同时使每个神经元受控于一个时钟控制信号,每个神经元一个周期内计算完毕后,都产生一个有效控制信号,当神经网络控制单元接收到的所有神经元的控制信号有效时,产生一个总的有效控制信号使全部神经元进入下一周期的运算,当网络进行递归运算直至稳定时,求得收敛参数α,b。
本发明的FPGA实现方法,较好的完成了LS-SVM学习递归神经网络的分类和回归,不仅加快了递归神经网络训练速度,还提高了电路的灵活性,使LS-SVM的应用更加广泛。
附图说明
图1是本发明的LS-SVM分类学习神经网络拓扑结构图;
图2是本发明的LS-SVM分类学习神经网络的实现流程图;
图3是本发明的16位的带补码的二进制编码示意图;
图4是本发明的编码信号在运算单元之间的流向图;
图5是本发明的编码数据训练中处理过程示意图;
图6是本发明的LS-SVM分类学习神经网络神经元的FPGA实现流程图;
图7是本发明的LS-SVM回归学习神经网络的结构图;
图8是本发明的LS-SVM回归学习神经网络拓扑结构图;
图9是本发明的LS-SVM回归学习神经网络神经元的FPGA实现流程图;
图10是本发明实施例1LSSVCLN用Simulink得到的α,b的收敛波形图;
图11是本发明的实施例1通过图7中α,b的结果求得的线性不可分决策面示意图,“o”代表正类样本;“*”代表负类样本;
图12是本发明实施例1LSSVCLN用FPGA实现得到的α,b收敛波形图;
图13是本发明的实施例1通过图9中α,b的结果求得的线性不可分决策面示意图,“o”代表正类样本;“*”代表负类样本;
图14是本发明实施例2用Simulink进行LSSVRLN仿真得到的α,b的收敛波形图;
图15是本发明实施例2通过图11中α,b对12个点的回归结果曲线图;
图16是本发明实施例2通过图13中α,b对12个点的回归结果曲线图;
图17是本发明实施例2用FPGA实现LSSVRLN得到的α,b的收敛波形图。
具体实施方式
下面结合附图和具体实施方式对本发明进行详细说明。
构造LS-SVM分类学习递归神经网络,
给定分类训练集(zi,yi)是一组待分类的样本,i=1,2,...N。对于所有的zi∈RN都有yi∈(+1,-1),其分类决策面可以描述为其中W是权值向量,b是阈值,用来表示训练样本从输入空间到特征空间的非线性映射。LS-SVM的分类学习即解决下面受约束的优化问题:
求解该问题可引入Lagrange函数:
其中αi为Lagrange乘子。利用KKT条件分别对Lagrange函数各个变量求偏导可以得到该问题的最优条件:
其中qij=yi yj Kij,且定义为核函数。如果核函数满足Merce条件,并且对称阵Qc=[qij]是正定的,则该问题是一个最优化的凸问题,即它只有一个全局解。
神经网络模型由下面的动态方程来描述:
图1为LS-SVM分类学习神经网络的拓扑结构图,-α1qi1…-αNqiN、1、-γ-1αi以及-byi接入∑中进行求和,∑的输出端接入积分器∫,积分器∫的输出即为αi,而αi再经权值-qij反馈到各相对应的∑中,形成一个递归神经网络。
由于FPGA本身不能直接实现连续动态方程,所以将方程(6)、(7)进行离散化处理后得到离散动态方程(8)、(9):
式(8)、(9)中ΔT是采样的时间间隔。
本发明将对如何用FPGA实现方程(8)、(9)进行说明。FPGA本身的可编程性增强了电路设计的灵活性,故本发明中的主要手段是FPGA通常采用的VHDL编程语言,图2进一步说明VHDL语言是如何运用在LS-SVM分类学习神经网络中的。图2中最底层的方框代表构建的基本元件库:主要包括乘累加单元(MAC)、乘法器单元(Mul)、减法器单元(Sub)、累加器单元(AC)以及存储单元ROM和RAM。在基本元件的实现手段上,有些我们采用VHDL语言编程实现,而还有一些则采用第三方的IP核进行实现。本发明所涉及的IP核均为软IP核,不含具体的物理信息。第二层的方框代表神经元,其中neuro1-neuroi代表i个神经元,它们都是通过编写vhd文件调用最底层中基本元件库中的元件实现的。最上面的方框代表整个SVM神经网络,它也是通过编写vhd文件调用第二层的神经元文件实现的。
本发明方法创建的元件库中的元件,输入与输出信号均采用带补码的二进制编码。对应基本元件的运算均为定点运算,在定点运算中小数点的位置是由设计者自己决定的,在实际的硬件实现中并没有单独存储的单元来存放小数点的位置。对于设计者来说,它只是一个虚拟的存在,只需要设计者记住它的位置,在实际的运算过程中是没有影响的。信号的编码长度范围可以通过设计者经验或是软件仿真得到。
本发明方法另一个重要的问题是中间数据处理。所提出的网络都具有递归特性,对于这类网络,输入给定后训练过程是一个自己的不断迭代过程,这个过程中是很难进行人为干预的。对于一个神经元在一个周期中的运算包括了乘法器和乘累加器等运算单元,这类运算单元会导致输出信号与输入信号的表达方式的不一致。图3所示为一个16位的带补码的二进制编码数,其中S代表符号位,F为整数位,I为小数位。如图4,以一个乘法器和一个减法器的组合为例进行说明。乘法器(Mul)的输入信号a和b都是长度为16位的带补码的二进制编码,则其输出信号C为长度为32位的带补码的二进制编码。而对于乘法器的输出信号C要作为减法器(Sub)的一个输入信号,但是减法器(Sub)设定的输入信号编码长度为16位带补码的二进制编码,所以在此之前要经过一个数据处理过程,将32位的带补码的二进制编码C转换为16位的带补码的二进制编码C。按图5所示,对32位编码的C做如下处理,舍掉图示部分。如果剩余整数部分能够表示所有的整数位,那么舍去整数位部分对结果是没有影响的。对于舍去小数部分,如果信号小数位取得足够多,那么舍掉图5所示的小数部分,对结果的影响是很小的,可以忽略。当经过图5所示的部分处理后,就可以得到与图3相同形式16位的带补码的二进制编码。
基本元件库建立起来之后,如图6中,最左边的方框代表基本元件库,其中包括累加单元(MAC)、乘法器单元(Mul)、减法器单元(Sub)、累加器单元(AC)以及存储单元ROM和RAM和计数器(COUNT)。中间的框图中qij是网络的权值,Mul(1)、Mul(2)和Mul(3)是对基本元件库中的元件Mul的映射元件。Sub(1)、Sub(2)和Sub(3)是对基本元件库中的元件Sub的映射元件。yi是分类的标识,γ为惩罚因子。最右边的框图中α1(t),α2(t),...αi(t)代表拉格朗日乘子,b代表网络的阈值。对于具有递归特性的LS-SVM分类学习神经网络,网络的权值qij是由训练样本的值决定的。不同于一般的神经网络,该网络的权值不是实时更新的。对于一个特定的问题,训练样本的值是固定的,即LS-SVM分类学习神经网络权值qij在训练的过程中不变化。所以在网络训练前,根据训练样本计算好权值qij,存放在ROM单元中。
按照图6的流程构造LS-SVM分类学习神经元模块,上述准备工作做好之后,网络进入训练过程。由于本网络具有递归的特点,所以这里只对一个周期内的第j个神经元运作进行说明。当上一个周期结束时,产生一组训练参数α1(t),α2(t),...αi(t)及b(t)。本周期开始时,将这组参数值存入到RAM单元中,这样做是考虑到资源的节省问题以及结构的简单化而使用的流水线技术。虽然LS-SVM分类学习神经网络本身具有高度的并行性,但是此方法并不影响整体的并行性。当后续计算需要使用这些参数值时,再从RAM中读取。如图6,箭头的流向代表模块的触发顺序,可以把整个LS-SVM分类学习神经网络神经元的FPGA实现过程分为如下四个阶段:
1、当数据存储完毕,此时从ROM和RAM中同时读取数据,输入到MAC单元中,其中在一个触发沿中的αj(t)和qij是相互对应的。在MAC单元计算的同时计算1-b(t)yi,首先通过使用Mul的映射单元Mul(1)完成b(t)yi运算,然后通过使用Sub的映射单元Sub(1)完成1-b(t)yi,这样两个或是几个模块并行计算可以节省网络的训练时间;
3、将Mul(2)和Sub(2)的结果输入到Sub(3)中,完成 的计算;
4、再将Sub(3)的结果与设定好的ΔT送入Mul(3),此时得到运算结果αj(ΔT),再将αj(ΔT)送入到AC模块中进行累加,最终得到αj(t+ΔT)。对于(9)中 部分,可以看作是αj(t)到αj(t+ΔT)一个增量,当它为0时,即AC模块的输入为0的时候,AC模块的输出不再变化时,神经元的输出稳定,输出结果为αj。
在使用VHDL语言进行实现时,将神经元(neuro)当作一个实体元件。构建neuro.vhd文件,通过component语句来调用元件库中的元件,这样做当需要对网络进行局部改动的时候,只需要改变或替换元件库中的基本单元即可构成新的网络,具有更好的可拓展性。
通过图6的流程就完成了一个神经元的功能模块的构建。按照图2中的结构完成Neuro模块设计后,相当于在原来元件库中添加了Neuro单元。如图7所示,Neuro1~Neuroi代表i个神经元,Neuro_b代表阈值神经元,i个神经元和Neuro_b阈值神经元并联接入select模块,通过i+1个神经元的规则连接,构成了SVM学习功能的神经网络。从图7中可以看到该递归网络有很强的并行性和规则性。为了很好的完成网络的这些特性,在本发明中使每个神经元受控于一个时钟控制信号,每个神经元一个周期内计算完毕后,都会产生一个有效控制信号,当神经网络控制单元接收到的所有神经元的控制信号有效时,将会产生一个总的有效控制信号使全部神经元进入下一周期的运算。同样使用component语句调用神经元模块,此方法便于增减神经网络中神经元的个数以便于网络规模的变化。
构造LS-SVM回归学习递归神经网络,
给定训练集(zi,yi),i=1,...,N,其中,第i个输入数据zi∈Rn并且第i个输出数据yi∈R,与分类问题相似的回归函数为:其中W为权值向量,b为偏移量。表示从输入空间到特征空间的非线性映射。LS-SVM的回归问题即解决下面优化问题:
同样构建Lagrange函数:
其中αi为Lagrange乘子。由KKT条件和与分类问题类似的推导得到问题最优必须满足:
所提出的回归网络由以下动态方程描述:
同样的,可以看出该动态方程(15)、(16)描述的***在平衡点处是满足原问题的KKT条件(13)、(14)的。
图8为LS-SVM回归学习递归神经网络的拓扑结构图,-α1Ωi1…-αNΩiN、yi、-γ-1α以及-b接入∑中进行求和,∑的输出端接入积分器∫,积分器∫的输出即为αi,而αi再经权值-Ωij反馈到各相对应的∑中。
由于FPGA本身不能直接实现连续动态方程,所以将方程(15)(16)进行离散化处理后得到离散动态方程(17)(18):
本发明方法也将对如何用FPGA实现方程(17)、(18)进行说明。
基本元件库建立起来之后,按照图9的流程构造LS-SVM回归学习递归神经网络的神经元模块。图9中最左边的方框代表基本元件库,其中包括累加单元(MAC)、乘法器单元(Mul)、减法器单元(Sub)、累加器单元(AC)以及存储单元ROM和RAM和计数器(COUNT)。中间的框图中Ωij是网络的权值,Mul(1)和Mul(2)是对基本元件库中的元件Mul的映射元件。Sub(1)、Sub(2)和Sub(3)是对基本元件库中的元件Sub的映射元件。yi是分类的标识,γ为惩罚因子。最右边的框图中α1(t),α2(t),...αi(t)代表拉格朗日乘子,b代表网络的阈值。对于具有递归特性的LS-SVM回归学习神经网络,网络的权值Ωij是由训练样本的值决定的。不同于一般的神经网络,该网络的权值不是实时更新的。对于一个特定的问题,训练样本的值是固定的,即LS-SVM回归学习神经网络权值Ωij在训练的过程中不变化。所以在网络训练前,根据训练样本计算好权值Ωij,存放在ROM单元中。
准备工作做好之后,网络进入训练过程。由于本网络具有递归的特点,所以这里只对一个周期内的第j个神经元运作进行说明。当上一个周期结束时,产生一组训练参数α1(t),α2(t),...αi(t)及b(t)。本周期开始时,将这组参数值存入到RAM单元中,这样做是考虑到资源的节省问题以及结构的简单化而使用的流水线技术。虽然LS-SVM回归学习神经网络本身具有高度的并行性,但是此方法并不影响整体的并行性。当后续计算需要使用这些参数值时,再从RAM中读取。如图9所示,箭头的流向代表模块的触发顺序,可以把整个LS-SVM回归学习递归神经网络神经元的FPGA实现过程分为如下四个阶段:
(2)、等待MAC单元运算完毕,将结果和yi-b(t)输入到Sub的映射单元Sub(2)。从图9中可以看到,与Sub(2)平行的位置还有Mul(1),在这个时间段内同时完成γ-1αi(t)的计算;
(3)、将Mul(1)和Sub(2)的结果输入到Sub(3)中,完成 的计算;
(4)、再将Sub(3)的结果与设定好的ΔT送入Mul(2),此时得到运算结果αj(ΔT),再将αj(ΔT)送入到AC模块中进行累加,最终得到αj(t+ΔT)。对于(9)中 部分,可以看作是αj(t)到αj(t+ΔT)一个增量,当它为0时,即AC模块的输入为0的时候,AC模块的输出不再变化时,神经元的输出稳定,输出结果为αj。
与LS-SVM分类神经网络类似,按照图9的流程完成神经元的设计,然后再按照图2和图7的结构完成整个网络的FPGA实现方法。
因此,本发明所述的基于上述LS-SVM分类或回归学习递归神经网络的最小二乘支持向量机的FPGA实现方法,按以下步骤实施:
步骤1:根据样本数量构造LS-SVM分类或回归学习递归神经网络的拓扑结构,如图1或图8所示;
步骤3:将动态方程(6)(7)或是(15)(16)进行离散化处理,并确定步长;
步骤4:选择实验使用的带补码的二进制编码的位数,其中包括整数位的位数和小数位的位数;
步骤5:构造基本的元件库,包括运算单元、存储单元和控制单元;
步骤6:根据图6或图9的流程,构建LS-SVM分类或回归学习递归神经网络神经元单元;
步骤7:将步骤6构建的神经元看作基本元件,调用相应数量的神经元按图7构建整个网络。
实施例1、一个R2的7个样本点线性不可分的验证实例:
z1=(4.7,1.4),z2=(4.5,1.5),z3=(4.9,1.5),z4=(6,2.5),z5=(5.1,1.9),z6=(5.9,2.1),z7=(5.6,1.8)。相对应的类别为(+1,+1,+1,-1,-1,-1,-1)。这7个点来自Iris data问题中Iris-versicolor和Iris-virginica两类,提取两类特征petallength和petal width。
步骤1:根据7个样本构造LS-SVM分类学习递归神经网络的拓扑结构;
步骤3:将动态方程(6)(7)进行离散化处理,取步长ΔT=2-3S;
步骤4:选择该实验使用的带补码的二进制编码的位数为16位,其中包括1位符号位、4位整数位和11位小数位;
步骤5:构造乘累加单元(MAC)、乘法器单元(Mul)、减法器单元(Sub)、累加器单元(AC)以及存储单元ROM和RAM,其中调用ISE9.1中IP核实现MAC、Mul、Sub、AC和ROM,编写vhd文件实现;
步骤6:根据图6流程,先将根据样本计算得到的qij存储在ROM中,然后按照计算顺序设计各个运算单元之间连接和触发顺序;
步骤7:将构造好的神经元看作一个基本的元件。调用相应数量的神经元构成图7所示整个网络,然后使网络进行递归运算,当网络稳定时,求得收敛参数α,b。
图10所示为该例采用LS-SVM分类学习神经网络进行Simulink仿真实验得到的各参数收敛曲线,其中:
α=(0.3404,0.3681,0.5758,0.2756,0.6158,0.1499,0.2430) b=-0.2249。
图10中符号:细实线,圆圈线,加号线,星号线,左三角线,右三角线上三角符号线,下三角符号线依次分别代表α,α1,α2,α3,α4,α5,α6,b线。
图11中曲线是由上面参数α,b求得的分类超平面,其表达式为:
图11中的‘o’代表第一类样本,‘*’代表第二类样本。
图12所示为该例采用LS-SVM分类学习神经网络的FPGA实现方法得到的各参数的值,其中:
α=(0.3292,0.4302,0.9177,0.3563,0.9709,0.0977,0.2520),b=-0.2463。
图13中的曲线是由上面参数α,b求得的分类超平面,其表达式为:
同时这里给出该例基于LS-SVM分类学***面的分类效果上看,两种实现方法都较好的完成了本例的线性不可分分类,但是使用FPGA的方法进行实现所需的时间更短。
实施例2、采用回归递归神经网络对12个点进行的函数回归问题,该12个点的函数值见表1:
表1实施例2中12个点的函数值列表
步骤1:根据12个样本数量构造SVM回归神经网络的拓扑结构;
步骤2:采用高斯核函数,其中γ-1=1,σ=1,并计算
步骤3:将动态方程(15)(16)进行离散化处理,取步长ΔT=2-3S;
步骤4:选择该实验使用的带补码的二进制编码的位数为16位,其中包括1位符号位、4位整数位和11位小数位;
步骤5:构造乘累加单元(MAC)、乘法器单元(Mul)、减法器单元(Sub)、累加器单元(AC)以及存储单元ROM和RAM,其中调用ISE9.1中IP核实现MAC、Mul、Sub、AC和ROM,编写vhd文件实现;
步骤6:根据图9流程,先将根据样本计算得到的qij存储在ROM中,然后按照计算顺序设计各个运算单元之间连接和触发顺序;
步骤7:将构造好的神经元看作一个基本的元件。调用相应数量的神经元构成图7所示整个网络,然后使网络进行递归运算。当网络稳定时,求得参数α,b。
图14所示为该例采用LS-SVM回归学习神经网络进行Simulink仿真实验得到的各参数收敛曲线,其中:
α=(-24.9382,-14.0225,-16.0573,-15.3244,-13.7700,-11.3375,-7.6692,-2.6501,4.7093,13.9112,16.5170,70.7750) b=48.2587
图14中的符号意义为:实线,五角星符号,加号,圆圈,星号,点号,叉号,上三角符号,下三角符号,左三角符号,右三角符号,菱形符号,正方形符号依次代表α,α1,α2,α3,α4,α5,α6,α7,α8,α9α10α11α12b线。
图15中的曲线是采用上面参数值绘制的函数回归结果,其回归函数表达式为:
‘o’代表待回归的点。
图17是该例采用LS-SVM回归学习神经网络的FPGA实现得到的各参数收敛曲线,其中:
α=(-25.9467,-15.0320,-17.0666,-16.3331,-14.7794,-13.3862,-8.6783,-3.65704.6998,13.9033,16.5094,70.7668) b=48.2789
图16中的曲线是采用LS-SVM学习神经网络的函数回归的结果,其表达式为:
同时这里给出该例基于LS-SVM分类学习神经网络这两种实现方法所需时间:Simulink仿真实验所用时间为3.012×10-3s;FPGA实现所用的时间为3.574×10-4s。从图15和图16中可以看出,图中这12个样本点虽然存在着一定的偏差,但都大致地分布在运用LSSVRLN所求得到的曲线上。这就说明基于LS-SVM回归学习神经网络的这两种方法都很好的实现了回归,但是使用FPGA的方法进行实现所用的时间更短。
综上所述,本发明的LS-SVM分类和回归学习递归神经网络的FPGA实现方法不仅加快了支持向量机的训练速度,也解决了模拟电路实现方法中灵活性不足的问题,使支持向量机的应用范围更加广泛。
Claims (2)
1、一种基于LS-SVM分类学习递归神经网络的FPGA实现方法,其特点在于:该方法按以下步骤实施:
步骤1:根据样本数量构造LS-SVM分类学习递归神经网络的拓扑结构为:将-α1qi1…-αNqiN、1、-γ-1αi以及-byi接入∑中进行求和,∑的输出端接入积分器∫,积分器∫的输出即为αi,而αi再经权值-qij反馈到各相对应的∑中,形成一个递归神经网络;
给定分类训练集(zi,yi)是一组待分类的样本,i=1,2,...N,对于所有的zi∈RN都有yi∈(+1,-1)为样本相对应的类别,其分类决策面描述为其中W是权值向量,b是阈值,表示训练样本从输入空间到特征空间的非线性映射,LS-SVM的分类学习即解决下面受约束的优化问题:
求解该问题引入Lagrange函数:
其中αi为Lagrange乘子,利用KKT条件分别对Lagrange函数各个变量求偏导可以得到该问题的最优条件:
其中αi为Lagrange乘子,b是阈值,(zi,yi)是一组待分类的样本,i=1,2,...N,
步骤2:选用高斯核函数,选择参数γ-1=1、σ=1,并计算
步骤3:结合步骤2的结果,将动态方程(6)、(7)进行离散化处理,并确定步长ΔT;
将方程(6)、(7)进行离散化处理后得到离散动态方程(8)、(9)
方程(8)、(9)中的时间间隔ΔT即是采样的步长;
步骤4:确定带补码的二进制编码的位数:将32位的带补码的二进制编码C转换为16位的带补码的二进制编码,包括整数位的位数和小数位的位数;
步骤5:按照步骤4构造基本的元件库,包括运算单元、存储单元和控制单元,其中运算单元包括乘累加单元MAC、乘法器单元Mul、减法器单元Sub、累加器单元AC;存储单元包括ROM和RAM;控制单元调用ISE9.1中IP核实现MAC、Mul、Sub、AC和ROM;
步骤6:利用步骤5得到的元件库,分别构建神经元单元:
构建LS-SVM分类学习神经元模块,
A1、当数据存储完毕,此时从ROM和RAM中同时读取数据,输入到MAC单元中,其中在一个触发沿中的αj(t)和qij是相互对应的,在MAC单元计算的同时计算1-b(t)yi,首先通过使用Mul的映射单元Mul(1)完成b(t)yi运算,然后通过使用Sub的映射单元Sub(1)完成1-b(t)yi;
A3、将Mul(2)和Sub(2)的结果输入到Sub(3)中,完成 的计算;
A4、再将Sub(3)的结果与设定好的ΔT送入Mul(3),此时得到运算结果αj(ΔT),再将αj(ΔT)送入到AC模块中进行累加,最终得到αj(t+ΔT),对于(9)中 部分看作是αj(t)到αj(t+ΔT)一个增量,当它为0时,即AC模块的输入为0的时候,AC模块的输出不再变化时,神经元的输出稳定,输出结果为αj;
步骤7:将各个神经元单元看作基本元件,Neuro1~Neuroi代表i个神经元,Neuro_b代表阈值神经元,调用i个神经元和Neuro_b阈值神经元并联接入select模块,通过i+1个神经元的规则连接,构成了SVM学习功能的神经网络,同时使每个神经元受控于一个时钟控制信号,每个神经元一个周期内计算完毕后,都产生一个有效控制信号,当神经网络控制单元接收到的所有神经元的控制信号有效时,产生一个总的有效控制信号使全部神经元进入下一周期的运算,当网络进行递归运算直至稳定时,求得收敛参数α,b。
2、一种基于LS-SVM回归学习递归神经网络的FPGA实现方法,其特点在于,该方法按以下步骤实施:
步骤1、根据样本数量构造LS-SVM回归学习递归神经网络的拓扑结构:将-α1Ωi1…-αNΩiN、yi、-γ-1α以及-b接入∑中进行求和,∑的输出端接入积分器∫,积分器∫的输出即为αi,而αi再经权值-Ωij反馈到各相对应的∑中,
给定训练集(zi,yi),i=1,...,N,其中,第i个输入数据zi∈Rn并且第i个输出数据yi∈R,与分类问题相似的回归函数为:其中W为权值向量,b为偏移量,表示从输入空间到特征空间的非线性映射,LS-SVM的回归问题即解决下面优化问题:
同样构建Lagrange函数:
其中αi为Lagrange乘子,由KKT条件和与分类问题的推导得到问题最优必须满足:
得到LS-SVM回归学习神经网络模型的动态方程:
其中αi为Lagrange乘子,b是阈值,(zi,yi)是一组待分类的样本,i=1,2,...N,
步骤3:结合步骤2的结果,将动态方程(15)(16)进行离散化处理,并确定步长ΔT;
方程(17)、(18)中的时间间隔ΔT即是采样的步长;
步骤4:确定带补码的二进制编码的位数:将32位的带补码的二进制编码C转换为16位的带补码的二进制编码,包括整数位的位数和小数位的位数;
步骤5:按照步骤4构造基本的元件库,包括运算单元、存储单元和控制单元,其中运算单元包括乘累加单元MAC、乘法器单元Mul、减法器单元Sub、累加器单元AC;存储单元包括ROM和RAM;控制单元调用ISE9.1中IP核实现MAC、Mul、Sub、AC和ROM;
步骤6:利用步骤5得到的元件库,构建LS-SVM回归学习递归神经元单元,
B3、将Mul(1)和Sub(2)的结果输入到Sub(3)中,完成 的计算;
B4、再将Sub(3)的结果与设定好的ΔT送入Mul(2),此时得到运算结果αj(ΔT),再将αj(ΔT)送入到AC模块中进行累加,最终得到αj(t+ΔT),对于(9)中 部分看作是αj(t)到αj(t+ΔT)一个增量,当它为0时,即AC模块的输入为0的时候,AC模块的输出不再变化时,神经元的输出稳定,输出结果为αj;
步骤7:将各个神经元单元看作基本元件,Neuro1~Neuroi代表i个神经元,Neuro_b代表阈值神经元,调用i个神经元和Neuro_b阈值神经元并联接入select模块,通过i+1个神经元的规则连接,构成了SVM学习功能的神经网络,同时使每个神经元受控于一个时钟控制信号,每个神经元一个周期内计算完毕后,都产生一个有效控制信号,当神经网络控制单元接收到的所有神经元的控制信号有效时,产生一个总的有效控制信号使全部神经元进入下一周期的运算,当网络进行递归运算直至稳定时,求得收敛参数α,b。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910023583A CN101625735A (zh) | 2009-08-13 | 2009-08-13 | 基于ls-svm分类和回归学习递归神经网络的fpga实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910023583A CN101625735A (zh) | 2009-08-13 | 2009-08-13 | 基于ls-svm分类和回归学习递归神经网络的fpga实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101625735A true CN101625735A (zh) | 2010-01-13 |
Family
ID=41521581
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910023583A Pending CN101625735A (zh) | 2009-08-13 | 2009-08-13 | 基于ls-svm分类和回归学习递归神经网络的fpga实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101625735A (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833691A (zh) * | 2010-03-30 | 2010-09-15 | 西安理工大学 | 一种基于fpga的最小二乘支持向量机串行结构实现方法 |
CN102135951A (zh) * | 2011-03-07 | 2011-07-27 | 哈尔滨工业大学 | 基于运行时重构的ls-svm算法fpga实现方法 |
CN104598917A (zh) * | 2014-12-08 | 2015-05-06 | 上海大学 | 一种支持向量机分类器ip核 |
CN104680236A (zh) * | 2015-02-13 | 2015-06-03 | 西安交通大学 | 核函数极限学习机分类器的fpga实现方法 |
CN104915195A (zh) * | 2015-05-20 | 2015-09-16 | 清华大学 | 一种基于现场可编程门阵列实现神经网络计算的方法 |
CN105719000A (zh) * | 2016-01-21 | 2016-06-29 | 广西师范大学 | 一种神经元硬件结构及用这种结构模拟脉冲神经网络的方法 |
CN106650923A (zh) * | 2015-10-08 | 2017-05-10 | 上海兆芯集成电路有限公司 | 具有神经存储器与神经处理单元阵列与定序器的神经网络单元 |
WO2017177446A1 (zh) * | 2016-04-15 | 2017-10-19 | 北京中科寒武纪科技有限公司 | 支持离散数据表示的人工神经网络反向训练装置和方法 |
CN107301453A (zh) * | 2016-04-15 | 2017-10-27 | 北京中科寒武纪科技有限公司 | 支持离散数据表示的人工神经网络正向运算装置和方法 |
WO2017185248A1 (zh) * | 2016-04-27 | 2017-11-02 | 北京中科寒武纪科技有限公司 | 用于执行人工神经网络自学习运算的装置和方法 |
CN107924358A (zh) * | 2015-07-31 | 2018-04-17 | 阿姆Ip有限公司 | 概率性处理器监视 |
CN108885712A (zh) * | 2015-11-12 | 2018-11-23 | 渊慧科技有限公司 | 神经编程 |
CN113239651A (zh) * | 2021-07-12 | 2021-08-10 | 苏州贝克微电子有限公司 | 用于电路设计的人工智能实现方法及*** |
CN113485762A (zh) * | 2020-09-19 | 2021-10-08 | 广东高云半导体科技股份有限公司 | 用可配置器件卸载计算任务以提高***性能的方法和装置 |
-
2009
- 2009-08-13 CN CN200910023583A patent/CN101625735A/zh active Pending
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833691A (zh) * | 2010-03-30 | 2010-09-15 | 西安理工大学 | 一种基于fpga的最小二乘支持向量机串行结构实现方法 |
CN102135951A (zh) * | 2011-03-07 | 2011-07-27 | 哈尔滨工业大学 | 基于运行时重构的ls-svm算法fpga实现方法 |
CN102135951B (zh) * | 2011-03-07 | 2013-09-11 | 哈尔滨工业大学 | 基于运行时重构的ls-svm算法fpga实现方法 |
CN104598917A (zh) * | 2014-12-08 | 2015-05-06 | 上海大学 | 一种支持向量机分类器ip核 |
CN104598917B (zh) * | 2014-12-08 | 2018-04-27 | 上海大学 | 一种支持向量机分类器ip核 |
CN104680236B (zh) * | 2015-02-13 | 2017-08-01 | 西安交通大学 | 核函数极限学习机分类器的fpga实现方法 |
CN104680236A (zh) * | 2015-02-13 | 2015-06-03 | 西安交通大学 | 核函数极限学习机分类器的fpga实现方法 |
CN104915195A (zh) * | 2015-05-20 | 2015-09-16 | 清华大学 | 一种基于现场可编程门阵列实现神经网络计算的方法 |
CN104915195B (zh) * | 2015-05-20 | 2017-11-28 | 清华大学 | 一种基于现场可编程门阵列实现神经网络计算的方法 |
CN107924358A (zh) * | 2015-07-31 | 2018-04-17 | 阿姆Ip有限公司 | 概率性处理器监视 |
CN106650923B (zh) * | 2015-10-08 | 2019-04-09 | 上海兆芯集成电路有限公司 | 具有神经存储器与神经处理单元与定序器的神经网络单元 |
CN106650923A (zh) * | 2015-10-08 | 2017-05-10 | 上海兆芯集成电路有限公司 | 具有神经存储器与神经处理单元阵列与定序器的神经网络单元 |
CN108885712A (zh) * | 2015-11-12 | 2018-11-23 | 渊慧科技有限公司 | 神经编程 |
CN108885712B (zh) * | 2015-11-12 | 2022-06-10 | 渊慧科技有限公司 | 神经编程 |
US11803746B2 (en) | 2015-11-12 | 2023-10-31 | Deepmind Technologies Limited | Neural programming |
CN105719000B (zh) * | 2016-01-21 | 2018-02-16 | 广西师范大学 | 一种神经元硬件装置及用这种装置模拟脉冲神经网络的方法 |
CN105719000A (zh) * | 2016-01-21 | 2016-06-29 | 广西师范大学 | 一种神经元硬件结构及用这种结构模拟脉冲神经网络的方法 |
CN107301453A (zh) * | 2016-04-15 | 2017-10-27 | 北京中科寒武纪科技有限公司 | 支持离散数据表示的人工神经网络正向运算装置和方法 |
WO2017177446A1 (zh) * | 2016-04-15 | 2017-10-19 | 北京中科寒武纪科技有限公司 | 支持离散数据表示的人工神经网络反向训练装置和方法 |
WO2017185248A1 (zh) * | 2016-04-27 | 2017-11-02 | 北京中科寒武纪科技有限公司 | 用于执行人工神经网络自学习运算的装置和方法 |
CN113485762A (zh) * | 2020-09-19 | 2021-10-08 | 广东高云半导体科技股份有限公司 | 用可配置器件卸载计算任务以提高***性能的方法和装置 |
CN113239651A (zh) * | 2021-07-12 | 2021-08-10 | 苏州贝克微电子有限公司 | 用于电路设计的人工智能实现方法及*** |
CN113239651B (zh) * | 2021-07-12 | 2021-09-17 | 苏州贝克微电子有限公司 | 用于电路设计的人工智能实现方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101625735A (zh) | 基于ls-svm分类和回归学习递归神经网络的fpga实现方法 | |
CN106529670B (zh) | 一种基于权重压缩的神经网络处理器、设计方法、芯片 | |
CN110175671A (zh) | 神经网络的构建方法、图像处理方法及装置 | |
CN106650924B (zh) | 一种基于时间维和空间维数据流压缩的处理器、设计方法 | |
CN106447034A (zh) | 一种基于数据压缩的神经网络处理器、设计方法、芯片 | |
CN101833691A (zh) | 一种基于fpga的最小二乘支持向量机串行结构实现方法 | |
CN109948149B (zh) | 一种文本分类方法及装置 | |
CN105488565A (zh) | 加速深度神经网络算法的加速芯片的运算装置及方法 | |
CN106874478A (zh) | 基于Spark的并行化随机标签子集多标签文本分类方法 | |
CN110991631A (zh) | 一种基于fpga的神经网络加速*** | |
CN107256424A (zh) | 三值权重卷积网络处理***及方法 | |
CN111782797A (zh) | 一种科技项目评审专家自动匹配方法及存储介质 | |
CN104680236A (zh) | 核函数极限学习机分类器的fpga实现方法 | |
CN108764588A (zh) | 一种基于深度学习的温度影响电力预测方法 | |
CN108921292A (zh) | 面向深度神经网络加速器应用的近似计算*** | |
CN108345934A (zh) | 一种用于神经网络处理器的激活装置及方法 | |
CN115034430A (zh) | 碳排放量预测方法、装置、终端及存储介质 | |
CN114676522B (zh) | 融合gan和迁移学习的气动形状优化设计方法及***及设备 | |
CN113849910B (zh) | 一种基于Dropout的BiLSTM网络机翼阻力系数预测方法 | |
CN107480771A (zh) | 基于深度学习的激活函数的实现方法及装置 | |
CN112200391A (zh) | 基于k-近邻互信息特征简化的配电网边缘侧负荷预测方法 | |
Zhan et al. | Field programmable gate array‐based all‐layer accelerator with quantization neural networks for sustainable cyber‐physical systems | |
Sakellariou et al. | An FPGA accelerator for spiking neural network simulation and training | |
Li et al. | FPGA implementation of LSTM based on automatic speech recognition | |
CN104090813A (zh) | 一种云数据中心的虚拟机cpu使用率的分析建模方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20100113 |