SVM算法问题汇总

文章目录

      • 1. 完整的推导一遍SVM
      • 2. SVM的硬间隔,软间隔表达式?
      • 3. SVM的损失函数?
      • 4. SVM为什么要引入拉格朗日的优化方法?
      • 5. SVM使用对偶函数求解的目的是什么,如何推出来的?
      • 6. SVM核函数的选择及应用?
      • 7. 请简要介绍下SVM?
      • 8. LR和SVM的联系与区别?

1. 完整的推导一遍SVM

        SVM是一种二分类模型,基本想法就是基于训练集和样本空间中找到一个最优的划分超平面,将两类样本分割开来,首先要知道什么样的划分法才能称为“最”优划分。最优划分是指两类的样本点到分类超平面的距离都最远。

        在样本空间中,划分超平面可用 w T x + b = 0 w^Tx + b=0 wTx+b=0,记为 ( w , b ) (w,b) w,b,样本点 ( x i , y i ) (x_i,y_i) xi,yi到划分超平面的函数间隔为: γ ′ = y ( w T x + b ) \gamma^{'} = y(w^Tx + b) γ=y(wTx+b),几何间隔为: γ = y ( w T x + b ) ∣ ∣ w ∣ ∣ = γ ′ ∣ ∣ w ∣ ∣ \gamma = \frac{y(w^Tx + b)}{||w||} = \frac{\gamma^{'}}{||w||} γ=wy(wTx+b)=wγ
∣ ∣ w ∣ = 1 ||w|=1 w=1,可知函数间隔和几何间隔相等,若超平面参数 w , b w,b wb成比例的改变(超平面没有变),则函数间隔也是成比例的改变,而几何间隔不变。

        SVM的基本想法就是求解能够正确划分训练数据集并且几何间隔最大的分离超平面。其实函数间隔的取值并不影响最优化问题的解,假设将 w w w b b b成倍的改变为 a w , a b aw,ab awab,那么函数间隔也会相应变成 a γ ′ a\gamma^{'} aγ,函数间隔的对最优化问题的不等式没有影响,因此为简便取 γ ′ = 1 \gamma^{'}=1 γ=1,而且我们注意到最大化 1 ∣ ∣ w ∣ ∣ \frac{1}{||w||} w1等价于最小化 1 2 ∣ ∣ w ∣ ∣ 2 \frac{1}{2}||w||^2 21w2(为啥取平方呢,因为后面好求导),便可得到下面线性可分的支持向量机的最优化问题:
SVM算法问题汇总_第1张图片
        这是一个凸二次优化的问题,可以直接求解,我们要应用拉格朗日对偶性求解它的对偶问题。引进拉格朗日乘子,建立拉格朗日函数:
在这里插入图片描述
根据原始问题的对偶性,原始问题的对偶性是极大极小问题,即:

m i n ⎵ w , b    m a x ⎵ α i ≥ 0 L ( w , b , α ) \underbrace{min}_{w,b}\; \underbrace{max}_{\alpha_i \geq 0} L(w,b,\alpha) w,b minαi0 maxL(w,b,α)

(1)首先我们来求最小, L ( w , b , a ) L(w,b,a) L(w,b,a)分别对 w w w b b b求偏导,令其等于0,得:
SVM算法问题汇总_第2张图片
(2)将求出的偏导结果带入 m i n ⎵ w , b L ( w , b , α ) \underbrace{min}_{w,b}L(w,b,\alpha) w,b minL(w,b,α),再对 α α α求极大:
SVM算法问题汇总_第3张图片
SVM算法问题汇总_第4张图片
(3)只要我们可以求出上式极小化时对应的 α α α 向量就可以求出 w w w b b b 了。
SVM算法问题汇总_第5张图片
则分离超平面、分离决策函数可以写成:
SVM算法问题汇总_第6张图片
以上是线性可分的情况,针对数据混入了异常点,导致不能线性可分。通常对于这种情况我们引入松弛变量,对样本到超平面的函数距离的要求放松,那么优化问题变为:
SVM算法问题汇总_第7张图片
求解方法同线性可分情况,得到软间隔最大化时的线性可分SVM的优化目标形式:
SVM算法问题汇总_第8张图片
求得 α α α 向量就可以求出 w w w b b b 了。

针对完全线性不可分情况,我们需要将低维线性不可分特征投影至高维空间中进行划分,直接引入核函数来解决。
那么,线性不可分SVM的优化目标形式:
SVM算法问题汇总_第9张图片
和线性可分SVM的优化目标函数的区别仅仅是将内积 x i ∙ x j x_i∙x_j xixj替换为 ϕ ( x i ) ∙ ϕ ( x j ) ϕ(x_i)∙ϕ(x_j) ϕ(xi)ϕ(xj)
核函数的价值在于它虽然也是将特征进行从低维到高维的转换,但核函数好在它在低维上进行计算,而将实质上的分类效果(利用了内积)表现在了高维上,这样避免了直接在高维空间中的复杂计算,真正解决了SVM线性不可分的问题。


2. SVM的硬间隔,软间隔表达式?

SVM算法问题汇总_第10张图片
SVM算法问题汇总_第11张图片


3. SVM的损失函数?

在这里插入图片描述


4. SVM为什么要引入拉格朗日的优化方法?

SVM使用拉格朗日乘子法更为高效地求解了优化问题。
SVM将寻找具有最大几何间隔划分超平面的任务转化成一个凸优化问题,如下所示:
在这里插入图片描述
使用拉格朗日乘子法将原问题转化为对偶问题求解,即将优化目标转化为无约束的优化函数。


5. SVM使用对偶函数求解的目的是什么,如何推出来的?

目的:
(1)方便核函数的引入;
(2)将原始问题中的约束转为了对偶问题中的等式约束,对偶问题更易求解,原问题的求解复杂度与特征的维数相关,而对偶问题只与问题的变量个数有关(SVM的变量个数为支持向量的个数,相较于特征维数较少);

推导:
通过拉格朗日日算子构建拉格朗日函数,将含有n个变量和k个约束条件的约束优化问题转化为含有(n+k)个变量的无约束优化问题,具体做法是:
(1)将约束融入目标函数中,构造拉格朗日函数;
(2)然后对模型参数w和b求偏导,并令之为零;
(3)得到w后,将其带入拉格朗日函数中,消去模型参数w和b;
(4)这样就得到了原问题的对偶问题,对偶问题和原问题等价,同时对偶问题也是一个凸优化问题,使用SMO算法求解拉格朗日乘子;
(5)得到拉格朗日乘子后,进一步可以得到模型参数w和b,也就得到了我们想要的划分超平面。


6. SVM核函数的选择及应用?

核函数本质: 针对数据线性不可分的情况,常用做法是把样本特征映射到高维空间中,转化为线性可分问题去解决。但是将样本特征映射到高维空间,可能会遇到维度过高的问题造成维灾难。这时,可以利用核函数,核函数也是将特征从低维到高维的转换,但避免了直接进行高维空间中的复杂计算,可以在低维上进行计算,却能在实质上将分类效果表现在高维上。

常用的核函数:
(1)常用的核函数:
SVM算法问题汇总_第12张图片
核函数的选择与应用:
当SVM使用线性核时,在处理分类问题时,和逻辑回归比较有哪些异同,如何选择?
n=训练样本数目,m=特征数
如果m相对n比较大,使用逻辑回归或者线性SVM,例如m=10000,n=10-1000;
如果m比较小,n数值适中,使用高斯核的SVM,例如m=1-1000,n=10-10000;
如果m比较小,n很大,构建更多特征,然后使用逻辑回归或者线性SVM。

选择:
(1)若问题是线性可分的,就可以使用线性核;
(2)利用交叉验证,试用不同的核函数,误差最小的即为效果最好的核函数;
(3)混合核函数方法,将不同的核函数结合起来


7. 请简要介绍下SVM?

        SVM是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大化的线性分类器,间隔最大化使它有别于感知机,支持向量机还包括核技巧,使它成为实质上的非线性分类器,SVM的学习策略是间隔最大化,可形式化为一个凸二次规划问题,也等价于正则化的合页损失函数的最小化问题,SVM的学习算法是求解凸二次规划的最优化算法。
(1)当训练数据线性可分时,通过硬间隔最大化,学习一个线性的分类器,即线性可分支持向量机,又称为硬间隔支持向量机;
(2)当训练数据近似线性可分时,通过软间隔最大化,也学习一个线性的分类器,即线性支持向量机,又称为软间隔支持向量机;
(3)当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习一个非线性的分类器,即非线性支持向量机。


8. LR和SVM的联系与区别?

(1)联系:

  • LR和SVM都可以处理分类问题,且一般都用于处理线性二分类问题(在改进的情况下可以处理多分类问题);
  • 两个方法都可以增加不同的正则化项,如L1、L2等等。所以在很多实验中,两种算法的结果是很接近的。

(2)区别:

  • LR是参数模型,SVM是非参数模型。
  • 从目标函数来看,区别在于LR采用的是Logistical Loss,SVM采用的是hinge loss。这两个损失函数的目的都是增加对分类影响较大的数据点的权重,减少与分类关系较小的数据点的权重。
  • SVM的处理方法是只考虑Support Vectors,也就是和分类最相关的少数点,去学习分类器。而LR通过非线性映射,大大减小了离分类平面较远的点的权重,相对提升了与分类最相关的数据点的权重。
  • LR相对来说模型更简单,好理解,特别是大规模线性分类时比较方便。而SVM的理解和优化相对来说复杂一些,SVM转化为对偶问题后,分类只需要计算与少数几个支持向量的距离,这个在进行复杂核函数计算时优势很明显,能够大大简化模型和计算。
  • LR能做的 SVM能做,但可能在准确率上有问题,SVM能做的LR有的做不了。

你可能感兴趣的:(机器学习,支持向量机,SVM,机器学习)