[发明专利]核函数极限学习机分类器的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)]为样本从输入空间到特征空间的非线性映射,核函数极限学习机的分类学习即解决下面的受约束优化问题:

最小化:

<mrow><mi>L</mi><mo>=</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><mo>|</mo><mo>|</mo><mi>&beta;</mi><mo>|</mo><msup><mo>|</mo><mn>2</mn></msup><mo>+</mo><mi>C</mi><mfrac><mn>1</mn><mn>2</mn></mfrac><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><mo>|</mo><mo>|</mo><msub><mi>&xi;</mi><mi>i</mi></msub><mo>|</mo><msup><mo>|</mo><mn>2</mn></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>

其中:C为惩罚参数、ξi为松弛变量,i=1,...,N;

约束条件:

<mrow><mi>h</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>)</mo></mrow><mi>&beta;</mi><mo>-</mo><msubsup><mi>t</mi><mi>i</mi><mi>T</mi></msubsup><mo>=</mo><msubsup><mi>&xi;</mi><mi>i</mi><mi>T</mi></msubsup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>

求解该问题引入拉格朗日函数得:

<mrow><mi>L</mi><mo>=</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><mo>|</mo><mo>|</mo><mi>&beta;</mi><mo>|</mo><msup><mo>|</mo><mn>2</mn></msup><mo>+</mo><mi>C</mi><mfrac><mn>1</mn><mn>2</mn></mfrac><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><mo>|</mo><mo>|</mo><msub><mi>&xi;</mi><mi>i</mi></msub><mo>|</mo><msup><mo>|</mo><mn>2</mn></msup><mo>-</mo><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><munderover><mo>&Sigma;</mo><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>m</mi></munderover><msub><mi>&alpha;</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mrow><mo>(</mo><mi>h</mi><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>)</mo><msub><mi>&beta;</mi><mi>j</mi></msub><mo>-</mo><msub><mi>t</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>+</mo><msub><mi>&xi;</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>

其中,αi=[αi,1,...,αi,m],αi,j是拉格朗日乘子,利用KKT条件分别对拉格朗日函数的各个变量求偏导数即得:

<mrow><mfrac><mrow><mo>&part;</mo><mi>L</mi></mrow><mrow><mo>&part;</mo><msub><mi>&beta;</mi><mi>j</mi></msub></mrow></mfrac><mo>=</mo><mn>0</mn><mo>&RightArrow;</mo><msub><mi>&beta;</mi><mi>j</mi></msub><mo>=</mo><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><msub><mi>&alpha;</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mi>h</mi><msup><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>)</mo></mrow><mi>T</mi></msup><mo>&RightArrow;</mo><mi>&beta;</mi><mo>=</mo><msup><mi>H</mi><mi>T</mi></msup><mi>&alpha;</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>

<mrow><mfrac><mrow><mo>&part;</mo><mi>L</mi></mrow><mrow><mo>&part;</mo><msub><mi>&xi;</mi><mi>i</mi></msub></mrow></mfrac><mo>=</mo><mn>0</mn><mo>&RightArrow;</mo><msub><mi>&alpha;</mi><mi>i</mi></msub><mo>=</mo><msub><mi>C&xi;</mi><mi>i</mi></msub><mo>,</mo><mi>i</mi><mo>=</mo><mn>1</mn><mo>,</mo><mo>...</mo><mo>,</mo><mi>N</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>

<mrow><mfrac><mrow><mo>&part;</mo><mi>L</mi></mrow><mrow><mo>&part;</mo><msub><mi>&alpha;</mi><mi>i</mi></msub></mrow></mfrac><mo>=</mo><mn>0</mn><mo>&RightArrow;</mo><mi>h</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>)</mo></mrow><mi>&beta;</mi><mo>-</mo><msubsup><mi>t</mi><mi>i</mi><mi>T</mi></msubsup><mo>+</mo><msubsup><mi>&xi;</mi><mi>i</mi><mi>T</mi></msubsup><mo>=</mo><mn>0</mn><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>

对式(4)~式(6)进行变换得式:

<mrow><mi>&beta;</mi><mo>=</mo><msup><mi>H</mi><mi>T</mi></msup><msup><mrow><mo>(</mo><mfrac><mn>1</mn><mi>C</mi></mfrac><mo>+</mo><msup><mi>HH</mi><mi>T</mi></msup><mo>)</mo></mrow><mrow><mo>-</mo><mn>1</mn></mrow></msup><mi>T</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow>

式中:H=[h(x1)T,h(x2)T,...,h(xN)T]T,T=[t1、t2,...,tN]T

将式(7)其代入决策函数得:

<mrow><mi>f</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><mi>h</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mi>&beta;</mi><mo>=</mo><mi>h</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><msup><mi>H</mi><mi>T</mi></msup><msup><mrow><mo>(</mo><mfrac><mn>1</mn><mi>C</mi></mfrac><mo>+</mo><msup><mi>HH</mi><mi>T</mi></msup><mo>)</mo></mrow><mrow><mo>-</mo><mn>1</mn></mrow></msup><mi>T</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>8</mn><mo>)</mo></mrow></mrow>

引入高斯核函数,核函数定义为:

K(xi,xj)=h(xi)·h(xj)=exp(-γ||xi-xj||2) (9)

其中,γ为高斯核函数宽度参数

<mrow><mi>f</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><mi>K</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><msub><mi>x</mi><mn>1</mn></msub><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mrow><mi>K</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><msub><mi>x</mi><mi>N</mi></msub><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mfenced><msup><mrow><mo>(</mo><mfrac><mn>1</mn><mi>C</mi></mfrac><mo>+</mo><mi>&Omega;</mi><mo>)</mo></mrow><mrow><mo>-</mo><mn>1</mn></mrow></msup><mi>T</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>10</mn><mo>)</mo></mrow></mrow>

其中:

Ω=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的分类结果表示为:

<mrow><mi>l</mi><mi>a</mi><mi>b</mi><mi>e</mi><mi>l</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><mi>arg</mi><munder><mrow><mi>m</mi><mi>a</mi><mi>x</mi></mrow><mrow><mi>i</mi><mo>&Element;</mo><mo>{</mo><mn>1</mn><mo>,</mo><mo>...</mo><mi>m</mi><mo>}</mo></mrow></munder><msub><mi>f</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>12</mn><mo>)</mo></mrow><mo>;</mo></mrow>

其中,由式(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;

测试部分即网络输出模块的实现,完成下式运算

<mrow><mi>f</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><msup><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><mi>K</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><msub><mi>x</mi><mn>1</mn></msub><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mrow><mi>K</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><msub><mi>x</mi><mi>N</mi></msub><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mfenced><mi>T</mi></msup><mo>&CenterDot;</mo><mi>W</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>13</mn><mo>)</mo></mrow></mrow>

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输出。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交通大学,未经西安交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201510079979.0/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top