CN103699697A - 一种支持向量机的fpga并行计算实现装置 - Google Patents
一种支持向量机的fpga并行计算实现装置 Download PDFInfo
- Publication number
- CN103699697A CN103699697A CN201410019445.4A CN201410019445A CN103699697A CN 103699697 A CN103699697 A CN 103699697A CN 201410019445 A CN201410019445 A CN 201410019445A CN 103699697 A CN103699697 A CN 103699697A
- Authority
- CN
- China
- Prior art keywords
- training
- data
- svr
- svc
- module
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2411—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/19—Recognition using electronic means
- G06V30/192—Recognition using electronic means using simultaneous comparisons or correlations of the image signals with a plurality of references
- G06V30/194—References adjustable by an adaptive method, e.g. learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Computational Biology (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Complex Calculations (AREA)
Abstract
本发明提供了一种支持向量机的FPGA并行计算实现装置,解决目前软件训练SVM时速度慢的问题。本发明在PC上位机上实现了数据预处理与存储模块和任务配置模块,在FPGA上实现了SVC训练模块、SVR训练模块和模型测试模块。SVC/SVR训练模块可以有多个,在进行训练时对训练样本分为若干份同时进行训练。PC上位机和FPGA之间通过RS232通讯接口进行数据传输。本发明可用于处理所有实数类型的数据,具有通用性,并且充分利用FPGA的并行性,可以令多个SVM模块并行运算,大大提高了SVM的训练速度。
Description
技术领域
本发明属于人工智能领域,涉及支持向量机(Support Vector Machine,SVM)领域,具体涉及一种SVM在FPGA(Field Programmable Gate Array,现场可编辑逻辑门阵列)上并行计算的实现装置。
技术背景
随着科学技术的进步以及大量信息和数据的出现,机器学习越来越受到重视,建立在统计学习理论和结构风险最小化原则基础之上的SVM,具有很高的数据分类和回归精度,并且泛化能力强,目前已经成为数据分类和回归领域中的一种主要方法,在故障诊断、生物医学、图像处理、文本分类等领域都得到了成功的应用。
SVM的训练速度慢却成为其在大规模数据处理领域应用的瓶颈。虽然自1997年SVM提出之时起,研究者们就一直致力于提高SVM的训练速度。但是由于SVM求解模型的复杂性决定了其难以在算法上根本解决此问题。2010年《西安理工大学》王博公开了《一种基于FPGA的新的SVM硬件实现方法》,其中使用串行神经网络支持向量机,但仍存在SVM的训练速度慢的问题。
发明内容
本发明针对目前软件训练SVM时速度慢的问题,提出了一种将SVM在FPGA上并行计算的实现装置,该装置可以用于处理所有实数类型的数据,具有通用性,并且充分利用FPGA的并行性,可以令多个SVM模块并行运算,大大提高了SVM的训练速度。
本发明提供的一种支持向量机的FPGA并行计算实现装置,在PC上位机上实现了数据预处理与存储模块以及任务配置模块,在FPGA上实现了支持向量分类机(Support vectormachine for classification,SVC)训练模块、支持向量回归机(Support vector machine forregression,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为大于等于1的整数;各SVC训练模块或SVR训练模块首先计算输入的训练样本数据的高斯核函数值,并将32位高斯核函数值分为两个16位的数据存入片外16位的SSRAM中,然后利用序列最小最优化算法训练SVC或SVR。
所述的模型测试模块利用测试样本,对训练得到的SVC或SVR进行测试。
本发明的优点和积极效果在于:
(1)具有通用性:本发明可以支持对任何实数类型的数据进行处理;采用通用计算机上都配备的RS232接口与计算机通信,在保证传输速率的前提下,保障了通用性;
(2)具有并行计算的特点:本发明可以并行处理多个(本发明实施例中为9个)SVM训练模块,提高了支持向量机的训练效率;
(3)具有占用资源少的优点:本发明利用核矩阵的对称性,在同样大小的存储空间中存入两倍的数据;
(4)具有数据分类和数据回归两种功能:本发明不仅可以用于大数据的分类,而且可以用于数据的回归。
附图说明
图1是本发明的支持向量机的FPGA并行计算实现装置的体系结构示意图;
图2是本发明的FPGA上的工作流程示意图。
具体实施方式
下面将结合附图对本发明作进一步的详细说明。
为了解决SVM训练速度慢的问题,本发明提出将SVM在FPGA上并行训练和计算的装置,克服软件运行效率低的问题,以推广SVM在数据处理领域的应用。本发明具有可以并行计算,训练速度快,可以处理回归问题等优点。
本发明是一种基于FPGA的SVM实现装置,可以用于分类问题和回归问题,在下面的叙述中分别称为支持向量分类机(SVC)和支持向量回归机(SVR)。
本发明的支持向量机的FPGA并行计算实现装置,在PC上位机上主要实现了3个功能模块:数据预处理与存储模块11、任务配置模块12以及结果显示模块13;在FPGA模板上实现了如下功能模块:SVC训练模块21、SVR训练模块22以及模型测试模块23。
数据预处理与存储模块11完成数据的转换与存储的功能,具体为:
(1.1)将训练数据和测试数据进行归一化处理,归一化公式为(X-Xmin)/(Xmax-Xmin),其中X为待归一化值,Xmax为同一组数据中的最大值,Xmin为同一组数据中的最小值,这样避免了个别异常值对结果精度的影响;
(1.2)将归一化后的数据转化为RS232可以传输的数据格式。首先将归一化后的数据统一乘以1024,并四舍五入进行取整;将取整之后的十进制数据转换为四位十六进制数据,并存入数据库中。其中数据库的设计如表1和表2所示。
表1SVC训练数据库
字段 | 数据类型 | 说明 |
Attribute1 | VARchar | 条件属性1 |
Attribute2 | VARchar | 条件属性2 |
… | … | … |
Attribute k | VARchar | 条件属性h |
DecisionAttribute | Int | 决策属性 |
其中,VARCHAR表示变长字符类型,Int为整型。表1的SVC训练数据库中包含h个条件属性和1个决策属性。
表2SVR训练数据库
字段 | 数据类型 | 说明 |
Attribute1 | VARchar | 条件属性1 |
Attribute2 | VARchar | 条件属性2 |
… | … | … |
Attribute k | VARchar | 条件属性h |
Functionvalue | Double | 决策函数值 |
其中,Double为双精度型。表2的SVR训练数据库中包含h个条件属性和1个函数值。
(1.3)通过RS232将转换后的十六进制数据传输入FPGA中。由于RS232协议中一次性传输的有效数据只有两位十六进制数据,所以在传输时,将四位十六进制数据分成两个两位十六进制数据传输。在传输到FPGA后再合并为原始的四位十六进制数据,解决了RS232数据传输问题。
任务配置模块12主要完成2个功能:(1)发送任务配置的指令:选择训练SVC或者SVR;(2)配置SVC或者SVR的高斯核函数参数、惩罚因子以及不敏感损失函数等三个参数。任务配置模块12将任务配置的指令和配置的参数数据通过RS232传给FPGA。
结果显示模块13将模型测试模块23输出的分类或者回归的测试结果显示给用户。
FPGA将数据预处理与存储模块11传入的数据,首先转换为32位单精度浮点数,然后将转换后的数乘以1024存入片内RAM中,如图2所示。图2中,FPGA的控制部分调度数据预处理功能,实现对数据预处理与存储模块11传入的数据的转换和存储。
SVC训练模块21主要完成利用训练样本对SVC进行训练的功能。SVR训练模块22主要完成利用训练样本对SVR进行训练的功能。SVC训练模块21和SVR训练模块22分别有N个,N为大于1的整数。设置N大于等于2时,可进行并行训练,提高训练速度。在FPGA中运用SMO算法实现SVC和SVR的训练,充分利用FPGA的并行性,本发明实施例中设置N为9,可同时运算9个SVC训练模块21或者SVR训练模块22,以提高训练速度。
SVC训练模块21与SVR训练模块22的进行训练的方法,具体为:
(2.1)将训练样本随机分为9份,并对每份数据通过公式K(xi,xj)=exp(-||xi-xj||2/σ2)计算训练数据的高斯核函数值,并将32位高斯核函数值分开为两个16位的数据存入片外16位的SSRAM中,解决了SSRAM只能存储16位数据的问题。其中||xi-xj||2为两个数据的模值差,xi和xj为从对应样本数据中随机选取的两个数据,σ为对应SVC或SVR的高斯核函数参数。
在将计算得到的高斯核函数值存入片外SSRAM时,利用核矩阵的对称性,在同样大小的存储空间中存入两倍的数据,减少了资源的使用。
图2中FPGA的控制部分调度模型训练功能,利用条件属性计算对应高斯核函数值,并将计算得到的值存入片外SSRAM中。
(2.2)运行SMO(Sequential minimal optimization,序列最小最优化)算法,利用每份数据并行训练对应的支持向量机,训练的过程如图2所示。
图2中FPGA的控制部分调度模型训练功能,运用SMO算法进行SVC或SVR的训练。在用SMO算法过程中,对计算的高斯核函数值和决策属性值或决策函数值,在当前RAM中存储的支持向量值下,进行KKT(Karush-Kuhn-Tucker)条件判断。若全部满足KKT条件,则训练完成,输出支持向量值,得到对应的SVM分类机(SVC)或者SVM回归机(SVR)。若没有全部满足KKT条件,则依次寻找待改变支持向量,并更新对应支持向量值并存储入RAM中,然后重新对训练数据的高斯核函数值和决策属性值或决策函数值,进行KKT条件判断,直到全部符合KKT条件。
标记训练所得的SVM分类机分别为C1,C2...C9,回归机为R1,R2...R9。
模型测试模块23利用测试样本,对所训练的C1,C2...C9或者R1,R2...R9进行测试,具体为:
(3.1)计算测试数据的高斯核函数值,并存入RAM中。
(3.2)计算决策函数。
第k个分类机的决策函数的测试结果Ck(x)为:
对于分类问题,将9个分类器的结果进行不加权投票最为最终的结果。
第k个回归机的决策函数测试结果Rk(x)为:
对于回归问题,将9个回归机的结果进行平均作为最终结果。
Claims (5)
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为大于等于1的整数;各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(-||xi-xj||2/σ2)计算高斯核函数值,并将32位核函数值分开为两个16位的数据存入片外16位的SSRAM中;其中,xi和xj为一份训练样本数据中随机选取的两个数据,||xi-xj||2为两个数据的模值差,σ为SVC或SVR的高斯核参数;
(2.2)运行序列最小最优化算法,利用每份数据并行训练对应的SVC或SVR。
4.根据权利要求1所述的支持向量机的FPGA并行计算实现装置,其特征在于,所述的模型测试模块利用测试样本,对所训练的SVC或SVR进行测试,具体是:
(3.1)计算测试数据的高斯核函数值,并存入RAM中;
(3.2)计算决策函数:
第k个分类机的决策函数的测试结果Ck(x)为:
对于分类问题,将N个分类器的结果进行不加权投票得到最终的结果;
第k个回归机的决策函数测试结果Rk(x)为:
对于回归问题,将N个回归机的结果进行平均作为最终结果。
5.根据权利要求1所述的支持向量机的FPGA并行计算实现装置,其特征在于,所述的PC上位机上还包括结果显示模块,结果显示模块将模型测试模块输出的分类或者回归的测试结果显示给用户。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410019445.4A CN103699697A (zh) | 2014-01-16 | 2014-01-16 | 一种支持向量机的fpga并行计算实现装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410019445.4A CN103699697A (zh) | 2014-01-16 | 2014-01-16 | 一种支持向量机的fpga并行计算实现装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103699697A true CN103699697A (zh) | 2014-04-02 |
Family
ID=50361225
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410019445.4A Pending CN103699697A (zh) | 2014-01-16 | 2014-01-16 | 一种支持向量机的fpga并行计算实现装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103699697A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109998536A (zh) * | 2019-03-28 | 2019-07-12 | 西安交通大学 | 一种基于支持向量机的癫痫检测集成电路及其训练方法 |
CN110448273A (zh) * | 2019-08-29 | 2019-11-15 | 江南大学 | 一种基于支持向量机的低功耗癫痫预测电路 |
-
2014
- 2014-01-16 CN CN201410019445.4A patent/CN103699697A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109998536A (zh) * | 2019-03-28 | 2019-07-12 | 西安交通大学 | 一种基于支持向量机的癫痫检测集成电路及其训练方法 |
CN110448273A (zh) * | 2019-08-29 | 2019-11-15 | 江南大学 | 一种基于支持向量机的低功耗癫痫预测电路 |
CN110448273B (zh) * | 2019-08-29 | 2021-03-30 | 江南大学 | 一种基于支持向量机的低功耗癫痫预测电路 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Brunton et al. | Machine learning for fluid mechanics | |
Deng et al. | Differential evolution algorithm with wavelet basis function and optimal mutation strategy for complex optimization problem | |
Xu et al. | Ternary compression for communication-efficient federated learning | |
Guyon et al. | A brief review of the ChaLearn AutoML challenge: any-time any-dataset learning without human intervention | |
Sharma | Deep challenges associated with deep learning | |
Idrissi et al. | Genetic algorithm for neural network architecture optimization | |
Yadan et al. | Multi-gpu training of convnets | |
CN105512679A (zh) | 一种基于极限学习机的零样本分类方法 | |
Cui et al. | Fused lasso for feature selection using structural information | |
Feng et al. | One-dimensional VGGNet for high-dimensional data | |
CN105975987A (zh) | 一种基于全自动学习的企业行业分类方法 | |
Luo et al. | Distributed extreme learning machine with alternating direction method of multiplier | |
CN105825269B (zh) | 一种基于并行自动编码机的特征学习方法及系统 | |
Zhou et al. | An effective ensemble pruning algorithm based on frequent patterns | |
Gupta et al. | FPGA implementation of simplified spiking neural network | |
Zhang et al. | Learning high-order task relationships in multi-task learning | |
Xie et al. | Multi-task co-clustering via nonnegative matrix factorization | |
Zhao et al. | Bagging and boosting fine-tuning for ensemble learning | |
Li et al. | Heterogeneous blocked CPU-GPU accelerate scheme for large scale extreme learning machine | |
Alcalde et al. | Study of the relevance of objects and attributes of L-fuzzy contexts using overlap indexes | |
Rutishauser et al. | 7 μJ/inference end-to-end gesture recognition from dynamic vision sensor data using ternarized hybrid convolutional neural networks | |
CN103699697A (zh) | 一种支持向量机的fpga并行计算实现装置 | |
Wen et al. | MapReduce-based BP neural network classification of aquaculture water quality | |
Yao | Hybrid classifier using neighborhood rough set and SVM for credit scoring | |
Algahtani | A Hardware Approach For Accelerating Inductive Learning In Description Logic |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140402 |