【机器学习入门】一文读懂线性可分支持向量机(一)

一 引言

在机器学习领域,支持向量机(SVM)是一种监督学习模型,用于分类和回归分析。SVM 最初由 Vladimir Vapnik 于 1963 年提出,并在随后的几十年里得到了极大的发展和完善。由于其强大的泛化能力、灵活性以及对高维数据的有效处理,SVM 已经成为许多实际问题中的首选方法之一。

支持向量机(SVM,Support Vecor Machine)是一种二分类算法,在集成学习和深度学习火起来之前支持向量机的使用非常广泛,其分类效果好、适用性广(线性、非线性都可用),功能真的是很棒棒,下来我们就来梳理一下支持向量机的原理。

二 支持向量机原理

2.1 背景

从上一篇文章 【技术干货】一文搞懂感知机算法:从理论到Python实战 中我们可以知道,感知机的目标是找到一个将线性可分的数据一分为二的决策超平面:

如上图所示,决策超平面的一侧为正样本,另一侧为负样本,但是我们可以发现,满足这个特性的决策超平面并不是唯一的,在有限的线性可分样本中,正负样本点之间的间隔使得不同的决策超平面存在,那么如果样本点继续增加,这些决策超平面中那个分类效果最好呢?也就是说谁的泛华效果最好呢?------这就是支持向量机要解决的主要问题,也是支持向量机与感知机的主要区别。

2.2 支持向量

就上面的图来说,主观上看哪个超平面的分类泛化能力最强呢?我们认为红色的那条可能会比较好,这条线距离最近的红点区域和最近的蓝点区域都比较远,无论是红点还是蓝点,再向靠近超平面的方向增加一些点都没问题,还可以被这条超平面分的比较开,那两条虚线就没有这么好的效果,如下图所示,我们新增几个点,可以看出其分类效果的差别:

似乎可以得出这样的结论:超平面离直线两边的数据的间隔越大,对训练集的数据的局限性或噪声有最大的容忍能力,也就是所谓的鲁棒性

所以,如果所有的样本点不只是可以被决策超平面分开,还和超平面保持一定的距离间隔,那么这样的分类超平面是更优的,支持向量机就是要找到使这个间隔最大的决策超平面 (即最大化下图中的margin)。训练样本中和这个超平面距离最近的样本点被称为支持向量,如下图虚线所经过的样本点即为支持向量:

2.3 函数间隔与几何间隔

最大化间隔的思想我们大概了解了,不过要最大化这个间隔首先得量化,怎么量化呢?

对于二分类学习,假设现在的数据是线性可分的,这时分类学习最基本的想法就是找到一个合适的超平面,该超平面能够将不同类别的样本分开,类似二维平面使用ax+by+c=0来表示,超平面实际上表示的就是高维的平面,如下图所示:

对数据点进行划分时,易知:当超平面距离与它最近的数据点的间隔越大,分类的鲁棒性越好,即当新的数据点加入时,超平面对这些点的适应性最强,出错的可能性最小。因此需要让所选择的超平面能够最大化这个间隔Gap(如下图所示), 常用的间隔定义有两种,一种称之为函数间隔,一种为几何间隔,下面将分别介绍这两种间隔,并对SVM为什么会选用几何间隔做了一些阐述。

2.3.1 函数间隔

在决策超平面 w T x + b = 0 w^Tx+b=0 wTx+b=0确定的情况下, ∣ w T x + b ∣ |w^Tx+b| ∣wTx+b∣能够表示点 x x x到超平面的距离远近; w T x + b w^Tx+b wTx+b和 y y y是否同号能够表示分类是否正确,所以可用 y ( w T x + b ) y(w^Tx+b) y(wTx+b)来表示分类的正确性及确定性,我们在感知机中就有类似的用法,这就是函数间隔的概念,定义函数间隔 γ ′ \gamma^{'} γ′为:
γ ′ = y ( w T x + b ) \gamma^{'} = y(w^Tx + b) γ′=y(wTx+b)

2.3.2 几何间隔

函数间隔虽然可以表示分类的正确性和确定性,但其缺点是只能在一个确定的超平面 w T x + b = 0 w^Tx+b=0 wTx+b=0下比较样本点到超平面的相对距离,不同参数的超平面条件下计算的距离是不能比较大小的,比如超平面 2 w T x + 2 b = 0 2w^Tx+2b=0 2wTx+2b=0与 w T x + b = 0 w^Tx+b=0 wTx+b=0是同一个超平面,样本点与其真实距离没有变化,但是函数距离却翻了一倍,因此我们需要将参数加以约束,使其具备可比性,我们定义几何间隔:
γ = y ( w T x + b ) ∣ ∣ w ∣ ∣ 2 = γ ′ ∣ ∣ w ∣ ∣ 2 \gamma = \frac{y(w^Tx + b)}{||w||_2} = \frac{\gamma^{'}}{||w||_2} γ=∣∣w∣∣2y(wTx+b)=∣∣w∣∣2γ′

可见,几何间隔才是点到超平面的真正距离,对于公式 y i ( w T x i + b ) {{y_i}({w^T}{x_i} + b)} yi(wTxi+b),许多教材中定义了一个专门的概念,那就是函数距离,当参数 w w w和 b b b固定时,点与超平面间的间隔越大,函数间隔越大。但函数间隔有一个不好的地方,当参数 w w w和 b b b按比例缩放时,所描述的超平面不会发生变化,但是函数距离却会跟着按比例缩放。为了克服这一不足,我们可以将函数距离固定为一个确定值,例如缩放到函数距离为1,这样求解出来的 w w w和 b b b虽然不是原来的 w w w和 b b b,但是所确定的超平面却是一样的,所以并不会对我们求解支持向量机最优超平面造成影响。那么,几何间隔就再次化简为: max ⁡ 1 ∥ w ∥ \max \frac{1}{{\left\| w \right\|}} max∥w∥1

因为我们刚假设支持向量到超平面的函数距离为1,所以,对于数据集中任意样本到超平面的函数距离都至少为1,求解时必须考虑上这一约束条件。另外,最大化 1 ∥ w ∥ \frac{1}{{\left\| w \right\|}} ∥w∥1和最小化 1 2 ∥ w ∥ 2 {\frac{1}{2}{{\left\| w \right\|}^2}} 21∥w∥2是等价的,所以,支持向量机最大化间隔可以表示为如下优化问题:
min ⁡ w , b 1 2 ∥ w ∥ 2 s . t . y i ( w T x i + b ) ⩾ 1 , i = 1 , 2 , ⋯   , N \mathop {\min }\limits_{w,b}\frac{1}{2}{\left\| w \right\|^2} \\ s.t.{\text{ }}{y_i}({w^T}{x_i} + b) \geqslant 1,{\text{ }}i = 1,2, \cdots ,N w,bmin21∥w∥2s.t. yi(wTxi+b)⩾1, i=1,2,⋯,N

2.4 线性可分支持向量机

综合上述内容可知,线性可分支持向量机可以表示为:
f ( x ) = s i g n ( w ∗ x + b ∗ ) f(x)=sign(w^*x+b^*) f(x)=sign(w∗x+b∗)

式中, w ∗ x + b ∗ = 0 w^*x+b^*=0 w∗x+b∗=0为与支持向量间隔最大化的分类超平面,可见与感知机是基本一样的,就多了个间隔最大化的要求。

三 支持向量机模型求解

3.1 目标函数

通过上述已知,支持向量机是要最大化支持向量与决策超平面之间的几何间隔,所以目标函数为:
max ⁡ w , b      γ = y ( w T x + b ) ∣ ∣ w ∣ ∣ 2      s . t      y i ( w T x i + b ) ∣ ∣ w ∣ ∣ 2 ≥ γ , i = 1 , 2 , . . . m \max_{w,b} \;\; \gamma = \frac{y(w^Tx + b)}{||w||_2} \;\; s.t \;\; \frac{y_i(w^Tx_i + b)}{||w||_2} \geq \gamma ,i =1,2,...m w,bmaxγ=∣∣w∣∣2y(wTx+b)s.t∣∣w∣∣2yi(wTxi+b)≥γ,i=1,2,...m

这个式子表示,最大化训练样本与超平面的几何间隔 γ \gamma γ,同时要保证约束条件每个训练样本与超平面的几何距离不小于 γ \gamma γ,目标函数可以改写为:
max ⁡ w , b      γ = γ ′ ∣ ∣ w ∣ ∣ 2      s . t      y i ( w T x i + b ) ≥ γ ′ , i = 1 , 2 , . . . m \max_{w,b} \;\; \gamma=\frac{\gamma^{'}}{||w||_2}\;\; s.t \;\; y_i(w^Tx_i + b) \geq \gamma^{'} ,i =1,2,...m w,bmaxγ=∣∣w∣∣2γ′s.tyi(wTxi+b)≥γ′,i=1,2,...m

一般我们都取函数间隔 γ ′ \gamma^{'} γ′为1,为什么呢,因为 γ ′ \gamma^{'} γ′的取值不影响最优化问题的解,假设 γ ′ \gamma^{'} γ′不为1,就相当于 w w w和 b b b变为了 γ ′ w \gamma^{'}w γ′w和 γ ′ b \gamma^{'}b γ′b,对目标函数和约束不等式都没有影响,都是可以约掉的,所以 γ ′ \gamma^{'} γ′为1完全没问题,此时最优化问题变为:
max ⁡ w , b      1 ∣ ∣ w ∣ ∣ 2      s . t      y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , . . . m \max_{w,b} \;\; \frac{1}{||w||_2} \;\; s.t \;\; y_i(w^Tx_i + b) \geq 1 ,i =1,2,...m w,bmax∣∣w∣∣21s.tyi(wTxi+b)≥1,i=1,2,...m

可以转变为:
min ⁡ w , b      1 2 ∣ ∣ w ∣ ∣ 2 2      s . t      y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , . . . m \min_{w,b} \;\; \frac{1}{2}||w||_2^2 \;\; s.t \;\; y_i(w^Tx_i + b) \geq 1 ,i =1,2,...m w,bmin21∣∣w∣∣22s.tyi(wTxi+b)≥1,i=1,2,...m

(有的地方说要最大化margin同时保证两类的支持向量到超平面的距离相等,所以有 m a x 2 ∣ ∣ w ∣ ∣ 2 max\frac{2}{||w||_2} max∣∣w∣∣22,个人认为这个解释很牵强,明明优化 γ \gamma γ的过程中两类就会互相博弈找到这个最优的超平面)根据下面定义的描述发现,这个凸最优化问题是一个凸二次规划问题(convex quadratic programming)。

目标函数和约束条件都为变量的线性函数------线性规划问题;

目标函数为变量的二次函数和约束条件为变量的线性函数------二次规划问题;

目标函数和约束条件都为非线性函数------非线性规划问题。

3.2 对偶问题转化及求解

在感知机中我们说过,利用对偶问题可以从不同角度看待同一个问题,可能会引入新的参数来帮助我们优化,在约束最优化问题中,常常利用拉格朗日对偶性(Lagrange duality)将原始问题转换为对偶问题,通过解对偶问题得到原始问题的解。

首先我们的优化目标函数可以使用拉格朗日乘子法 转变成拉格朗日函数:
L ( w , b , λ ) = 1 2 ∣ ∣ w ∣ ∣ 2 2 + ∑ i m λ i [ 1 − y i ( w T x i + b ) ] ,    λ i ≥ 0 L(w,b,\lambda)= \frac{1}{2}||w||_2^2 +\sum_i^m \lambda_i [1-y_i(w^Tx_i + b)], \; \lambda_i\geq0 L(w,b,λ)=21∣∣w∣∣22+i∑mλi[1−yi(wTxi+b)],λi≥0

目标函数的优化转变为:
min ⁡ w , b    max ⁡ λ    L ( w , b , λ ) \min_{w,b}\;\max_{\lambda}\; L(w,b,\lambda) w,bminλmaxL(w,b,λ)

这一步是什么意思呢,因为约束不等式 1 − y i ( w T x i + b ) ≤ 0 , λ i ≥ 0 1-y_i(w^Tx_i + b)\leq 0,\lambda_i\geq 0 1−yi(wTxi+b)≤0,λi≥0,所以加号后面整体小于等于0,只有当其取最大值是为0,此时 max ⁡ λ    L ( w , b , λ ) = 1 2 ∣ ∣ w ∣ ∣ 2 2 \max_{\lambda}\; L(w,b,\lambda)= \frac{1}{2}||w||_2^2 maxλL(w,b,λ)=21∣∣w∣∣22,即为原目标函数,这个变形称为广义拉格朗日函数的极小极大问题,它与原问题是完全等价的,在对偶性中,这个问题被称为原始问题(Primal problem)

这个优化函数满足KKT条件 ,可以实现强对偶 ,即可以通过**拉格朗日对偶(Lagrange duality)**将其转化为等价的对偶问题:
max ⁡ λ    min ⁡ w , b    L ( w , b , λ ) \max_{\lambda}\;\min_{w,b}\; L(w,b,\lambda) λmaxw,bminL(w,b,λ)

所以我们可以先求优化函数极小值对应的 w w w和 b b b,再求的极大值对应的拉格朗日乘子系数 λ \lambda λ:
∂ L ∂ w = 0    → w + ∑ i m λ i y i x i = 0    → w = ∑ i = 1 m λ i y i x i \frac{\partial L}{\partial w} = 0 \;\rightarrow w+\sum_i^m \lambda_iy_ix_i=0 \;\rightarrow w = \sum_{i=1}^{m}\lambda_iy_ix_i ∂w∂L=0→w+i∑mλiyixi=0→w=i=1∑mλiyixi

∂ L ∂ b = 0    → ∑ i m λ i y i = 0 \frac{\partial L}{\partial b} = 0 \;\rightarrow \sum_i^m \lambda_iy_i=0 ∂b∂L=0→i∑mλiyi=0

优化函数取得极小值时, w w w可以用 λ \lambda λ,而 b b b无所谓,取什么值都不影响优化函数取得极小值,所以可得:
J ( λ ) = min ⁡ w , b    L ( w , b , λ ) = 1 2 ∣ ∣ w ∣ ∣ 2 2 + ∑ i m λ i [ 1 − y i ( w T x i + b ) ] = 1 2 w T w − ∑ i = 1 m λ i y i w T x i − ∑ i = 1 m λ i y i b + ∑ i = 1 m λ i = 1 2 ∑ i = 1 m ( λ i y i x i ) T ∑ i = 1 m λ i y i x i − ( λ i y i x i ) T ∑ i = 1 m λ i y i x i − ∑ i = 1 m λ i y i b + ∑ i = 1 m λ i = − 1 2 ∑ i = 1 m ( λ i y i x i ) T ∑ i = 1 m λ i y i x i − b ∑ i = 1 m λ i y i + ∑ i = 1 m λ i = − 1 2 ∑ i = 1 m λ i y i x i T ∑ i = 1 m λ i y i x i + ∑ i = 1 m λ i = − 1 2 ∑ i = 1 , j = 1 m λ i y i x i T λ j y j x j + ∑ i = 1 m λ i \begin{align} J(\lambda)&=\min_{w,b}\; L(w,b,\lambda)\\&= \frac{1}{2}||w||2^2 +\sum_i^m \lambda_i [1-y_i(w^Tx_i + b)]\\ &= \frac{1}{2}w^Tw-\sum{i=1}^{m}\lambda_iy_iw^Tx_i - \sum_{i=1}^{m}\lambda_iy_ib + \sum_{i=1}^{m}\lambda_i\\ &= \frac{1}{2}\sum_{i=1}^{m}(\lambda_iy_ix_i)^T\sum_{i=1}^{m}\lambda_iy_ix_i-(\lambda_iy_ix_i)^T\sum_{i=1}^{m}\lambda_iy_ix_i- \sum_{i=1}^{m}\lambda_iy_ib + \sum_{i=1}^{m}\lambda_i\\ &=-\frac{1}{2}\sum_{i=1}^{m}(\lambda_iy_ix_i)^T\sum_{i=1}^{m}\lambda_iy_ix_i- b\sum_{i=1}^{m}\lambda_iy_i + \sum_{i=1}^{m}\lambda_i\\ &=-\frac{1}{2}\sum_{i=1}^{m}\lambda_iy_ix_i^T\sum_{i=1}^{m}\lambda_iy_ix_i+ \sum_{i=1}^{m}\lambda_i\\ &=-\frac{1}{2}\sum_{i=1,j=1}^{m}\lambda_iy_ix_i^T\lambda_jy_jx_j+ \sum_{i=1}^{m}\lambda_i \end{align} J(λ)=w,bminL(w,b,λ)=21∣∣w∣∣22+i∑mλi[1−yi(wTxi+b)]=21wTw−i=1∑mλiyiwTxi−i=1∑mλiyib+i=1∑mλi=21i=1∑m(λiyixi)Ti=1∑mλiyixi−(λiyixi)Ti=1∑mλiyixi−i=1∑mλiyib+i=1∑mλi=−21i=1∑m(λiyixi)Ti=1∑mλiyixi−bi=1∑mλiyi+i=1∑mλi=−21i=1∑mλiyixiTi=1∑mλiyixi+i=1∑mλi=−21i=1,j=1∑mλiyixiTλjyjxj+i=1∑mλi
J ( λ ) J(\lambda) J(λ)完全是关于参数 λ \lambda λ的函数,因此:
max ⁡ λ    min ⁡ w , b    L ( w , b , λ ) = max ⁡ λ    J ( λ ) = max ⁡ λ    − 1 2 ∑ i = 1 , j = 1 m λ i y i x i T λ j y j x j + ∑ i = 1 m λ i \max_{\lambda}\;\min_{w,b}\; L(w,b,\lambda)=\max_{\lambda}\;J(\lambda)=\max_{\lambda}\;-\frac{1}{2}\sum_{i=1,j=1}^{m}\lambda_iy_ix_i^T\lambda_jy_jx_j+ \sum_{i=1}^{m}\lambda_i λmaxw,bminL(w,b,λ)=λmaxJ(λ)=λmax−21i=1,j=1∑mλiyixiTλjyjxj+i=1∑mλi

s . t . ∑ i m λ i y i = 0 ,    λ i ≥ 0 s.t. \sum_i^m \lambda_iy_i=0,\;\lambda_i\geq0 s.t.i∑mλiyi=0,λi≥0

转化为:
min ⁡ λ    1 2 ∑ i = 1 , j = 1 m λ i y i x i T λ j y j x j − ∑ i = 1 m λ i \min_{\lambda}\;\frac{1}{2}\sum_{i=1,j=1}^{m}\lambda_iy_ix_i^T\lambda_jy_jx_j-\sum_{i=1}^{m}\lambda_i λmin21i=1,j=1∑mλiyixiTλjyjxj−i=1∑mλi

s . t . ∑ i m λ i y i = 0 ,    λ i ≥ 0 s.t. \sum_i^m \lambda_iy_i=0,\;\lambda_i\geq0 s.t.i∑mλiyi=0,λi≥0

求出上式取得极小值时对应的 λ \lambda λ向量就可以求出 w w w和 b b b了,这里一般需要用到SMO(Sequential Minimal Optimization,序列最小优化算法) 算法,还是比较复杂的,下面来看看怎么做。

3.3 序列最小优化算法(SMO)

上述最优化问题是要求解 m m m个参数 ( λ 1 , λ 2 , λ 3 , . . . , λ m ) (λ_1,λ_2,λ_3,...,λ_m) (λ1,λ2,λ3,...,λm),其他参数均为已知,有多种算法可以对上述问题求解,比如之前介绍过的次梯度下降应该就可以,但是算法复杂度均很大。序列最小最优化算法(SMO)可以高效的求解上述SVM问题,它把原始求解N个参数二次规划问题分解成很多个子二次规划问题分别求解,每个子问题只需要求解两个参数,方法类似于坐标上升,节省时间成本和降低了内存需求。每次启发式选择两个变量进行优化,不断循环,直到达到函数最优值。

为什么每次优化两个参数呢?像坐标下降不是每次只优化一个参数吗?因为我们这里有个约束, ∑ i m λ i y i = 0 \sum_i^m \lambda_iy_i=0 ∑imλiyi=0,如果认为m-1个都是固定值,那么剩下的那个也就确定了,所以选择每次优化两个。因为SMO比较复杂,本篇文章就不细说了,这里先这样提一下SMO,大家知道上面的优化是用SMO计算的就好。

使用SMO算法,我们得到了 max ⁡ λ    J ( λ ) \max_{λ}\;J(λ) maxλJ(λ)对应的 λ ∗ λ^* λ∗,所以:
w = ∑ i = 1 m λ i ∗ y i x i w = \sum_{i=1}^{m}λ_i^*y_ix_i w=i=1∑mλi∗yixi

因为对支持向量有: y i ( w T x i + b ) = 1 y_i(w^Tx_i+b)=1 yi(wTxi+b)=1,所以要根据这个等式解出 b b b需要将支持向量样本点代入,怎么获得支持向量呢?KKT条件中的对偶互补条件 λ i ( y i ( w T x i + b ) − 1 ) = 0 λ_i(y_i(w^Tx_i+b)−1)=0 λi(yi(wTxi+b)−1)=0,我们已经求出了 λ ∗ λ^* λ∗,如果 λ i > 0 λ_i>0 λi>0则有 y i ( w T x i + b ) = 1 y_i(w^Tx_i+b)=1 yi(wTxi+b)=1 ,即样本点为支持向量,求解 b b b:
y i 2 ( w T x i + b ) = y i y_i^2(w^Tx_i+b)=y_i yi2(wTxi+b)=yi

b = y i − w T x i = y i − ∑ i = 1 m λ i ∗ y i x i T x i b=y_i-w^Tx_i= y_i-\sum_{i=1}^{m}λ_i^*y_ix_i^Tx_i b=yi−wTxi=yi−i=1∑mλi∗yixiTxi

显然,支持向量大多不止一个,对线性可分支持向量机来说,可以证明分类超平面是存在且唯一的, b b b的解也就只有一个,此时用不同的支持向量求出来的 b b b都是相同的,如果数据有噪声,并不是完全线性可分的,那么为了增加模型的鲁棒性, b b b取所有值的平均值,即假设有n个支持向量,则:
b = 1 n ∑ i n ( y i − w T x i ) b=\frac{1}{n}\sum_i^n (y_i-w^Tx_i) b=n1i∑n(yi−wTxi)

至此,线性可分支持向量机的模型参数就求出来了,模型也就确定了。

四 线性可分支持向量机算法流程

综合以上全部内容,可以得到线性可分支持向量机的算法流程:

  • **输入:**线性可分的样本 T = ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) T=(x_1,y_1),(x_2,y_2),...,(x_m,y_m) T=(x1,y1),(x2,y2),...,(xm,ym), x x x为 n n n维特征向量, y ∈ [ + 1 , − 1 ] y\in[+1,-1] y∈[+1,−1];
  • 输出: w , b w,b w,b,支持向量机模型 f ( x ) = s i g n ( w T x + b ) f(x)=sign(w^Tx+b) f(x)=sign(wTx+b)。
  1. 确定目标函数:

min ⁡ λ    1 2 ∑ i = 1 , j = 1 m λ i y i x i T λ j y j x j − ∑ i = 1 m λ i \min_{\lambda}\;\frac{1}{2}\sum_{i=1,j=1}^{m}\lambda_iy_ix_i^T\lambda_jy_jx_j-\sum_{i=1}^{m}\lambda_i λmin21i=1,j=1∑mλiyixiTλjyjxj−i=1∑mλi

s . t . ∑ i m λ i y i = 0 ,    λ i ≥ 0 s.t. \sum_i^m \lambda_iy_i=0,\;\lambda_i\geq0 s.t.i∑mλiyi=0,λi≥0

  1. 使用SMO优化目标函数,得到对应的 λ ∗ λ^* λ∗;

  2. 根据 λ ∗ λ^* λ∗找到样本中的共k=1个支持向量,计算参数 w , b w,b w,b:

w ∗ = ∑ i = 1 m λ i ∗ y i x i w^* = \sum_{i=1}^{m}λ_i^*y_ix_i w∗=i=1∑mλi∗yixi

b ∗ = 1 k ∑ i k ( y i − w T x i ) b^*=\frac{1}{k}\sum_i^k (y_i-w^Tx_i) b∗=k1i∑k(yi−wTxi)

  1. 得到支持向量机模型 f ( x ) = s i g n ( w ∗ T x + b ∗ ) f(x)=sign(w^{*T}x+b^*) f(x)=sign(w∗Tx+b∗)。

五 总结

本文总结了在数据集线性可分情况下,使用支持向量机算法进行分类的思想------硬间隔最大化。然而,在多数应用中,数据集并非线性可分,如果只是在分类边界附近少数点造成线性不可分,这种情况下需要在硬间隔最大化目标函数基础上,引入松弛变量和惩罚因子,然后通过拉格朗日对偶性求解,这种方法称为软间隔最大化。如果大量样本线性不可分,则需要引入核技巧,往高维空间映射,转化为线性可分。对于这两部分内容,在后续博客中在总结了。

相关推荐
思通数科x2 小时前
思通数科开源产品:免费的AI视频监控卫士安装指南
图像处理·人工智能·目标检测·机器学习·计算机视觉·目标跟踪·开源
机械心2 小时前
最优化理论与自动驾驶(十一):基于iLQR的自动驾驶轨迹跟踪算法(c++和python版本)
人工智能·机器学习·自动驾驶
sp_fyf_20243 小时前
浅谈机器学习与深度学习的区别
机器学习
FHYAAAX4 小时前
【机器学习】任务五:葡萄酒和鸢尾花数据集分类任务
深度学习·机器学习
伪NChris4 小时前
机器学习的网络们
网络·人工智能·机器学习
YoLo-84 小时前
《机器学习》周志华-CH7(贝叶斯分类)
人工智能·机器学习·分类
Kenneth風车4 小时前
【机器学习(七)】分类和回归任务-K-近邻 (KNN)算法-Sentosa_DSML社区版
人工智能·算法·低代码·机器学习·分类·数据分析·回归
zhangbin_2377 小时前
【Python机器学习】NLP信息提取——命名实体与关系
开发语言·人工智能·python·深度学习·机器学习·自然语言处理
夜清寒风11 小时前
opencv学习:图像掩码处理和直方图分析及完整代码
人工智能·opencv·学习·算法·机器学习·计算机视觉
lizi8888812 小时前
足球大小球及亚盘数据分析与机器学习实战详解:从数据清洗到模型优化
java·人工智能·机器学习·数据挖掘·数据分析