支持向量机(SVM)
一、SVM最初是为了解决什么问题
在深度学习之前,提出SVM是为了解决二分类问题。
二、SVM分类
- hard-margin SVM
- soft-margin SVM
- kernel SVM
三、基本理论
对于hard-marigin SVM
,我们要找到一个超平面,使得与该超平面最近的点到此超平米的距离最大。因为如果距离很近的话会使得模型的鲁棒性很差,稍微有一点点噪声就可能使得SVM分类错误。如下图如果稍微加一点噪声,x1
变到了x2
,x3
变到了x4
那么就会出现分类错误。
- 数学建模
这里为了方便取r = 1
。所以就可以将原问题最终建模正如下的凸优化问题(convex optimization
)
此问题显然是二次凸优化问题,先有的软件包一般都有解决此问题的方法直接调用。但是涉及到x
维度很高的情况会使得运算很慢。所以我们还可以进一步优化求解。
上面的问题等价于:
其中拉格朗日函数:
接下来证明一下有约束模型与无约束模型等价:
令
- 当 1 − y i ( w T x i + b ) > 0 \ 1-y_i(w^Tx_i+b)>0 1−yi(wTxi+b)>0 的时候,由于是求 max α \max\limits_\alpha αmax所以, α → ∞ \alpha \to\infty α