[发明专利]核函数极限学习机分类器的FPGA实现方法有效
申请号: | 201510079979.0 | 申请日: | 2015-02-13 |
公开(公告)号: | CN104680236B | 公开(公告)日: | 2017-08-01 |
发明(设计)人: | 荣海军;弓晓阳;杨静;李苑;赵广社 | 申请(专利权)人: | 西安交通大学 |
主分类号: | G06N3/08 | 分类号: | G06N3/08;G06K9/62 |
代理公司: | 西安通大专利代理有限责任公司61200 | 代理人: | 闵岳峰 |
地址: | 710049 *** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 函数 极限 学习机 分类 fpga 实现 方法 | ||
1.核函数极限学习机分类器的FPGA实现方法,其特征在于,包括如下步骤:
首先在PC机上对原始分类样本进行预处理得到样本,然后通过RS232端口将样本由PC机传输到FPGA中,FPGA将样本存入RAM中,根据训练样本的特征数和样本数确定核函数极限学习机的决策函数、拓扑结构;
核函数极限学习机决策函数的确定方法如下:
设有一组样本集(xi,ti),i=1,...,N,N为正整数,其中xi∈Rd,R为实数集,d为样本特征数,ti=[ti,1,ti,2,...,ti,m]T是与第i个样本相对应的分类类别,m表示类别数,如果第i个样本属于第j类,则有ti,j=1,其余为-1,核函数极限学习机分类决策面描述为f(xi)=h(xi)β,其中β为权值向量,h(xi)=[h(xi,1),...,h(xi,d)]为样本从输入空间到特征空间的非线性映射,核函数极限学习机的分类学习即解决下面的受约束优化问题:
最小化:
其中:C为惩罚参数、ξi为松弛变量,i=1,...,N;
约束条件:
求解该问题引入拉格朗日函数得:
其中,αi=[αi,1,...,αi,m],αi,j是拉格朗日乘子,利用KKT条件分别对拉格朗日函数的各个变量求偏导数即得:
对式(4)~式(6)进行变换得式:
式中:H=[h(x1)T,h(x2)T,...,h(xN)T]T,T=[t1、t2,...,tN]T;
将式(7)其代入决策函数得:
引入高斯核函数,核函数定义为:
K(xi,xj)=h(xi)·h(xj)=exp(-γ||xi-xj||2) (9)
其中,γ为高斯核函数宽度参数
其中:
Ω=HHT;Ωi,j=h(xi)·h(xj)=K(xi,xj) (11)
设W由训练样本计算得到,此处定义其为输出权值向量;
把样本x代入决策函数(10)后得到输出f(x),其中fj(x)表示第j个输出,则f(x)=[f1(x),...,fm(x)],对于样本x的分类结果表示为:
其中,由式(10)确定核函数极限学习机拓扑结构:输入层节点数为d,中间层节点数为N,输出层节点数为m;将该核函数极限学习机分成两部分:训练部分和测试部分;训练部分即输出权值W的计算,按以下步骤实现;
A1、矩阵Ω见式(11)的求解模块,构造一个高斯核函数模块按流水线的方式实现,核函数采用流水线的方式完成运算,分为减法、平方、求和、乘法及指数函数五步完成,每一步消耗一个时钟周期,五个步骤按流水线的方式工作,当训练样本连续输入时,在第5个时钟周期后计算结果连续输出;
A2、将上一步计算结果存储到存储器中,实现(1/C+Ω),将变量1/C加到矩阵Ω的对角线上,构造计数器和加法器,加法器的一端接变量1/C,另一端接存储器的输出端,加法器的输出端接存储器的输入端,计数器的输出cnt作为存储器的地址,4个时钟周期为一个循环,t=1时读数据,t=2时输出的数据与变量1/C相加,t=3时将求和结果写回原地址中,t=4时计数器更新,cnt=cnt+(N+1);即指向对角线的下一个元素,运算结束后将数据输出;
A3、构造矩阵求逆模块将A2的输出数据写入模块内的存储器中然后进行求逆运算,运算结束后将数据输出,设A2的输出结果为ANN,设A3的输出结果为BNN即
A4、将A3输出的数据存入RAM中,完成W=BNNT,分类标签T分别存到RAMt1,RAMt2,…,RAMtm,构造m个乘法累加器,m个存储器RAMw1,RAMw2,…,RAMwm,第j个乘法累加器的两个输入端口,一端接RAM的输出,另一端接RAMtj的输出,完成运算,将结果存入RAMwj中,其中i=1,2…,N,m个乘法累加器是同时并行运算,结果分别存入RAMw1,RAMw2,…,RAMwm中,RAMw中所存储的数据即为输出权值,其中j=1,2....,m;
测试部分即网络输出模块的实现,完成下式运算
B1、测试样本的核函数运算模块
由公式(13)知有N个核函数,此处采用流水线的方式来完成N个核函数的运算,测试样本X∈Rd送入核函数的一端,另一端接训练样本,N组训练样本连续输入,5个时钟周期后N个计算结果连续输出;
B2、构造m个乘法累加器,其中第j个乘法累加器的两个输入端,一个端口接B1的输出数据,另一个端口接RAMwj的输出,当B1数据输出时,同时读取RAMwj中的对应输出权值同时送入乘法累加器中进行并行运算,m个乘法累加器并型运算产生m个输出值,其中j=1,2....,m;
B3、判断模块,上一步有m个输出,分别为f1(x),f2(x),…,fm(x),首先令T(0)=1,其余位为0;然后取f1(x)和f2(x)进行比较,如果f1(x)≥f2(x)则max=f1(x)T不变,否则max=f2(x),T(1)=1,其余位置0;然后按此方法取max与下一个数据fj(x)进行比较,如果max≥fj(x)则max,T不变,否则max=fj(x),T(j-1)=1,其余位置0,全部比较完后将T输出。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交通大学,未经西安交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510079979.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种油气田产能预测方法及装置
- 下一篇:一种光电计数器前端触发电路