支持向量机概览(support vector machines SVM)
支持向量机是一种二类分类模型。它的基本模型是定义在特征空间上的间隔最大(间隔最大区别于感知机)线性分类器(核函数可以用非线性的分类)。
支持向量机的学习策略是间隔最大化可形式化为一个求解凸二次规划的问题。
也等价于正则化的合页损失函数的最小化问题。
支持向量机的学习算法是求解凸二次规划的最优化算法。
支持向量机学习方法包含构建由简到繁的模型:
1)线性可分支持向量机
2)线性支持向量机
3)非线性支持向量机
1)当训练数据线性可分时,通过硬间隔最大化,学习一个线性的分类器,即线性可分支持向量机,又称硬间隔支持向量机。
2)当训练数据近似线性可分时,通过软间隔最大化,也学习一个线性分类器,即线性支持向量机,又称为软间隔支持向量机
3)当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机。
在感知机那一节我们知道,存在多个划分超平面将两类训练样本分开,我们应该努力去找到哪一个呢?
直观上看,应该去找位于两类训练样本的“正中间”的划分超平面,即上图中的红色的那个。
因为该划分超平面对训练样本的局部扰动的“容忍”性最好。
例如,由于训练集的局限性或噪声的影响,训练集外的样本可能比上图中的训练样本更接近两个类的分隔面,这将使得许多分割超平面出现错误,而红色的超平面受影响更小。换言之,这个划分超平面所产生的分类结果是最鲁棒的,对未见实例的泛化能力最强。
线性可分支持向量机与硬间隔最大化
一般的,当训练数据集线性可分时,存在无穷个分离超平面可将两类数据正确分开。
感知机利用误分类最小的策略,求得分离超平面,不过这时的解有无数个。
线性可分支持向量机利用间隔最大化求解最优分隔超平面,这时,解释唯一的。
定义:线性可分支持向量机
给定线性可分训练数据集,通过间隔最大化或等价的求解相应的凸二次规划问题学习得到的分离超平面为:
w ∗ x + b ∗ = 0 w^*x+b^*=0 w∗x+b∗=0以及相应的分类决策函数 f ( x ) = s i g n ( w ∗ x + b ∗ ) f(x)=sign(w^*x+b^*) f(x)=sign(w∗x+b∗)
称为线性可分支持向量机
函数间隔与几何间隔:
1)为什么要引入函数间隔与几何间隔?
一般的来说,一个点离分离超平面的远近可以表示分类预测的确信程度。
1)在超平面 w x + b = 0 wx+b=0 wx+b=0确定的情况下, ∣ w x + b ∣ |wx+b| ∣wx+b∣能够相对的表示点x距离超平面的远近。
2) w x + b wx+b wx+b的符号与类标记y的符号是否一致能够表示分类是否正确。
所以,可用 y ( w x + b ) y(wx+b) y(wx+b)来表示分类的正确性和确信度,这就是函数间隔的概念
定义:函数间隔对于给定的训练集 T T T和超平面 ( w , b ) (w,b) (w,b),定义超平面关于样本点的函数间隔为:
γ i = y i ( w x i + b ) γ_i=y_i(wx_i+b) γi=yi(wxi+b)
定义超平面 ( w , b ) (w,b) (w,b)关于训练数据集 T T T的函数间隔为超平面关于 T T T中所有样本点 ( x i , y i ) (x_i,y_i) (xi,yi)的函数间隔之最小值。
γ = m i n γ i = m i n y i ( w x i + b ) γ=minγ_i=miny_i(wx_i+b) γ=minγi=minyi(wxi+b)
每一个样本点都有一个函数间隔,但是定义的超平面关于训练集的函数间隔是所有样本点的函数间隔的最小值。
函数间隔的意义:函数间隔可以表示分类预测的正确性(符号)及确信度(大小)
函数间隔的缺陷:只要成比例的改变w和b,比如将他们改为2w和2b,超平面并没有改变,但函数间隔变成原来的2倍、
以上两点可以启发我们,可以对分离超平面的法向量w加某些约束,如规范化||w||=1,使得间隔是固定的,这时函数间隔称为几何间隔。
一般的,当样本点 ( x i , y i ) (x_i,y_i) (xi,yi)被超平面 ( w , b ) (w,b) (w,b)正确分类时,点 x i x_i xi与超平面 ( w , b ) (w,b) (w,b)的距离是:
γ i = y i ( w x i + b ∣ ∣ w ∣ ∣ ) γ_i=y_i(\frac{wx_i+b}{||w||}) γi=yi(∣∣w∣∣wxi+b)由这一事实导出几何间隔的概念。
定义:几何间隔 对于给定的训练数据集 T T T和超平面 ( w , b ) (w,b) (w,b),定义超平面 ( w , b ) (w,b) (w,b)关于样本点 ( x i , y i ) (x_i,y_i) (xi,yi)的几何间隔为:
γ i = y i ( w x i + b ∣ ∣ w ∣ ∣ ) γ_i=y_i(\frac{wx_i+b}{||w||}) γi=yi(∣∣w∣∣wxi+b)
定义超平面关于训练数据集的几何间隔为超平面关于 T T T中所有样本点 ( x i , y i ) (x_i,y_i) (xi,yi)的几何间隔之最小值,
即 γ = m i n γ i γ=minγ_i γ=minγi
超平面 ( w , b ) (w,b) (w,b)关于样本点 ( x i , y i ) (x_i,y_i) (xi,yi)的几何间隔一般是实例点到超平面的带符号的距离,当样本点被超平面正确分类时就是实例点到超平面距离。
间隔最大化
支持向量机学习的基本想法是求解能够正确划分训练数据集并且几何间隔最大的分离超平面。
对线性可分的训练数据集而言,线性可分分离超平面有无穷多个(等价于感知机),但是几何间隔最大的分离超平面是唯一的。
间隔最大化的直观解释:对训练数据集找到几何间隔最大的超平面意味着以充分大的确信度对训练数据进行分类。也就是说,不仅将正负实例点分开,而且对最难分的实例点(离超平面最近的点)也有足够大的确信度将他们分开。这样的超平面应该对未知的新实例有很好的分类预测能力。
最大间隔分离超平面:
如何求得一个几何间隔最大的分离超平面?
这个问题可以表示为下面的约束最优化问题:
max w , b γ \max\limits_{w,b}γ w,bmaxγ
s . t s.t s.t: y i ( w x i + b ∣ ∣ w ∣ ∣ ) ≥ γ y_i(\frac{wx_i+b}{||w||})≥γ yi(∣∣w∣∣wxi+b)≥γi=1,2……N
1)即希望最大化超平面 ( w , b ) (w,b) (w,b)关于训练数据集的几何间隔 γ γ γ
2)约束条件表示的是超平面 ( w , b ) (w,b) (w,b)关于每一个训练样本点的几何间隔至少是 γ γ γ
考虑几何间隔与函数间隔的关系式,可将上面的问题转换为下面的问题:
max w , b γ ∗ ∣ ∣ w ∣ ∣ \max\limits_{w,b}\frac{γ^*}{||w||} w,bmax∣∣w∣∣γ∗
s . t s.t s.t: y i ( w x i + b ) ≥ γ ∗ y_i(wx_i+b)≥γ^* yi(wxi+b)≥γ∗
(这样把优化问题里面的几何间隔替换成了函数间隔,有什么好处呢?)
因为函数间隔 γ ∗ γ^* γ∗的取值并不影响最优化问题的解,即函数间隔的这一改变对上面的最优化问题的不等式约束没有影响,对目标函数的优化也没有影响,产生的是一个等价的优化问题。
这样可以取 γ ∗ = 1 γ^*=1 γ∗=1,带入上面的最优化问题,注意到最大化 1 ∣ ∣ w ∣ ∣ \frac{1}{||w||} ∣∣w∣∣1和最小化 ∣ ∣ w ∣ ∣ 2 2 \frac{||w||^2}{2} 2∣∣w∣∣2是等价的,于是就得到下面的线性可分支持向量机的最优化问题:
min w , b ∣ ∣ w ∣ ∣ 2 2 \min\limits_{w,b}\frac{||w||^2}{2} w,bmin2∣∣w∣∣2
s . t s.t s.t: y i ( w x