【机器学习】支持向量机(SVM)——软间隔线性不可分(理论+图解+公式推导)

简介: 【机器学习】支持向量机(SVM)——软间隔线性不可分(理论+图解+公式推导)

2021人工智能领域新星创作者,带你从入门到精通,该博客每天更新,逐渐完善机器学习各个知识体系的文章,帮助大家更高效学习。


一、概述

上篇文章我们引出了SVM的硬间隔的概念,它是最大化我们每个样本到超平面的间隔,使每个样本的函数间隔大于等于1,即:

y i ( w T x i + b ) ≥ 1 y_i(w^Tx_i+b)\geq1yi(wTxi+b)1

而且它有个前提条件就是数据是线性可分的,就是能够找到一个超平面能够将数据完全区分,但是区分方式有很多种,硬间隔就是为了找到最优的一个超平面,但是在实际中,我们很多数据是不可分的,找不到一个超平面进行完全区分,比如说:

上面这幅图可以看到在黄色区域存在一个噪音点,我们是无论如何都无法进行完全分类的,但是我们还想找到一个超平面进行区分,显然仍然是中间这条线效果最好,尽管分类错误一个蓝色噪音点,但是只是牺牲一个样本的分类正确率,成就绝大数样本的分类正确。

也就是说,除去一些难以区分的噪音点,我们的数据仍旧是线性可分的。

此时就说明一些噪音点是不能满足我们之前函数间隔大于1的条件的,即 y i ( w T x i + b ) ≥ 1 y_i(w^Tx_i+b)\geq1yi(wTxi+b)1 ,那么我们可以引入一个松弛变量,让每个样本可以存在一定的误判误差,现在约束条件就变成了:

y i ( w T x i + b ) ≥ 1 − ξ i y_i(w^Tx_i+b)\geq1-\xi_iyi(wTxi+b)1ξi

这样引入了松弛变量后,原来的约束条件就不那么强了,而且这个 ξ i \xi_iξi 每个样本是不同的,如果对于那些线性可分的数据他应该是为0的,仍满足之前的条件,但是如果是那些噪音点,就可以降低要求,比如说上面的那个蓝色噪音点,如果要满足新的约束条件,那么 ξ \xiξ 应该为大于1的,所以可以将它看成一种损失,如果正确线性可分的数据应该为0,如果是不可分的数据一定是大于0的,我们目标就是让每个样本的 ξ \xiξ 最小,那么我们的目标函数就从原来的 m i n 1 2 w T w min\frac{1}{2}w^Twmin21wTw 变为了:

m i n 1 2 w T w + C ∑ i = 1 m ξ i min\frac{1}{2}w^Tw+C\sum_{i=1}^m\xi_imin21wTw+Ci=1mξi

其中的C代表惩罚系数,和正则项的那个意义差不多,如果C值越大,我们允许错误的程度越小,即 ξ \xiξ 就越小,也就是容忍错误的能力越小。

那么此时的问题就变成了:

m i n 1 2 w T w + C ∑ i = 1 m ξ i min\frac{1}{2}w^Tw+C\sum_{i=1}^m\xi_imin21wTw+Ci=1mξi

y i ( w T x i + b ) ≥ 1 − ξ i y_i(w^Tx_i+b)\geq1-\xi_iyi(wTxi+b)1ξi

ξ i ≥ 0 \xi_i\geq0ξi0

二、问题求解

求解软间隔的问题和硬间隔是一模一样的,都是构造拉格朗日,然后转化成对偶问题,利用KKT条件求解最优值。

1.构造拉格朗日函数

第一节中最终我们获得了目标函数和两个不等式约束条件,那么需要构造一个拉格朗日函数,为:

L ( w , b , ξ , λ , μ ) = 1 2 w T w + C ∑ i = 1 m ξ i + ∑ i = 1 m λ i [ ( 1 − ξ i ) − y i ( w T x i + b ) ] − ∑ i = 1 m μ i ξ i L(w,b,\xi,\lambda,\mu)=\frac{1}{2}w^Tw+C\sum_{i=1}^m\xi_i+\sum_{i=1}^m\lambda_i[(1-\xi_i)-y_i(w^Tx_i+b)]-\sum_{i=1}^m\mu_i\xi_iL(w,b,ξ,λ,μ)=21wTw+Ci=1mξi+i=1mλi[(1ξi)yi(wTxi+b)]i=1mμiξi

λ i ≥ 0 \lambda_i\geq0λi0

μ i ≥ 0 \mu_i\geq0μi0

所以此时我们的原问题就转化成了:

m i n w , b , ξ m a x λ , μ L ( w , b , ξ , λ , μ ) min_{w,b,\xi}max_{\lambda,\mu}L(w,b,\xi,\lambda,\mu)minw,b,ξmaxλ,μL(w,b,ξ,λ,μ)

2.对偶问题

为了求解方便,我们将原问题转化为它的对偶问题,对偶问题是拉格朗日函数的极大极小问题,也就是:

m a x λ , μ m i n w , b , ξ L ( w , b , ξ , λ , μ ) max_{\lambda,\mu}min_{w,b,\xi}L(w,b,\xi,\lambda,\mu)maxλ,μminw,b,ξL(w,b,ξ,λ,μ)

对于该对偶问题,我们应该先求拉格朗日函数的极小值,首先对 w , b , ξ w,b,\xiw,b,ξ 进行求偏导,得到:

∂ L ∂ w = w − ∑ i = 1 m λ i y i x i = 0 \frac{\partial L}{\partial w}=w-\sum_{i=1}^m\lambda_iy_ix_i=0wL=wi=1mλiyixi=0

∂ L ∂ b = − ∑ i = 1 m λ i y i = 0 \frac{\partial L}{\partial b}=-\sum_{i=1}^m\lambda_iy_i=0bL=i=1mλiyi=0

∂ L ∂ ξ i = C − λ i − μ i = 0 \frac{\partial L}{\partial \xi_i}=C-\lambda_i-\mu_i=0ξiL=Cλiμi=0

我们将上面获得的三个式子带入原拉格朗日函数中就可以获得 m i n w , b , ξ L ( w , b , ξ , λ , μ ) min_{w,b,\xi}L(w,b,\xi,\lambda,\mu)minw,b,ξL(w,b,ξ,λ,μ) ,得:

m i n w , b , ξ L ( w , b , ξ , λ , μ ) = − 1 2 ∑ i = 1 m ∑ j = 1 m λ i λ j y i y j x i T x j + ∑ i = 1 m λ i min_{w,b,\xi}L(w,b,\xi,\lambda,\mu)=-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\lambda_i\lambda_jy_iy_jx_i^Tx_j+\sum_{i=1}^m\lambda_iminw,b,ξL(w,b,ξ,λ,μ)=21i=1mj=1mλiλjyiyjxiTxj+i=1mλi

所以我们得对偶问题又变成了:

m a x λ , μ m i n w , b , ξ L ( w , b , ξ , λ , μ ) = m a x λ , μ − 1 2 ∑ i = 1 m ∑ j = 1 m λ i λ j y i y j x i T x j + ∑ i = 1 m λ i max_{\lambda,\mu}min_{w,b,\xi}L(w,b,\xi,\lambda,\mu)=max_{\lambda,\mu}-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\lambda_i\lambda_jy_iy_jx_i^Tx_j+\sum_{i=1}^m\lambda_imaxλ,μminw,b,ξL(w,b,ξ,λ,μ)=maxλ,μ21i=1mj=1mλiλjyiyjxiTxj+i=1mλi

由于一般情况下我们是优化最小值的,需要转换一下,添加个负号,得:

m i n λ , μ 1 2 ∑ i = 1 m ∑ j = 1 m λ i λ j y i y j x i T x j − ∑ i = 1 m λ i min_{\lambda,\mu}\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\lambda_i\lambda_jy_iy_jx_i^Tx_j-\sum_{i=1}^m\lambda_iminλ,μ21i=1mj=1mλiλjyiyjxiTxji=1mλi

∑ i = 1 m λ i y i = 0 \sum_{i=1}^m\lambda_iy_i=0i=1mλiyi=0

C − λ i − μ i = 0 C-\lambda_i-\mu_i=0Cλiμi=0

λ i ≥ 0 \lambda_i\geq0λi0

μ i ≥ 0 \mu_i\geq0μi0

我们可以将后三个约束条件进行合并:

即:

0 ≤ λ i ≤ C 0\leq \lambda_i \leq C0λiC

我们的最终目标就是求出使上式达到最优的 λ \lambdaλ ,然后带入我们的w方程和b的方程中,获得最优解 w ∗ w^*wb ∗ b^*b ,那么这个最优解方程如何获得呢?利用KKT条件。

3.KKT条件求解极值

由于我们的原问题是凸二次规划问题,所以最终的解满足KKT条件,条件如下:

∂ L ∂ w = w − ∑ i = 1 m λ i y i x i = 0 \frac{\partial L}{\partial w}=w-\sum_{i=1}^m\lambda_iy_ix_i=0wL=wi=1mλiyixi=0

∂ L ∂ b = − ∑ i = 1 m λ i y i = 0 \frac{\partial L}{\partial b}=-\sum_{i=1}^m\lambda_iy_i=0bL=i=1mλiyi=0

∂ L ∂ ξ i = C − λ i − μ i = 0 \frac{\partial L}{\partial \xi_i}=C-\lambda_i-\mu_i=0ξiL=Cλiμi=0

该三个是拉格朗日函数取得极值点的条件。

λ i ∗ ( y i ( w T x i + b ) − 1 + ξ i ∗ ) = 0 \lambda_i^*(y_i(w^Tx_i+b)-1+\xi_i^*)=0λi(yi(wTxi+b)1+ξi)=0

μ i ∗ ξ i ∗ = 0 \mu_i^*\xi_i^*=0μiξi=0

这两个为不等式约束条件,可以看出就是用拉格朗日乘子乘以原来的不等式约束使其等于0。

y i ( w T x i + b ) − 1 + ξ i ∗ ≥ 0 y_i(w^Tx_i+b)-1+\xi_i^*\geq0yi(wTxi+b)1+ξi0

ξ i ∗ ≥ 0 \xi_i^*\geq0ξi0

这两个为原来的不等式约束条件。

λ i ≥ 0 \lambda_i\geq0λi0

μ i ≥ 0 \mu_i\geq0μi0

这两个就是拉格朗日不等式约束的乘子必须大于等于0。

根据上面的KKT条件我们就可以获得下面的结论:

w ∗ = ∑ i = 1 m λ i ∗ y i x i w^*=\sum_{i=1}^m\lambda_i^*y_ix_iw=i=1mλiyixi

b ∗ = y j − ∑ i = 1 m y i λ i ∗ x i T x j b^*=y_j-\sum_{i=1}^my_i\lambda_i^*x_i^Tx_jb=yji=1myiλixiTxj

这样我们就获得了最终参数的表达式,将我们第三步优化目标函数获得的 λ \lambdaλ 带入上边的两个方程就可以求出最优解参数了。

我们最终的分类超平面就可以写成:

∑ i = 1 m λ i ∗ y i ( x i T x ) + b ∗ = 0 \sum_{i=1}^m\lambda_i^*y_i(x_i^Tx)+b^*=0i=1mλiyi(xiTx)+b=0

分类决策函数可以写成:

f ( x ) = s i g n ( ∑ i = 1 m λ i ∗ y i ( x i T x ) + b ∗ ) f(x)=sign(\sum_{i=1}^m\lambda_i^*y_i(x_i^Tx)+b^*)f(x)=sign(i=1mλiyi(xiTx)+b)

目录
相关文章
|
1月前
|
机器学习/深度学习 数据采集 算法
机器学习在医疗诊断中的前沿应用,包括神经网络、决策树和支持向量机等方法,及其在医学影像、疾病预测和基因数据分析中的具体应用
医疗诊断是医学的核心,其准确性和效率至关重要。本文探讨了机器学习在医疗诊断中的前沿应用,包括神经网络、决策树和支持向量机等方法,及其在医学影像、疾病预测和基因数据分析中的具体应用。文章还讨论了Python在构建机器学习模型中的作用,面临的挑战及应对策略,并展望了未来的发展趋势。
122 1
|
4月前
|
机器学习/深度学习 算法
【机器学习】SVM面试题:简单介绍一下SVM?支持向量机SVM、逻辑回归LR、决策树DT的直观对比和理论对比,该如何选择?SVM为什么采用间隔最大化?为什么要将求解SVM的原始问题转换为其对偶问题?
支持向量机(SVM)的介绍,包括其基本概念、与逻辑回归(LR)和决策树(DT)的直观和理论对比,如何选择这些算法,SVM为何采用间隔最大化,求解SVM时为何转换为对偶问题,核函数的引入原因,以及SVM对缺失数据的敏感性。
89 3
|
4月前
|
机器学习/深度学习 运维 算法
深入探索机器学习中的支持向量机(SVM)算法:原理、应用与Python代码示例全面解析
【8月更文挑战第6天】在机器学习领域,支持向量机(SVM)犹如璀璨明珠。它是一种强大的监督学习算法,在分类、回归及异常检测中表现出色。SVM通过在高维空间寻找最大间隔超平面来分隔不同类别的数据,提升模型泛化能力。为处理非线性问题,引入了核函数将数据映射到高维空间。SVM在文本分类、图像识别等多个领域有广泛应用,展现出高度灵活性和适应性。
204 2
|
4月前
|
机器学习/深度学习 算法
【机器学习】解释对偶的概念及SVM中的对偶算法?(面试回答)
解释了对偶的概念,指出对偶性在优化问题中的重要性,尤其是在强对偶性成立时可以提供主问题的最优下界,并且详细阐述了支持向量机(SVM)中对偶算法的应用,包括如何将原始的最大间隔优化问题转换为对偶问题来求解。
101 2
|
4月前
|
机器学习/深度学习
【机器学习】准确率、精确率、召回率、误报率、漏报率概念及公式
机器学习评估指标中的准确率、精确率、召回率、误报率和漏报率等概念,并给出了这些指标的计算公式。
881 0
|
4月前
|
机器学习/深度学习 算法
【机器学习】简单解释贝叶斯公式和朴素贝叶斯分类?(面试回答)
简要解释了贝叶斯公式及其在朴素贝叶斯分类算法中的应用,包括算法的基本原理和步骤。
83 1
|
4月前
|
机器学习/深度学习 算法 数据挖掘
【机器学习】聚类算法中的距离度量有哪些及公式表示?
聚类算法中常用的距离度量方法及其数学表达式,包括欧式距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、余弦相似度等多种距离和相似度计算方式。
430 1
|
4月前
|
机器学习/深度学习 算法
【机器学习】支持向量机SVM、逻辑回归LR、决策树DT的直观对比和理论对比,该如何选择(面试回答)?
文章对支持向量机(SVM)、逻辑回归(LR)和决策树(DT)进行了直观和理论上的对比,并提供了在选择这些算法时的考虑因素,包括模型复杂度、损失函数、数据量需求、对缺失值的敏感度等。
71 1
|
5月前
|
机器学习/深度学习 算法 数据可视化
Fisher模型在统计学和机器学习领域通常指的是Fisher线性判别分析(Fisher's Linear Discriminant Analysis,简称LDA)
Fisher模型在统计学和机器学习领域通常指的是Fisher线性判别分析(Fisher's Linear Discriminant Analysis,简称LDA)
|
1月前
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
99 4

热门文章

最新文章