自从接触SVM就对其非常感兴趣,捣鼓了俩月也算略有小成,但是感觉对突破点还是比较困惑,回头再来看下其热点和发展,感觉思路清晰许多。
原文来自:http://blog.sina.com.cn/s/blog_537f95ab010003h3.html
支持向量机的发展
自从90年代初经典SVM的提出,由于其完整的理论框架和在实际应用中取得的很多好的效果,在机器学习领域受到了广泛的重视。其理论和应用在横向和纵向上都有了发展。
理论上:
1.模糊支持向量机,引入样本对类别的隶属度函数,这样每个样本对于类别的影响是不同的,这种理论的应用提高了SVM的抗噪声的能力,尤其适合在未能完全揭示输入样本特性的情况下。
2.最小二乘支持向量机。这种方法是在1999年提出,经过这几年的发展,已经应用要很多相关的领域。研究的问题已经推广到:对于大规模数据集的处理;处理数据的鲁棒性;参数调节和选择问题;训练和仿真。
3.加权支持向量机(有偏样本的加权,有偏风险加权)。
4.主动学习的支持向量机。主动学习在学习过程中可以根据学习进程,选择最有利于分类器性能的样本来进一步训练分类器,特能有效地减少评价样本的数量。也就是通过某种标准对样本对分类的有效性进行排序,然后选择有效样本来训练支持向量机。
5.粗糙集与支持向量机的结合。首先利用粗糙集理论对数据的属性进行约简,能在某种程度上减少支持向量机求解计算量。
6.基于决策树的支持向量机。对于多类问题,采用二岔树将要分类的样本集构造出一系列的两类问题,每个两类构造一个SVM。
7.分级聚类的支持向量机。基于分级聚类和决策树思想构建多类svm,使用分级聚类的方法,可以先把n-1个距离较近的类别结合起来,暂时看作一类,把剩下的一类作为单独的一类,用svm分类,分类后的下一步不再考虑这单独的一类,而只研究所合并的n-1类,再依次下去。
8.算法上的提高。
Vapnik在95年提出了一种称为”chunking”的块算法,即如果删除矩阵中对应Lagrange乘数为0的行和列,将不会影响最终结果。
Osuna提出了一种分解算法,应用于人脸识别领域。
Joachims在1998年将Osuna提出的分解策略推广到解决大型SVM学习的算法
Platt于1998年提出了序贯最小优化(Sequential Minimal Optimization)每次的工作集中只有2个样本。
10.支持向量机从两类问题向多类问题的推广:
Weston在1998年提出的多类算法为代表。在经典svm理论的基础上,直接在目标函数上进行改进,重新构造多值分类模型,建立k分类支持向量机。通过sv方法对新模型的目标函数进行优化,实现多值分类。这类算法选择的目标函数十分复杂,变量数目过多,计算复杂度也非常高,实现困难,所以只在小型问题的求解中才能使用。Weston,Multi-class support vector machines
一对多(one-against-rest)----- Vapnik提出的,k类---k个分类器,第m个分类器将第m类与其余的类分开,也就是说将第m类重新标号为1,其他类标号为-1。完成这个过程需要计算k个二次规划,根据标号将每个样本分开,最后输出的是两类分类器输出为最大的那一类。不足:容易产生属于多类别的点(多个1)和没有被分类的点(标号均为-1)--不对,训练样本数据大,训练困难,推广误差无界.
一对一(one-against-one)---Kressel 对于任意两个分类,构造一个分类器,仅识别这两个分类,完成这个过程需要k(k-1)/2个分类器,计算量是非常庞大的。对于每一个样本,根据每一个分类器的分类结果,看属于哪个类别的次数多,最终就属于哪一类(组合这些两类分类器并使用投票法,得票最多的类为样本点所属的类)。不足:如果单个两类分类器不规范化,则整个N类分类器将趋向于过学习;推广误差无界;分类器的数目K随类数急剧增加,导致在决策时速度很慢。
层(数分类方法),是对一对一方法的改进,将k个分类合并为两个大类,每个大类里面再分成两个子类,如此下去,直到最基本的k个分类,这样形成不同的层次,每个层次都用svm来进行分类------1对r-1法,构建k-1个分类器,不存在拒绝分类区。
应用上:人脸检测,汽轮发电机组的故障诊断,分类,回归,聚类,时间序列预测,系统辨识,金融工程,生物医药信号处理,数据挖掘,生物信息,文本挖掘,自适应信号处理,剪接位点识别,基于支持向量机的数据库学习算法,手写体相似字识别,支持向量机函数拟合在分形插值中的应用,基于支持向量机的惯导初始对准系统,岩爆预测的支持向量机,缺陷识别,计算机键盘用户身份验证,视频字幕自动定位于提取,说话人的确认,等等。
主要研究热点
从上面的发展中,我们可以总结出,目前支持向量机有着几方面的研究热点:核函数的构造和参数的选择;支持向量机从两类问题向多类问题的推广;更多的应用领域的推广;与目前其它机器学习方法的融合;与数据预处理(样本的重要度,属性的重要度,特征选择等)方面方法的结合,将数据中脱离领域知识的信息,即数据本身的性质融入支持向量机的算法中从而产生新的算法;支持向量机训练算法的探索。
优点:
1.Training is relatively easy, No local optimal, unlike in neural networks. It scales relatively well to high dimensional data.
2.Tradeoff between classifier complexity and error can be controlled explicitly. selecting the capacity of the SVM machine to have the minimum generalization error, prediction error.
缺点:
Need a "good" kernel function.