【机器学习算法】之SVM

本文主要介绍了线性支持向量机(SVM)的基本原理及应用。详细解释了SVM如何通过寻找最大间隔超平面来解决线性可分问题,并对比了其与感知机等其他模型的区别。此外还讨论了SVM的优化问题及其解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.算法介绍

SVM分为线性SVM和非线性SVM,非线性SVM实际上也只是通过核函数变换到特征空间。这里我主要针对线性SVM进行说明。
模型:线性SVM主要用于解决线性可分的问题,所建立的模型实际上就是f(x)=sign(wx+b)。这和感知机所建立的模型实际上是一致的,即SVM希望学习到线性空间的一个超平面,在这个超平面两侧的数据点有着不同的类别。之前说过的logistic回归模型实际上也是希望学习一个超平面,只是建立的表达式不一样。

策略:SVM的策略比较特殊。感知机的策略是最小化损失函数L=-SUM(yi(wxi+b)),然后使用求导加上梯度下降的算法求解。感知器的学习结果往往不固定,因为对于一个理想的线性可分问题,实际上是有无数个超平面,感知器学习到哪一个超平面是不固定的。
SVM则是利用了几何性质,希望学习到这样一个超平面:这个超平面可以很好的区分两类数据点,而且在所有满足条件的超平面中,这个超平面距离训练集样本点的最近距离是在所有超平面之中最大的。用文字表述起来不直观,可以用函数间隔,几何间隔的数学公式来说明:
参见http://blog.youkuaiyun.com/viewcode/article/details/12840405
最后可以把分类平面的学习问题转换成如下的优化问题:
这里写图片描述
算法
这个问题是典型的凸二次优化问题:目标函数是凸函数,约束条件是仿射函数,可以使用拉格朗日对偶法得到完美的解决。数学推导过程参见《统计学习方法》李航著。整个解决过程非常漂亮。

综上所述,SVM的特点在于提出了一种新的求解分类平面的策略,然后使用凸优化的数学工具进行了完美的解决。我觉得SVM的优点主要是泛化性能好,能够较好的处理异常训练数据点的情况。

二.程序实现

工业界常常使用快速优化算法SMO来求解SVM的最优化问题,过程比较复杂,就不再细说。台大团队推出的libsvm库被用的较多,相关资料可参见:
http://blog.youkuaiyun.com/zouxy09/article/details/10947323

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值