一、SVM的基本思想
SVM的基本思想是在样本的向量空间中寻找一个超平面,使得两类样本被分割在平面的两端。这样的平面理论上有无穷多个,但SVM的目标是找到一个最优的超平面,即两侧距离超平面最近的样本点到超平面的距离被最大化的超平面。这个最优的超平面所对应的判别模型即为支持向量机。距离超平面最近的样本点被称为支持向量。
二、线性可分情况下的SVM求解
-
问题转化:
对于线性可分的情况,SVM的求解可以转化为一个凸优化问题。具体来说,就是找到一个超平面(wx+b=0),使得两类样本点分别位于该平面的两侧,并且距离该平面最近的样本点到平面的距离最大化。
-
函数间隔和几何间隔:
- 函数间隔:对于给定的超平面和样本点,样本点到超平面的函数间隔定义为y(wx+b)。但是,函数间隔存在一个问题,即当w和b成倍增加时,函数值也会成倍增加,而超平面并没有改变。因此,需要引入几何间隔。
- 几何间隔:几何间隔是样本点到超平面的真正距离。它通过对w进行约束(通常假设w的模为1),然后计算样本点到超平面的垂直距离来得到。
-
优化问题:
SVM的目标是最大化几何间隔,这可以转化为一个优化问题。具体来说,就是最小化w的模的平方(即||w||^2/2),同时满足所有样本点到超平面的函数间隔大于等于1的约束条件。这个优化问题可以表示为:
其中,n是样本点的数量,x_i和y_i分别是第i个样本点的特征向量和标签。
-
拉格朗日乘子法和对偶问题:
为了求解上述优化问题,可以使用拉格朗日乘子法将其转化为一个无约束的优化问题。具体来说,就是引入拉格朗日乘子α_i(i=1,2,...,n),然后构造拉格朗日函数:
接着,对拉格朗日函数分别求w和b的偏导数,并令其等于0,可以得到w和b的表达式(这些表达式中包含了α_i)。然后,将w和b的表达式代入拉格朗日函数,得到一个新的函数(即拉格朗日对偶函数),该函数只包含α_i作为变量。最后,求解这个新的函数的最大值(即对偶问题的解),就可以得到原始优化问题的解。
-
KKT条件和支持向量:
在求解对偶问题的过程中,需要满足KKT条件(Karush-Kuhn-Tucker条件)。这些条件包括:
- α_i≥0
- y_i(wx_i+b)-1≥0
- α_i(y_i(wx_i+b)-1)=0
其中,第三个条件表明,只有当样本点位于间隔边界上(即y_i(wx_i+b)=1)时,对应的α_i才可能不为0。这些位于间隔边界上的样本点就是支持向量。
-
求解α_i:
通过对偶问题,可以求解出α_i的值。然后,利用α_i和样本点的特征向量x_i,可以求解出w和b的值(通过w的表达式和任意一个支持向量)。
-
决策函数:
最后,可以得到SVM的决策函数:f(x)=sign(wx+b)。对于新的样本点x,将其代入决策函数,就可以得到其所属的类别。
三、线性不可分情况下的SVM求解
对于线性不可分的情况,SVM通过引入核函数将样本点映射到高维空间,使得在高维空间中样本点变得线性可分。然后,在高维空间中应用线性可分情况下的SVM求解方法。
-
核函数:
核函数的作用是将原始输入空间中的样本点映射到新的特征空间(通常是高维空间)。常用的核函数包括线性核、多项式核、径向基函数(RBF)核(也称为高斯核)等。选择合适的核函数对于SVM的性能至关重要。
-
映射后的优化问题:
在引入核函数后,原始的优化问题中的x_i和x_j(表示两个样本点的特征向量)需要被替换为φ(x_i)和φ(x_j)(表示映射后的特征向量)。然后,在新的特征空间中应用线性可分情况下的SVM求解方法。
-
软间隔和松弛变量:
对于线性不可分的情况,通常允许某些样本点被错误分类(即位于间隔边界以内或另一侧)。这可以通过引入软间隔和松弛变量来实现。具体来说,就是在优化问题中添加一个惩罚项(即松弛变量的平方和乘以一个正数C),以允许一定的分类错误。同时,约束条件也相应地进行调整(即允许函数间隔小于1)。
-
求解过程:
软间隔情况下的SVM求解过程与线性可分情况类似,但需要对拉格朗日函数、KKT条件等进行相应的调整。最终,可以求解出α_i、w和b的值,并得到决策函数。