模型从简单到复杂:
线性可分支持向量机
硬间隔最大化
线性支持向量机
软间隔最大化
非线性支持向量机
核技巧+软间隔最大化
学习算法:序列最小最优化算法(SMO)
线性可分,线性不可分
线性可分,硬间隔,拉格朗日算子
不可分,软间隔,hinge损失函数
线性可分支持向量机
flowchart max_gap(间隔最大化) min_w(最小化法向量模) raw_prob(原问题,凸优化问题) dual_prob(对偶问题) max_gap --> min_w min_w --> raw_prob raw_prob --> |拉格朗日乘子| dual_prob
数据集定义:
线性可分:即可以在特征空间找到一个超平面
训练集线性可分时,一般会有无穷多个超平面可以分离正负类。感知机利用误差分类最小策略,有无穷多解。线性可分支持向量机利用间隔最大化求分离超平面,只有唯一解。
模型:超平面
函数间隔和几何间隔
函数间隔:样本点
几何间隔:需要对法向量
函数间隔和几何间隔关系:
间隔最大化,原始问题
支持向量机学习的基本想法是求解间隔最大的超平面。
即转换为以上约束最优化问题,进一步考虑几何间隔和函数间隔关系,转化为函数间隔可化为
由于函数间隔取值并不影响解,令
线性可分训练数据集的最大间隔分离超平面是存在且唯一的
支持向量和间隔边界
在线性可分的情况下,训练基本中离分离超平面最近的样本点称为支持向量,既满足以下约束条件的点
对于
对于
对偶算法
首先构建拉格朗日函数,对每一个不等式约束引入拉格朗日乘子
其中
根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题:
(1)求
对
得
将两式中第一式带入
即
(2)求
将上式从极大转为极小,即可得
求解次优化问题可得对偶问题的解
易得下列KKT条件成立,KKT条件是原问题解等于对偶问题解的必要条件
即对于不在间隔边界上的点
线性支持向量机与软间隔最大化
flowchart data(线性不可分训练集) convex_prob(原问题,凸优化) dual_prob(对偶问题) data --> |最大化软间隔| convex_prob convex_prob --> dual_prob
问题定义
线性不可分即意味着不能存在一个间隔使得超平面分割样本,即
同时对每个松弛变量,添加一个代价,使目标函数从原来的
因此线性不可分的线性支持向量机的学习问题变成如下的凸二次规划问题(原始问题):
模型定义
对于线性不可分的训练数据集,通过求解以上的凸二次规划问题,即软间隔最大化问题,得到分离超平面
对偶问题
通过和线性可分支持向量机一样的思路,可将原始问题转换为对偶问题
推理过程如下
原始最优化问题的拉格朗日函数为
最大最小问题即:
求导并代入可得最小问题:
所以转化为:
KKT条件:
利用上述条件,使用等式消去
支持向量
同线性可分一样,将对偶问题解
Hinge损失函数
上面为最大化软间隔思路,线性支持向量机还有另一种解释,最小化一下目标函数
其中第一项为经验损失或经验风险,也称为Hinge loss,所谓经验,即是从样本中计算得来
最大化软间隔问题,等价于
令
非线性支持向量机与核函数
核函数
令
将核函数代入对偶问题中,则目标函数成为
同时分类决策函数成为