入门SVM理论部分:
SVM(support vector machine):支持向量机,一种机器学习分类技术,其基础知识包含三个版块:
- 最大边缘超平面
- 线性支持向量机
- 非线性支持向量机
1.最大边缘超平面
【该边缘已最大化】
具有最大边缘的决策边界比那些具有更小边缘的决策边界具有更好的泛化误差。
结构风险最小化原理:需要设计最大化决策边界边缘的线性分类器,以确保最坏情况下的泛化误差更小。
2.线性支持向量机
假设训练一个分类器:
训练数据集D{(x1,y1),(x2,y2),…,(xn,yn)},Y{-1,1}
线性分类器决策边界的线性方程:
参数:释义 |
W:法向量(决定了决策边界的方向) |
b:偏移量(决定了决策边界与原点之间的距离) |
通过调整决策边界的参数W和b,总能得到(见下图):
支持向量:距离决策边界最近的训练样本点使得上式中的等号成立。
求解margin:
由12得:
约束优化函数(W,b):
s.t.
等价于求解:
s.t.
由此可得支持向量机的学习问题是一个凸二次函数优化问题,求解方法如下:
- 用现成的优化计算包求解
- 用拉格朗日乘子法求解(高效)
拉格朗日乘子法:
求解第一步:引入拉格朗日乘子αi≥0,得到拉格朗日函数:
第二步:令对W,b的偏导为零可得:
,
第三步:回代拉格朗日函数得到对偶优化问题。
最后再,线性SVM最终模型为:
把不等式约束变成等式约束->拉格朗日乘子约束(KKT):
(KKT)
由于,所以必有:
,即训练样本都落在最大边缘的边界bi1和 bi2上,都是支持向量。所以最终支持向量机模型的参数W和仅依赖于这些支持变量。
对偶优化问题:
一个二次规划问题,其求解用通用的二次规划算法求解。高校算法代表:SMO(序列最小化优化算法)
注:如果原始空间是有限维(属性数目有限),那么一定存在一个更高维的特征空间使得样本线性可分。
3.非线性支持向量机
设样本x映射后的向量为,决策边界为
其余对应的原始问题->对偶问题->预测模型依次改变。
但涉及到一个计算难点:,其求解方法如下:
- 不显式地设计映射
- 设计一个核函数k(xi,yi)=
寻找核函数由mercer定理:只要一个对称函数所对应的核矩阵半正定,那么它就能作为核函数使用。 常用核函数(具体查阅资料):线性核,多项式核,高斯核,拉普拉斯核,sigmoid核等。