一种支持向量机的fpga并行计算实现装置制造方法

文档序号:6535863阅读:351来源:国知局
一种支持向量机的fpga并行计算实现装置制造方法
【专利摘要】本发明提供了一种支持向量机的FPGA并行计算实现装置,解决目前软件训练SVM时速度慢的问题。本发明在PC上位机上实现了数据预处理与存储模块和任务配置模块,在FPGA上实现了SVC训练模块、SVR训练模块和模型测试模块。SVC/SVR训练模块可以有多个,在进行训练时对训练样本分为若干份同时进行训练。PC上位机和FPGA之间通过RS232通讯接口进行数据传输。本发明可用于处理所有实数类型的数据,具有通用性,并且充分利用FPGA的并行性,可以令多个SVM模块并行运算,大大提高了SVM的训练速度。
【专利说明】—种支持向量机的FPGA并行计算实现装置
【技术领域】
[0001]本发明属于人工智能领域,涉及支持向量机(Support Vector Machine, SVM)领域,具体涉及一种SVM在FPGA(Field Programmable Gate Array,现场可编辑逻辑门阵列)上并行计算的实现装置。
技术背景
[0002]随着科学技术的进步以及大量信息和数据的出现,机器学习越来越受到重视,建立在统计学习理论和结构风险最小化原则基础之上的SVM,具有很高的数据分类和回归精度,并且泛化能力强,目前已经成为数据分类和回归领域中的一种主要方法,在故障诊断、生物医学、图像处理、文本分类等领域都得到了成功的应用。
[0003]SVM的训练速度慢却成为其在大规模数据处理领域应用的瓶颈。虽然自1997年SVM提出之时起,研究者们就一直致力于提高SVM的训练速度。但是由于SVM求解模型的复杂性决定了其难以在算法上根本解决此问题。2010年《西安理工大学》王博公开了《一种基于FPGA的新的SVM硬件实现方法》,其中使用串行神经网络支持向量机,但仍存在SVM的训练速度慢的问题。

【发明内容】

[0004]本发明针对目前软件训练SVM时速度慢的问题,提出了 一种将SVM在FPGA上并行计算的实现装置,该装置可以用于处理所有实数类型的数据,具有通用性,并且充分利用FPGA的并行性,可以令多个SVM模块并行运算,大大提高了 SVM的训练速度。
[0005]本发明提供的一种支持向量机的FPGA并行计算实现装置,在PC上位机上实现了数据预处理与存储模块以及任务配置模块,在FPGA上实现了支持向量分类机(Supportvector machine for classification, SVC)训练模块、支持向量回归机(Support vectormachine for regression, SVR)训练模块以及模型测试模块。PC上位机和FPGA之间通过RS232通讯接口进行数据传输。
[0006]所述的数据预处理与存储模块完成数据的转换与存储,包括:将训练数据和测试数据进行归一化处理;将归一化后的数据乘以1024后四舍五入进行取整,将取整后的十进制数据转换为四位十六进制数据存储;将每四位十六进制数据分成两个两位十六进制数据,通过RS232传输入FPGA中,在传输到FPGA后再合并为四位十六进制数据。
[0007]所述的任务配置模块将任务配置的指令和参数数据通过RS232传给FPGA。任务配置的指令是指训练SVC或SVR。参数数据包括:SVC或者SVR的高斯核函数参数、惩罚因子和不敏感损失函数。
[0008]所述的SVC训练模块或SVR训练模块利用训练样本对SVC或SVR进行训练;SVC训练模块与SVR训练模块都具有N个,在进行SVC或SVR训练时,训练样本随机分为N份分别输入N个SVC或SVR训练模块中进行训练,N为大于等于I的整数;各SVC训练模块或SVR训练模块首先计算输入的训练样本数据的高斯核函数值,并将32位高斯核函数值分为两个16位的数据存入片外16位的SSRAM中,然后利用序列最小最优化算法训练SVC或SVR。
[0009]所述的模型测试模块利用测试样本,对训练得到的SVC或SVR进行测试。
[0010]本发明的优点和积极效果在于:
[0011](I)具有通用性:本发明可以支持对任何实数类型的数据进行处理;采用通用计算机上都配备的RS232接口与计算机通信,在保证传输速率的前提下,保障了通用性;
[0012](2)具有并行计算的特点:本发明可以并行处理多个(本发明实施例中为9个)SVM训练模块,提高了支持向量机的训练效率;
[0013](3)具有占用资源少的优点:本发明利用核矩阵的对称性,在同样大小的存储空间中存入两倍的数据;
[0014](4)具有数据分类和数据回归两种功能:本发明不仅可以用于大数据的分类,而且可以用于数据的回归。
【专利附图】

【附图说明】
[0015]图1是本发明的支持向量机的FPGA并行计算实现装置的体系结构示意图;
[0016]图2是本发明的FPGA上的工作流程示意图。
【具体实施方式】
[0017]下面将结合附图对本发明作进一步的详细说明。
[0018]为了解决SVM训练速度慢的问题,本发明提出将SVM在FPGA上并行训练和计算的装置,克服软件运行效率低的问题,以推广SVM在数据处理领域的应用。本发明具有可以并行计算,训练速度快,可以处理回归问题等优点。
[0019]本发明是一种基于FPGA的SVM实现装置,可以用于分类问题和回归问题,在下面的叙述中分别称为支持向量分类机(SVC)和支持向量回归机(SVR)。
[0020]本发明的支持向量机的FPGA并行计算实现装置,在PC上位机上主要实现了 3个功能模块:数据预处理与存储模块11、任务配置模块12以及结果显示模块13模板上实现了如下功能模块=SVC训练模块21、SVR训练模块22以及模型测试模块23。
[0021]数据预处理与存储模块11完成数据的转换与存储的功能,具体为:
[0022](1.1)将训练数据和测试数据进行归一化处理,归一化公式为(X-Xmin)/(Xmax-Xmin),其中X为待归一化值,Xmax为同一组数据中的最大值,Xmin为同一组数据中的最小值,这样避免了个别异常值对结果精度的影响;
[0023](1.2)将归一化后的数据转化为RS232可以传输的数据格式。首先将归一化后的数据统一乘以1024,并四舍五入进行取整;将取整之后的十进制数据转换为四位十六进制数据,并存入数据库中。其中数据库的设计如表1和表2所示。
[0024]表1SVC训练数据库
[0025]
【权利要求】
1.一种支持向量机的FPGA并行计算实现装置,其特征在于,在PC上位机上实现了数据预处理与存储模块以及任务配置模块,在FPGA上实现了支持向量分类机(SVC)训练模块、支持向量回归机(SVR)训练模块以及模型测试模块;PC上位机和FPGA之间通过RS232通讯接口进行数据传输; 所述的数据预处理与存储模块完成数据的转换与存储,包括:将训练数据和测试数据进行归一化处理;将归一化后的数据乘以1024后四舍五入进行取整,将取整后的十进制数据转换为四位十六进制数据存储;将每四位十六进制数据分成两个两位十六进制数据,通过RS232传输入FPGA中,在传输到FPGA后再合并为四位十六进制数据; 所述的任务配置模块将任务配置的指令和参数数据通过RS232传给FPGA ;任务配置的指令是指训练SVC或SVR ;参数数据包括:SVC或者SVR的高斯核函数、惩罚因子和不敏感损失函数; 所述的SVC训练模块或SVR训练模块利用训练样本对SVC或SVR进行训练;SVC训练模块与SVR训练模块都具有N个,在进行SVC或SVR训练时,训练样本随机分为N份分别输入N个SVC或SVR训练模块中进行训练,N为大于等于I的整数;各SVC训练模块或SVR训练模块首先计算输入的训练样本数据的高斯核函数值,并将32位高斯核函数值分为两个16位的数据存入片外16位的SSRAM中,然后利用序列最小最优化算法训练SVC或SVR ; 所述的模型测试模块 利用测试样本,对训练得到的SVC或SVR进行测试。
2.根据权利要求1所述的支持向量机的FPGA并行计算实现装置,其特征在于,所述的SVC训练模块与SVR训练模块分别有9个。
3.根据权利要求1所述的支持向量机的FPGA并行计算实现装置,其特征在于,所述的SVC训练模块与SVR训练模块进行训练的方法是: (2.1)将训练样本随机分为N份,分别输入N个SVC或SVR训练模块中;在SVC或SVR训练模块中,首先对每份数据通过公式K (Xi, Xj) = exp (- X1-Xj I2/。2)计算高斯核函数值,并将32位核函数值分开为两个16位的数据存入片外16位的SSRAM中;其中,Xi和Xj为一份训练样本数据中随机选取的两个数据,I X1-Xj I2为两个数据的模值差,σ为SVC或SVR的高斯核参数; (2.2)运行序列最小最优化算法,利用每份数据并行训练对应的SVC或SVR。
4.根据权利要求1所述的支持向量机的FPGA并行计算实现装置,其特征在于,所述的模型测试模块利用测试样本,对所训练的SVC或SVR进行测试,具体是: (3.1)计算测试数据的高斯核函数值,并存入RAM中; (3.2)计算决策函数: 第k个分类机的决策函数的测试结果Ck(X)为:
Ck (χ) = sgn( V- a'; * K {χ;, χ) + )k=\,2...,N

/二I 其中,Ik为第k个分类机的训练点个数,V;为第k个分类机的第i个训练点决策函数,a'力第k个分类机训练后的第i个支持向量值,K(x^:,x)为待测试数据χ与第k个分类机中第i个训练点4的高斯核函数值,b;为第k个分类机的偏移量;对于分类问题,将N个分类器的结果进行不加权投票得到最终的结果; 第k个回归机的决策函数测试结果Rk(X)为:
5.根据权利要求1所述的支持向量机的FPGA并行计算实现装置,其特征在于,所述的PC上位机上还包括结果显示模块,结果显示模块将模型测试模块输出的分类或者回归的测试结果显示给用户。
【文档编号】G06F17/30GK103699697SQ201410019445
【公开日】2014年4月2日 申请日期:2014年1月16日 优先权日:2014年1月16日
【发明者】郎荣玲, 曹永斌, 张国兵 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1