基于支持向量机的增量学习算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于支持向量机的增量学习算法
李永丽;刘衍珩;肖见涛;李向涛;关伟洲
【摘要】通过对支持向量机KKT条件和样本间关系的研究, 分析了新增样本加入训练集后支持向量的变化情况, 提出一种改进的Upper Limit on Increment增量学习算法. 该算法按照KKT条件将对应的样本分为3类: 位于分类器间隔外, 记为RIG; 位于分类间隔上, 记为MAR; 位于分类间隔内, 记为ERR. 并在每次训练后保存ERR集, 将其与下一个增量样本合并进行下一次训练. 实验证明了该算法的可行性和有效性.
【期刊名称】《吉林大学学报(理学版)》
【年(卷),期】2010(048)003
【总页数】4页(P464-467)
【关键词】支持向量;增量学习;支持向量机(SVM)
【作者】李永丽;刘衍珩;肖见涛;李向涛;关伟洲
【作者单位】吉林大学,计算机科学与技术学院,长春,130012;东北师范大学,计算机科学与信息技术学院,长春,130117;吉林大学,计算机科学与技术学院,长春,130012;东北师范大学,计算机科学与信息技术学院,长春,130117;东北师范大学,计算机科学与信息技术学院,长春,130117;东北师范大学,计算机科学与信息技术学院,长
春,130117
【正文语种】中文
【中图分类】TP18
支持向量机(Support Vector Machine, SVM)是根据统计学习理论中结构风险的最小化原则提出的[1-3], SVM能尽量提高学习机的推广能力, 即使由有限数据集得到判别函数对独立的测试集仍能得到较小误差, 能较好解决小样本、非线性、高维数以及大规模计算的实际问题. 但SVM作为一种新技术, 还存在局限性, 如增量学习[4-9〗.
增量学习是一种被广泛应用的智能数据挖掘与知识发现技术, 与传统学习技术相比, 增量学习可以充分利用历史学习的结果, 节省后续训练时间. 经典的支持向量理论与增量式学习没有相容性, 但训练后的支持向量能完全反映分类超平面信息, 虽然只占训练样本的一部分, 但对算法研究有很大帮助.
1 支持向量机
给定分类问题s=((x1,y1),…,(xl,yl)), 其中: yi=1表示正类样本; yi=-1表示负类样本; xi∈R. SVM的目标是构造一个最优化分类超平面. 根据统计学习原理, 可建立如下模型[1]:
(1)
其中: i=1,…,l; c为惩罚因子; ω为超平面法向量; b为超平面的偏置; εi为松弛变量. 其对偶问题可描述为
(2)
其中: c≥αi≥0, α为Lagrange乘子; K(*)为核函数; c为惩罚因子, 具有控制对错分样本函数程度的作用. SVM的分类函数为
(3)
2 KKT条件
对偶问题的最优解α=(α1,α2,…,αn)使每个样本满足最优化问题的KKT条件为
(4)
其中α为Lagrange乘子. αi=0表示xi是非支持向量, 在分类面边缘外, 对分类面的构造没有影响; 0<αi<c表示xi为恰好在分类上的支持向量; αi=C表示xi在分类面边缘以内, 甚至被错分.
考虑函数系g(x)=h, 可知g(x)=±1为分类间隔的边界, 其上的样本即为支持向量. 定理1[10] 对样本集进行训练得到SVM分类器, α为Lagrange乘子. α=0对应的样本分布在分类器外;0≤α≤C的样本位于分类间隔上;α=C位于分类间隔内, 即
(5)
3 增量学习后支持向量变化分析
在分类过程中最终决定分类函数性质的为支持向量, 即样本集中支持向量所确定的分类函数与样本集所确定的分类函数相同, 因此, 在训练过程中只要找到支持向量就能确定决策函数. 实验证明支持向量集占训练样本集的比例较小.
定理2[10] g(x)为SVM分类判别函数, (xi,yi)为新增样本, 则满足KKT条件的新增样本不会改变SV集; 违背KKT条件的样本可以分为3类:
(1) 位于分类间隔中, 与本类在分类边界同侧, 可以被原分类器正确分类的样本, 满足0≤yi f(xi)<1;
(2) 位于分类间隔中, 与本类在分类边界异侧, 被原分类器错误分类的样本, 满足-
1≤yi f(xi)≤0;
(3) 位于分类间隔外, 与本类在间隔异侧, 被分类器错误分类的样本, 满足yi f(xi)<-
1.
综上可见, 违背KKT条件的为yi f(xi)<1.
4 改进的Upper Limit on Increment增量学习算法
改进的增量算法是在原有增量算法的基础上, 将KKT条件作为判定新增数据样本是否更新现有SVM分类的依据.
前提:原样本集A, α表示数据样本的Lagrange乘子. 将原样本集A进行分类后得到3类数据样本:(1) α=0对应的样本位于分类器间隔外, 该类样本记为RIG;
(2) 0<α<C的样本位于分类间隔上, 该类样本记为MAR;(3) α=C位于分类间隔内, 该类样本记为ERR; f是α的偏导数, 结果对应不同的KKT条件, C表示新增样本.
算法步骤:
(1) 首先检验新增样本C是否违背SVM分类函数的KKT条件, 如果没有违背, 则停止;
(2) 如果数据样本C违背样本SVM的KKT条件, 则:
1) 若样本C为恰好都在分类面上的支持向量(fc≥1), 则MAR=C∪MAR, 更新支持向量集, 停止;
2) 若样本C都在分类面的边缘内, 甚至被错分(fc≤1), 则ERR=C∪ERR, 更新ERR, 停止;
3) 若不满足上述两种条件, 则将违背样本SVM的数据样本分为前提中的3类数据, 对每类数据再进行处理:
(i) 如果MAR中数据样本点的αi=0, 则RIG={i}∪RIG, MAR=MAR\{i}, 更新支持向量集;
(ii) 如果MAR中数据样本点的αi=C, 则ERR=ERR∪{i}, MAR=MAR\{i}, 更新支持向量集;
(iii) 如果ERR中数据样本点的αi满足MAR条件, 则MAR=MAR∪{i},
ERR=ERR\{i}, 更新支持向量集;
(iv) 如果RIG中数据样本点的αi满足MAR条件, 则MAR=MAR∪{i},
RIG=RIG\{i}, 更新支持向量集;
重复上述步骤, 直到增量样本训练完;
(3) 加入新的增量训练样本B, 将上次训练样本得到的ERR集加入到B中, 得到一个新的增量样本C′, 并将C′赋给C;
(4) 重复以上步骤, 直到所有的增量样本都训练结束.
5 实验结果与分析
依据上面提出的算法, 本文将增量算法的思想运用到文本集的分类中, 随机选取文本作为实验分类文本, 将文本的类型分为金融类和非金融类, 共1 000个样本, 用其中的200个作为初始训练集, 其余的800个分为5组, 作为新的增量样本进行训练. 实验中的惩罚因子C=10, 松弛因子ε=0.25. 实验结果列于表1. 由表1可见, 本文增量算法在不明显降低训练精度的同时显著提高了训练速度.
表1 本文算法与传统SVM学习算法对比Table 1 Our algorithm compare with the traditional SVM algorithm训练集增量样本集时间/s本文算法SVM学习算法精度/%本文算法SVM学习算法初始训练集2006.767.5494.594.8增量11605.1113.2692.593.3增量21605.2620.2895.694.7增量
31606.2129.4294.495.1增量41604.8336.3397.598.2增量
51605.6644.2793.792.6
初始训练集的训练结果如图1所示, 增量样本全部训练完的结果如图2所示.
综上可见, 本文通过对KKT条件和样本之间关系的研究以及样本增加后支持向量机的变化情况分析, 提出了一种新的支持向量机增量算法, 实验结果表明, 在没有大幅度降低训练精度的同时提高了训练速度.
图1 初始训练集的训练结果Fig.1 Training results of initial training set
图2 初始样本和加入所有增量样本的训练结果Fig.2 Training results of initial samples and all incremental samples
参考文献
【相关文献】
[1] Nello Cristianini, John Shawe-Taylor. 支持向量机导论 [M]. 李国正, 王猛, 曾华军, 译. 北京:电子工业出版社, 2004.
[2] 白鹏, 张喜斌, 张斌, 等. 支持向量机理论及其工程应用实例 [M]. 西安: 西安电子科技大学出版社, 2008.
[3] Cauwenberghs G, Poggio T. Incremental and Decremental Support Vector Machine Learning [C]//Advances in Neural Information Processing Systems NIPS. Colorado: MIT Press, 2000: 409-415.
[4] XIAO Rong, WANG Ji-cheng, SUN Zheng-xing, et al. An Approach to Incremental SVM Learning Algorithm [J]. Journal of Nanjing University: Natural Science, 2002, 38(2): 152-157. (萧嵘, 王继成, 孙正兴, 等. 一种SVM增量学习算法 [J]. 南京大学学报: 自然科学, 2002, 38(2): 152-157.)
[5] LI Kai, HUANG Hou-kuan. Research on Incremental Learning Algorithm of Support Vector Machine [J]. Journal of Northern Jiaotong University, 2003, 27(5): 34-37. (李凯, 黄厚宽. 支持向量机增量学习算法研究 [J]. 北方交通大学学报, 2003, 27(5): 34-37.)
[6] ZHOU Wei-da, ZHANG Li, JIAO Li-cheng. An Analysis of SVMs Generalization Performance [J]. Acta Electronica Sinica, 2001, 29(5): 590-594. (周伟达, 张莉, 焦李成. 支撑矢量机推广能力分析 [J]. 电子学报, 2001, 29(5): 590-594.)
[7] SHEN Xiao-yong, LEI Ying-jie, SHI Zhao-hui, et al. Sifting Algorithm for Incremental SVM Learning [J]. Computer Engineering and Applications, 2007, 43(6): 171-173. (申晓勇, 雷英杰, 史朝辉,等. 一种SVM增量学习淘汰算法 [J]. 计算机工程与应用, 2007, 43(6): 171-173.)
[8] LIAO Dong-ping, WEI Xi-zhang, LI Xiang, et al. A Removing Algorithm for Incremental Support Vector Machine Learning [J]. Journal of National University of Defence Technology, 2007, 29(3): 65-70. (廖东平, 魏玺章, 黎湘, 等. 一种支持向量机增量学习淘汰算法[J]. 国防科技大学学报, 2007, 29(3): 65-70.)
[9] LI Zhong-wei, YANG Jing, ZHANG Jian-pei. Research of Incremental Learning
Algorithm with Support Vector Machine [J]. Journal of Harbin Engineering University, 2005, 26(10): 643-646. (李忠伟, 杨静, 张建沛. 基于支持向量机的增量学习算法研究 [J]. 哈尔滨工程大学学报, 2005, 26(10): 643-646.)
[10] CAO Jie, LIU Zhi-jing. Incremental Leaning Algorithm Based on SVM [J]. Application Research of Computers, 2007, 24(8): 48-49. (曹杰, 刘志镜. 基于支持向量机的增量学习算法 [J]. 计算机应用研究, 2007, 24(8): 48-49.)。