文章目录
支持向量机
简介
支持向量机是一种二类分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,其学习策略就是间隔最大化,支持向量机学习方法包含构建由简至繁的模型:线性可分支持向量机,线性支持向量机以及非线性支持向量机。当训练数据线性可分时,通过硬间隔最大化(hard margin maximization),学习一个线性的分类器,即线性可分支持向量机,又称为硬间隔支持向量机;当训练数据近似线性可分时,通过软间隔最化(soft margin maximization),也学习-一个线性的分类器,即线性支持向量机,又称为软间隔支持向量机;当训练数据线性不可分时,通过使用核技巧(kernel trick)及软间隔最大化,学习非线性支持向量机.
线性可分支持向量机
给定线性可分训练数据集,通过间隔最大化或等价的求解相应的凸二次规划问题学习得到的分离超平面为
w ∗ ⋅ x + b ∗ = 0 w^{*} \cdot x+b^{*}=0 w∗⋅x+b∗=0
分类决策函数是
f ( x ) = sign ( w ∗ ⋅ x + b ∗ ) f(x)=\operatorname{sign}\left(w^{*} \cdot x+b^{*}\right) f(x)=sign(w∗⋅x+b∗)
称为线性可分支持向量机
以下当 y i y_i yi为+1时为正例, y i y_i yi为-1时为负例。
训练数据集线性可分,这时有许多直线能将两类数据正确划分。线性可分支持向量机对应着将两类数据正确划分并且间隔最大化的直线
函数间隔与几何间隔
函数间隔
定义:对于给定的训练数据集T和超平面 ( w , b ) \left(w, b\right) (w,b),定义超平面 ( w , b ) \left(w, b\right) (w,b)关于样本点 ( x i , y i ) \left(x_{i}, y_{i}\right) (xi,yi)的函数间隔为
γ ^ i = y i ( w ⋅ x i + b ) \hat{\gamma}_{i}=y_{i}\left(w \cdot x_{i}+b\right) γ^i=yi(w⋅xi+b)
定义超平面 ( w , b ) \left(w, b\right) (w,b)关于训练数据集 T T T 的函数间隔为超平面 ( w , b ) \left(w, b\right) (w,b)关于 T T T 中所有样本点 ( x i , y i ) \left(x_{i}, y_{i}\right) (xi,yi) 的函数间隔之最小值,即
γ ^ = min i = 1 , ⋯ , N γ ^ i \hat{\gamma}=\min _{i=1, \cdots, N} \hat{\gamma}_{i} γ^=mini=1,⋯,Nγ^i
一般来说,一个点距离分离超平面的远近可以表示分类预测的确信程度.在超平面 w ⋅ x + b = 0 w\cdot x+b=0 w⋅x+b=0确定的情况下, ∣ w ⋅ x + b ∣ \mid w\cdot x+b \mid ∣w⋅x+b∣能够相对地表示点x距离超平面的远近.而 w ⋅ x + b w\cdot x+b w⋅x+b 的符号与类标记y的符号是否一-致能够表示分类是否正确,所以可用量 y i ( w ⋅ x i + b ) y_{i}\left(w \cdot x_{i}+b\right) yi(w⋅xi+b)来表示分类的正确性及确信度,这就是函数间隔( functional margin)的概念.
但在选择分离超平面时,只有函数间隔还不够,因为只要成比例的改变w和b,例如将它们改为2w和2b,超平面并未改变,但函数间隔却变为了原来的2倍,于是我们对分离超平面的法向量进行规范化, ∥ w ∥ = 1 \|w\| = 1 ∥w∥=1 使间隔确定,这时函数间隔成为几何间隔。
几何间隔
定义:对于给定的训练数据集T和超平面 ( w , b ) \left(w, b\right) (w,b),定义超平面 ( w , b ) \left(w, b\right) (w,b)关于样本点 ( x i , y i ) \left(x_{i}, y_{i}\right) (xi,yi)的几何间隔为
γ i = y i ( w ∥ w ∥ ⋅ x i + b ∥ w ∥ ) \gamma_{i}=y_{i}\left(\frac{w}{\|w\|} \cdot x_{i}+\frac{b}{\|w\|}\right) γi=yi(∥w∥w⋅xi+∥w∥b)
定义超平面 ( w , b ) \left(w, b\right) (w,b)关于训练数据集 T T T 的几何间隔为超平面 ( w , b ) \left(w, b\right) (w,b)关于 T T T 中所有样本点 ( x i , y i ) \left(x_{i}, y_{i}\right) (xi,yi) 的几何间隔之最小值,即
γ = min i = 1 , ⋯ , N γ i {\gamma}=\min _{i=1, \cdots, N} {\gamma}_{i} γ=mini=1,⋯,Nγi
如果超平面参数w和b成比例地改变(超平面没有变),函数间隔也按此比例改变,而几何间隔不变。
间隔最大化
支持向量机的基本想法是求解能够正确划分训练数据集并且几何间隔最大的分离超平面。几何间隔最大的超平面意味着以充分大的确信度对训练数据进行分类。也就是说,不仅将正负实例点分开,而且对最难分的实例点(离超平面最近的点)也有足够大的确信度将它们分开。这样的超平面应该对未知的新实例有很好的分类预测能力。这里我们先讨论硬间隔最大化。
最大间隔分离超平面
下面考虑如何求得一个几何间隔最大的分离超平面,具体表述为下面的约束最优化问题:
max w , b γ \max _{w, b} \gamma maxw,bγ
s.t. y i ( w ∥ w ∥ ⋅ x i + b ∥ w ∥ ) ⩾ γ , i = 1 , 2 , ⋯ , N \quad y_{i}\left(\frac{w}{\|w\|} \cdot x_{i}+\frac{b}{\|w\|}\right) \geqslant \gamma, \quad i=1,2, \cdots, N yi(∥w∥w⋅xi+∥w∥b)⩾γ,i=1,2,⋯,N
即最大化几何间隔,并且约束所有的训练样本点的几何间隔都不小于 γ \gamma γ.
考虑几何间隔和函数间隔的关系,可将问题改写为:
max w , b γ ^ ∥ w ∥ \max _{w, b} \frac{\hat{\gamma}}{\|w\|} maxw,b∥w∥γ^
s.t. y i ( w ⋅ x i + b ) ⩾ γ ^ , i = 1 , 2 , ⋯ , N \quad y_{i}\left(w \cdot x_{i}+b\right) \geqslant \hat{\gamma}, \quad i=1,2, \cdots, N yi(w⋅xi+b)⩾γ^,i=1,2,⋯,N
函数间隔 γ ^ \hat{\gamma} γ^ 的取值并不影响最优化问题的解.事实上,假设将w和b按比例改变为2w和2b,这时函数间隔成为 λ γ ^ \lambda \hat{\gamma} λγ^ .函数间隔的这一改变对 上面最优化问题的不等式约束没有影响,对目标函数的优化也没有影响,也就是说,它产生一个等价的最优化问题.这样,就可以取 γ ^ \hat{\gamma} γ^ =1.将 γ ^ \hat{\gamma} γ^ =1代入上面的最优化问题,注意到最大化 1 ∥ w ∥ \frac{1}{\|w\|} ∥w∥1和最小化 1 2 ∥ w ∥ 2 \frac{1}{2}\|w\|^2 21∥w∥2 是等价的,于是就得到下面的线性可分支持向量机学习的最优化问题:
min w , b 1 2 ∥ w ∥ 2 \min_{w, b} \frac{1}{2}\|w\|^{2} minw,b21∥w∥2
s.t. y i ( w ⋅ x i + b ) − 1 ⩾ 0 , i = 1 , 2 , ⋯ , N \quad y_{i}\left(w \cdot x_{i}+b\right)-1 \geqslant 0, \quad i=1,2, \cdots, N yi(w⋅xi+b)−1⩾0,i=1,2,⋯,N
这是一个凸二次规划问题,即约束最优化问题:
min α f ( w ) s.t. g i ( w ) ≤ 0 , i = 1 , 2 , … , k . h i ( w ) = 0 , i = 1 , 2 , … , l . \begin{aligned} &\min _{\alpha}f(w) \\ &\text { s.t. } g_i(w)\leq 0, i=1,2, \ldots, k .\\ & h_i(w)=0,i=1,2,\ldots,l. \end{aligned} αminf(w) s.t. gi(w)≤0,i=1,2,…,k.hi(w)=0,i=1,2,…,l.
其中 f ( w ) f(w) f(w), g i ( w ) g_i(w) gi(w) 为凸函数, h i ( w ) h_i(w) hi(w)为仿射函数(满足 f ( x ) = w x + b f(x)=wx+b f(x)=wx+b)
由此可求得超平面和决策函数:
w ∗ ⋅ x + b ∗ = 0 w^{*} \cdot x+b^{*}=0 w∗⋅x+b∗=0
f ( x ) = sign ( w ∗ ⋅ x + b ∗ ) f(x)=\operatorname{sign}\left(w^{*} \cdot x+b^{*}\right) f(x)=sign(w∗⋅x+b∗)
支持向量和间隔边界
在线性可分情况下,训练数据集的样本点中与分离超平面距离最近的样本点的实例称为支持向量(support vector).支持向量是使约束条件式等号成立的点,即:
y i ( w ⋅ x i + b ) − 1 = 0 y_{i}\left(w \cdot x_{i}+b\right)-1=0 yi(w⋅xi+b)−1=0
如下图虚线上的点就是支持向量
两条虚线之间的距离成为间隔。间隔依赖于分离超平面的法向量 w w w ,等于 2 ∥ w ∥ \frac{2}{\|w\|} ∥w∥2 .两条虚线成为间隔边界。
支持向量决定分离超平面,而其他实例点不起作用。支持向量的个数一般很少,所以支持向量由很少的“重要的”训练样本决定。
以下给出一个求最大间隔分离超平面的例子:
拉格朗日对偶问题
详细可见:
[https://blog.youkuaiyun.com/qq_46618854/article/details/122165201]:
拉格朗日乘子法:
- 第一步: 引入拉格朗日乘子 α i ≥ 0 \alpha_{i} \geq 0 αi≥0 得到拉格朗日函数
L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 m α i ( y i ( w ⊤ x i + b ) − 1 ) L(\boldsymbol{w}, b, \boldsymbol{\alpha})=\frac{1}{2}\|\boldsymbol{w}\|^{2}-\sum_{i=1}^{m} \alpha_{i}\left(y_{i}\left(\boldsymbol{w}^{\top} \boldsymbol{x}_{i}+b\right)-1\right) L(w,b,α)=21∥w∥2−i=1∑mαi(yi(w⊤xi+b)−1) - 第二步: 令 L ( w , b , α ) L(w, b, \alpha) L(w,b,α) 对 w w w 和 b b b 的偏导为零:
w = ∑ i = 1 m α i y i x i , ∑ i = 1 m α i y i = 0. \boldsymbol{w}=\sum_{i=1}^{m} \alpha_{i} y_{i} \boldsymbol{x}_{i}, \quad \sum_{i=1}^{m} \alpha_{i} y_{i}=0 . w=i=1∑mαiyixi,i=1∑mαiyi=0. - 第三步: w , b w, b w,b 回代到第一步:
min α 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i ⊤ x j − ∑ i = 1 m α i s.t. ∑ i = 1 m α i y i = 0 , α i ≥ 0 , i = 1 , 2 , … , m . \begin{aligned} &\min _{\alpha} \frac{1}{2} \sum_{i=1}^{m} \sum_{j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} \boldsymbol{x}_{i}^{\top} \boldsymbol{x}_{j}-\sum_{i=1}^{m} \alpha_{i} \\ &\text { s.t. } \sum_{i=1}^{m} \alpha_{i} y_{i}=0, \alpha_{i} \geq 0, i=1,2, \ldots, m . \end{aligned} αmin21i=1∑mj=1∑mαiαjyiyjxi⊤xj−i=1∑mαi s.t. i=1∑mαiyi=0,αi≥0,i=1,2,…,m.
等价于:
max α ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑