[基本功]支持向量机(SVM)理论知识
本文参考李航的《统计学习方法》撰写
文章目录
- 一、SVM的主要特征
- 二、硬间隔SVM(线性可分支持向量机)
- 训练目标
- 对偶算法进行学习
- 三、软间隔SVM(线性支持向量机)
- 训练目标
- 对偶算法进行学习
- 合页损失函数
- 四、非线性SVM(线性不可分支持向量机)
- 简要介绍
- 常用核函数
- 训练算法
一、SVM的主要特征
- 二分类模型
- 定义在特征空间上的间隔最大的线性分类器(间隔最大使它有别于感知机)
- 判别模型,与概率无关
- SVM有三宝,间隔、对偶、核技巧
- 核技巧可以使SVM成为实质上的非线性分类器
二、硬间隔SVM(线性可分支持向量机)
训练目标
假设给定一个训练数据集:
T={(x1,y1),(x2,y2),...,(xN,yN)}T=\{(x_1,y1),(x_2,y_2),...,(x_N,y_N)\} T={(x1,y1),(x2,y2),...,(xN,yN)}
其中,xi∈X=Rnx_i \in X=R^nxi∈X=Rn,yi∈Y={+1,−1}y_i \in Y = \{+1,-1\}yi∈Y={+1,−1}
对于线性可分的数据,我们想要得到的分类器:
f(w)=sign(wx+b)f(w)=sign(wx+b) f(w)=sign(wx+b)
wx+b=0wx+b=0wx+b=0就是分离超平面。于是我们需要训练得到该模型的参数,也就是w和b。
这里介绍两个概念,分别是函数间隔和几何间隔:
函数间隔:
超平面(w,b)关于样本点(xi,yi)(x_i,y_i)(xi,yi)的函数间隔为γi^=yi(w⋅xi+b)\hat{\gamma_i}=y_i(w·x_i+b)γi^=yi(w⋅xi+b)
超平面(w,b)关于训练数据集TTT的函数间隔为γ^=minγi^\hat{\gamma}=min\hat{\gamma_i}γ^=minγi^
几何间隔:
超平面(w,b)关于样本点(xi,yi)(x_i,y_i)(xi,yi)的几何间隔为γi=yi(w∣∣w∣∣xi+b∣∣w∣∣)\gamma_i=y_i(\frac{w}{||w||}x_i+\frac{b}{||w||})γi=yi(∣∣w∣∣wxi+∣∣w∣∣b)
超平面(w,b)关于训练数据集TTT的几何间隔为γ=minγi\gamma = min\gamma_iγ=minγi
SVM的训练目标是①能够正确划分训练数据集②使几何间隔最大(硬间隔最大化),整理成数学形式就是:
maxw,bγs.t.yi∗1∣∣w∣∣(w⋅xi+b)>=γmax_{w,b}\gamma \\s.t.\; y_i * \frac{1}{||w||}(w·x_i+b)>=\gamma maxw,bγs.t.yi∗∣∣w∣∣1(w⋅xi+b)>=γ
也就等价于:
maxw,bγ^∣∣w∣∣s.t.yi(w⋅xi+b)>=γ^max_{w,b} \frac{\hat{\gamma}}{||w||} \\s.t.\;y_i(w·x_i+b)>=\hat{\gamma} maxw,b∣∣w∣∣γ^s.t.yi(w⋅xi+b)>=γ^
注意到函数间隔γ^\hat{\gamma}γ^的取值并不影响优化问题的解,不妨取1代入,并将最大化1∣∣w∣∣\frac{1}{||w||}∣∣w∣∣1等价替换成最小化12∣∣w∣∣2\frac{1}{2}||w||^221∣∣w∣∣2
minw,b12∣∣w∣∣2s.t.yi(w⋅xi+b)−1>=0min_{w,b} \frac{1}{2}||w||^2 \\s.t.\;y_i(w·x_i+b)-1>=0 minw,b21∣∣w∣∣2s.t.yi(w⋅xi+b)−1>=0
这是一个凸二次规划问题(目标函数为二次函数;约束函数是线性函数)。
这里再介绍两个概念:
支持向量:
在线性可分情况下,训练数据集的样本点中与分离超平面距离最近的样本点的实例。
即使yi(w⋅xi+b)−1=0y_i(w·x_i+b)-1=0yi(w⋅xi+b)−1=0成立的点
在决定分离超平面时只有支持向量起作用,其他实例点并不起作用,故该模型称为支持向量机
间隔:
w⋅x+b=1w·x+b=1w⋅x+b=1和w⋅x+b=−1w·x+b=-1w⋅x+b=−1的距离,等于2∣∣w∣∣\frac{2}{||w||}∣∣w∣∣2
对偶算法进行学习
对偶算法:为了求解SVM的最优化问题,将其作为原始问题,应用拉格朗日对偶性,通过求解对偶问题得到原始问题的最优解
对偶目的:①对偶问题往往更容易求解;②自然引入核函数,推广到非线性分类问题
步骤:
1、构建拉格朗日函数:
L(w,b,α)=12∣∣w∣∣2−∑i=1Nαiyi(w⋅xi+b)+∑i=1Nαi其中αi>=0L(w,b,\alpha)=\frac{1}{2}||w||^2-\sum_{i=1}^N\alpha_iy_i(w·x_i+b)+\sum_{i=1}^{N}\alpha_i \\其中\alpha_i>=0 L(w,b,α)=21∣∣w∣∣2−i=1∑Nαiyi(w⋅xi+b)+i=1∑Nαi其中αi>=0
2、原始问题(极小极大问题):
minw,bmaxαL(w,b,α)s.t.αi>=0min_{w,b}max_{\alpha}L(w,b,\alpha) \\s.t. \alpha_i >= 0 minw,bmaxαL(w,b,α)s.t.αi>=0
3、对偶问题(极大极小问题):
maxαminw,bL(w,b,α)s.t.αi>=0max_{\alpha}min_{w,b}L(w,b,\alpha) \\s.t.\alpha_i>=0 maxαminw,bL(w,b,α)s.t.αi>=0
4、求minw,bL(w,b,α)min_{w,b}L(w,b,\alpha)minw,bL(w,b,α): 令偏导数为0:
∇wL(w,b,α)=w−∑i=1Nαiyixi=0\nabla_{w}L(w,b,\alpha)=w-\sum_{i=1}^N\alpha_iy_ix_i=0 ∇wL(w,b,α)=w−i=1∑Nαiyixi=0∇bL(w,b,α)=−∑i=1Nαiyi=0\nabla_bL(w,b,\alpha)=-\sum_{i=1}^N\alpha_iy_i=0 ∇bL(w,b,α)=−i=1∑Nαiyi=0
得到:
w=∑i=1Nαiyixi∑i=1Nαiyi=0w=\sum_{i=1}^N\alpha_iy_ix_i \\\sum_{i=1}^N\alpha_iy_i=0 w=i=1∑Nαiyixii=1∑Nαiyi=0
代入拉格朗日函数,得到:
L(w,b,α)=12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαiyi((∑j=1Nαjyjxj)⋅xi+b)+∑i=1Nαi=−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1NαiL(w,b,\alpha)=\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i·x_j)-\sum_{i=1}^N\alpha_iy_i((\sum_{j=1}^N\alpha_jy_jx_j)·x_i+b)+\sum_{i=1}^N\alpha_i \\=-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i·x_j)+\sum_{i=1}^N\alpha_i L(w,b,α)=21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαiyi((j=1∑Nαjyjxj)⋅xi+b)+i=1∑Nαi=−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαi
即:
minw,bL(w,b,α)=−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαimin_{w,b}L(w,b,\alpha)=-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i·x_j)+\sum_{i=1}^N\alpha_i minw,bL(w,b,α)=−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαi
5、求maxαminw,bL(w,b,α)max_{\alpha}min_{w,b}L(w,b,\alpha)maxαminw,bL(w,b,α),即对偶问题:
maxα−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαis.t.αi>=0,∑i=1Nαiyi=0max_{\alpha}-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i·x_j)+\sum_{i=1}^N\alpha_i \\s.t.\;\alpha_i>=0\;,\;\\\sum_{i=1}^N\alpha_iy_i=0 maxα−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαis.t.αi>=0,i=1∑Nαiyi=0
等价于:
⭐minα12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαis.t.αi>=0,∑i=1Nαiyi=0⭐min_{\alpha}\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i·x_j)-\sum_{i=1}^N\alpha_i \\s.t.\;\alpha_i>=0\;,\;\\\sum_{i=1}^N\alpha_iy_i=0 ⭐minα21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαis.t.αi>=0,i=1∑Nαiyi=0
⭐可由此求得最优解α∗\alpha^*α∗6、由于强对偶关系成立,故满足KKT条件,故可由KKT条件(下面有详细说明)求得w,bw,bw,b的值:
∇wL(w∗,b∗,α∗)=w∗−∑i=1Nαi∗yixi=0∇bL(w∗,b∗,α∗)=−∑i=1Nαi∗yi=0αi∗(yi(w∗⋅xi+b∗)−1)=0yi(w∗⋅xi+b∗)−1>=0αi∗>=0\nabla_wL(w^*,b^*,\alpha^*)=w^*-\sum_{i=1}^N\alpha_i^*y_ix_i=0 \\\nabla_bL(w^*,b^*,\alpha^*)=-\sum_{i=1}^N\alpha_i^*y_i=0 \\\alpha_i^*(y_i(w^*·x_i+b^*)-1)=0 \\y_i(w^*·x_i+b^*)-1>=0 \\\alpha_i^*>=0 ∇wL(w∗,b∗,α∗)=w∗−i=1∑Nαi∗yixi=0∇bL(w∗,b∗,α∗)=−i=1∑Nαi∗yi=0αi∗(yi(w∗⋅xi+b∗)−1)=0yi(w∗⋅xi+b∗)−1>=0αi∗>=0
由此得:
⭐w∗=∑iαi∗yixi⭐w^*=\sum_i\alpha_i^*y_ix_i ⭐w∗=i∑αi∗yixi
至少有一个αj∗>0\alpha_j^*>0αj∗>0(假设α∗=0\alpha^*=0α∗=0,则w∗=0w^*=0w∗=0,显然不行),故有对应的:
yj(w∗⋅xj+b∗)−1=0y_j(w^*·x_j+b^*)-1=0 yj(w∗⋅xj+b∗)−1=0⭐b∗=yj−w∗⋅xj=yj−∑i=1Nαi∗yi(xi⋅xj)⭐b^* = y_j-w^*·x_j=y_j-\sum_{i=1}^N\alpha_i^*y_i(x_i·x_j) ⭐b∗=yj−w∗⋅xj=yj−i=1∑Nαi∗yi(xi⋅xj)
7、得到分离超平面:
⭐∑i=1Nαi∗yi(x⋅xi)+b∗=0⭐\sum_{i=1}^N\alpha_i^*y_i(x·x_i)+b^*=0 ⭐i=1∑Nαi∗yi(x⋅xi)+b∗=0
得到分类决策函数:
⭐f(x)=sign(∑i=1Nαi∗yi(x⋅xi)+b∗)⭐f(x)=sign(\sum_{i=1}^N\alpha_i^*y_i(x·x_i)+b^*) ⭐f(x)=sign(i=1∑Nαi∗yi(x⋅xi)+b∗)
可以发现,分类决策函数只依赖于输入x和训练样本输入的内积,且只受支持向量((αi∗>0\alpha_i^*>0αi∗>0)的样本点)影响。8、小结:
对于线性可分训练数据集,首先求对偶问题的解α∗\alpha^*α∗,再利用KKT条件求得w∗,b∗w^*,b^*w∗,b∗,从而得到分离超平面及分类决策函数。
原始问题和对偶问题的关系:
弱对偶关系:
minmaxL>=maxminLmin\;maxL>=max\;minL minmaxL>=maxminL强对偶关系:
maxminL=minmaxLmax\;minL=min\;maxL maxminL=minmaxL补充定理:
- 假设原问题为:
minxf(x)s.t.ci(x)<=0,hj(x)=0min_xf(x) \\s.t. \;c_i(x)<=0\;,\\h_j(x)=0 minxf(x)s.t.ci(x)<=0,hj(x)=0
拉格朗日函数为:
L(x,α,β)=f(x)+∑i=1kαici(x)+∑j=1lβjhj(x)L(x,\alpha,\beta)=f(x)+\sum_{i=1}^k\alpha_ic_i(x)+\sum_{j=1}^l\beta_jh_j(x) L(x,α,β)=f(x)+i=1∑kαici(x)+j=1∑lβjhj(x)定理1:如果①f(x)f(x)f(x)和xi(x)x_i(x)xi(x)是凸函数,hj(x)h_j(x)hj(x)是仿射函数;②不等式约束ci(x)c_i(x)ci(x)严格可行(存在xxx,对所有iii有ci(x)<0c_i(x)<0ci(x)<0),那么存在x∗,α∗,β∗x^*,\alpha^*,\beta^*x∗,α∗,β∗使得x∗x^*x∗是原问题的解,α∗,β∗\alpha^*,\beta^*α∗,β∗为对偶问题的解,且p∗=d∗=L(x∗,α∗,β∗)p^*=d^*=L(x^*,\alpha^*,\beta^*)p∗=d∗=L(x∗,α∗,β∗)
定理2:假设f(x)f(x)f(x)和xi(x)x_i(x)xi(x)是凸函数,hj(x)h_j(x)hj(x)是仿射函数,并且不等式约束ci(x)c_i(x)ci(x)严格可行,则x∗,α∗,β∗x^*,\alpha^*,\beta^*x∗,α∗,β∗分别是原始问题和对偶问题的解的充分必要条件是x∗,α∗,β∗x^*,\alpha^*,\beta^*x∗,α∗,β∗满足以下KKT条件:
∇xL(x∗,α∗,β∗)=0αi∗ci(x∗)=0ci(x∗)<=0αi∗>=0hj(x∗)=0\nabla_xL(x^*,\alpha^*,\beta^*)=0 \\\alpha_i^*c_i(x^*)=0 \\c_i(x^*)<=0 \\\alpha_i^*>=0 \\h_j(x^*)=0 ∇xL(x∗,α∗,β∗)=0αi∗ci(x∗)=0ci(x∗)<=0αi∗>=0hj(x∗)=0
简单来说,若原始问题满足定理1,即可使得强对偶关系成立,即原问题和对偶问题等价
三、软间隔SVM(线性支持向量机)
训练目标
针对:假设训练数据集不是线性可分的,通常情况是训练数据中有一些特异点,将这些特异点取出后,剩下大部分的样本点组成的集合是线性可分的。
线性不可分意味着某些样本点(xi,yi)(x_i,y_i)(xi,yi)不能满足函数间隔大于等于1的约束条件。对此,可以对每个样本点引进一个松弛变量ξi>=0\xi_i>=0ξi>=0,使得函数间隔加上松弛变量大于等于1。约束条件变为yi(w⋅xi+b)>=1−ξiy_i(w·x_i+b)>=1-\xi_iyi(w⋅xi+b)>=1−ξi
对每个松弛变量支付一个代价。目标函数变为12∣∣w∣∣2+C∑i=1Nξi\frac{1}{2}||w||^2+C\sum_{i=1}^N\xi_i21∣∣w∣∣2+C∑i=1Nξi。C>0C>0C>0称为惩罚参数。这样目标函数最小化:①使间隔尽量大;②误分类点的个数尽量小
故原始问题:(w解唯一,b解可能不唯一,而是存在于一个区间)
minw,b,ξ12∣∣w∣∣2+C∑i=1Nξis.t.yi(w⋅xi+b)>=1−ξiξi>=0min_{w,b,\xi}\frac{1}{2}||w||^2+C\sum_{i=1}^N\xi_i \\s.t.\;y_i(w·x_i+b)>=1-\xi_i \\\xi_i>=0 minw,b,ξ21∣∣w∣∣2+Ci=1∑Nξis.t.yi(w⋅xi+b)>=1−ξiξi>=0
对偶算法进行学习
步骤:
1、拉格朗日函数:
L(w,b,ξ,α,μ)=12∣∣w∣∣2+C∑i=1Nξi−∑i=1Nαi(yi(w⋅xi+b)−1+ξi)−∑i=1Nμiξi其中,αi>=0,μi>=0L(w,b,\xi,\alpha,\mu)=\frac{1}{2}||w||^2+C\sum_{i=1}^N\xi_i-\sum_{i=1}^N\alpha_i(y_i(w·x_i+b)-1+\xi_i)-\sum_{i=1}^N\mu_i\xi_i \\其中,\alpha_i>=0,\mu_i>=0 L(w,b,ξ,α,μ)=21∣∣w∣∣2+Ci=1∑Nξi−i=1∑Nαi(yi(w⋅xi+b)−1+ξi)−i=1∑Nμiξi其中,αi>=0,μi>=0
2、求minw,b,ξL(w,b,ξ,α,μ)min_{w,b,\xi}L(w,b,\xi,\alpha,\mu)minw,b,ξL(w,b,ξ,α,μ)
∇wL(w,b,ξ,α,μ)=w−∑i=1Nαiyixi=0∇bL(w,b,ξ,α,μ)=−∑i=1Nαiyi=0∇ξiL(w,b,ξ,α,μ)=C−αi−μi=0\nabla_wL(w,b,\xi,\alpha,\mu)=w-\sum_{i=1}^N\alpha_iy_ix_i=0 \\\nabla_bL(w,b,\xi,\alpha,\mu)=-\sum_{i=1}^N\alpha_iy_i=0 \\\nabla_{\xi_i}L(w,b,\xi,\alpha,\mu)=C-\alpha_i-\mu_i=0 ∇wL(w,b,ξ,α,μ)=w−i=1∑Nαiyixi=0∇bL(w,b,ξ,α,μ)=−i=1∑Nαiyi=0∇ξiL(w,b,ξ,α,μ)=C−αi−μi=0
故有:
minw,b,ξL(w,b,ξ,α,μ)=−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαimin_{w,b,\xi}L(w,b,\xi,\alpha,\mu)=-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i·x_j)+\sum_{i=1}^N\alpha_i minw,b,ξL(w,b,ξ,α,μ)=−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαi
3、再对α\alphaα求极大即可得到对偶问题:
minα12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαis.t.∑i=1Nαiyi=00<=αi<=Cmin_\alpha\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i·x_j)-\sum_{i=1}^N\alpha_i \\s.t.\;\sum_{i=1}^N\alpha_iy_i=0 \\0<=\alpha_i<=C minα21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαis.t.i=1∑Nαiyi=00<=αi<=C
据此可求得α∗=(α1∗,α2∗,...,αN∗)T\alpha^*=(\alpha_1^*,\alpha_2^*,...,\alpha_N^*)Tα∗=(α1∗,α2∗,...,αN∗)T4、根据KKT条件求得w∗,b∗w^*,b^*w∗,b∗:
∇wL(w∗,b∗,ξ∗,α∗,μ∗)=w∗−∑i=1Nαi∗yixi=0∇bL(w∗,b∗,ξ∗,α∗,μ∗)=−∑i=1Nαi∗yi=0∇ξiL(w∗,b∗,ξ∗,α∗,μ∗)=C−αi∗−μi∗=0αi∗(yi(w∗⋅xi+b∗)−1+ξi∗)=0μi∗ξi∗=0yi(w∗⋅xi+b∗)−1+ξi∗>=0ξi∗>=0αi∗>=0μi∗>=0\nabla_wL(w^*,b^*,\xi^*,\alpha^*,\mu^*)=w^*-\sum_{i=1}^N\alpha_i^*y_ix_i=0 \\\nabla_bL(w^*,b^*,\xi^*,\alpha^*,\mu^*)=-\sum_{i=1}^N\alpha_i^*y_i=0 \\\nabla_{\xi_i}L(w^*,b^*,\xi^*,\alpha^*,\mu^*)=C-\alpha_i^*-\mu_i^*=0 \\\alpha_i^*(y_i(w^*·x_i+b^*)-1+\xi_i^*)=0 \\\mu_i^*\xi_i^*=0 \\y_i(w^*·x_i+b^*)-1+\xi_i^*>=0 \\\xi_i^*>=0 \\\alpha_i^*>=0 \\\mu_i^*>=0 ∇wL(w∗,b∗,ξ∗,α∗,μ∗)=w∗−i=1∑Nαi∗yixi=0∇bL(w∗,b∗,ξ∗,α∗,μ∗)=−i=1∑Nαi∗yi=0∇ξiL(w∗,b∗,ξ∗,α∗,μ∗)=C−αi∗−μi∗=0αi∗(yi(w∗⋅xi+b∗)−1+ξi∗)=0μi∗ξi∗=0yi(w∗⋅xi+b∗)−1+ξi∗>=0ξi∗>=0αi∗>=0μi∗>=0w∗=∑i=1Nαi∗yixib∗=yj−∑i=1Nyiαi∗(xi⋅xj)其中(xj,yj)为0<αj∗<C对应的样本点w^*=\sum_{i=1}^N\alpha_i^*y_ix_i \\b^*=y_j-\sum_{i=1}^Ny_i\alpha_i^*(x_i·x_j) \\其中(x_j,y_j)为0<\alpha_j^*<C对应的样本点 w∗=i=1∑Nαi∗yixib∗=yj−i=1∑Nyiαi∗(xi⋅xj)其中(xj,yj)为0<αj∗<C对应的样本点
5、分类超平面:
∑i=1Nαi∗yi(x⋅xi)+b∗=0\sum_{i=1}^N\alpha_i^*y_i(x·x_i)+b^*=0 i=1∑Nαi∗yi(x⋅xi)+b∗=0
分类决策函数:
f(x)=sign(∑i=1Nαi∗yi(x⋅xi)+b∗)f(x)=sign(\sum_{i=1}^N\alpha_i^*y_i(x·x_i)+b^*) f(x)=sign(i=1∑Nαi∗yi(x⋅xi)+b∗)
软间隔的支持向量或者在间隔边界上,或者在间隔边界与分离超平面之间,或者在分离超平面误分一侧。若αi∗<C\alpha_i^*<Cαi∗<C,则ξi=0\xi_i=0ξi=0,样本点恰好落在间隔边界上;若αi∗=0\alpha_i^*=0αi∗=0,则该样本点不是支持向量;若αi∗=C,0<ξi<1\alpha_i^*=C,0<\xi_i<1αi∗=C,0<ξi<1,则分类正确,样本点在间隔边界和分离超平面之间;若αi∗=C,ξi=1\alpha_i^*=C,\xi_i=1αi∗=C,ξi=1,则样本点落在分离超平面上;若αi∗=C,ξi>1\alpha_i^*=C,\xi_i>1αi∗=C,ξi>1,则样本点落在分离超平面误分一侧
合页损失函数
线性支持向量机的另一种解释,最小化以下目标函数:
∑i=1N[1−yi(w⋅xi+b)]++λ∣∣w∣∣2\sum_{i=1}^N[1-y_i(w·x_i+b)]_++\lambda||w||^2 i=1∑N[1−yi(w⋅xi+b)]++λ∣∣w∣∣2
第一项为经验损失或经验风险;第二项是系数为λ\lambdaλ的www的L2L_2L2范数,是正则化项
- 合页损失函数(hinge loss function):
L(y(w⋅x+b))=[1−y(w⋅x+b)]+L(y(w·x+b))=[1-y(w·x+b)]_+ L(y(w⋅x+b))=[1−y(w⋅x+b)]+
- 下标“+”表示:
[z]+={z,z>00,z<=0[z]_+= \begin{cases} z,z>0 \\0,z<=0 \end{cases} [z]+={z,z>00,z<=0
含义:当样本点(xi,yi)(x_i,y_i)(xi,yi)被正确分类且函数间隔yi(w⋅xi+b)>1y_i(w·x_i+b)>1yi(w⋅xi+b)>1时,损失是0,否则损失是1−yi(w⋅xi+b)1-y_i(w·x_i+b)1−yi(w⋅xi+b)
合页损失函数形状像一个合页,故名
与0-1损失函数相比:0-1损失函数是二分类问题真正的损失函数,二合页损失函数是其上界。由于0-1损失函数不是连续可导的,直接优化其目标函数比较困难,可以认为线性支持向量机是优化由0-1损失函数的上界(合页损失函数)构成的目标函数。这里的上界损失函数又称为代理损失函数。
与虚线的损失函数[−yi(w⋅xi+b)]+[-y_i(w·x_i+b)]_+[−yi(w⋅xi+b)]+相比:虚线当样本点被正确分类时,损失是0,否则损失是−yi(w⋅xi+b)-y_i(w·x_i+b)−yi(w⋅xi+b)。相比之下,合页损失函数不仅要分类正确,而且确信度足够高时损失才是0。也就是说,合页损失函数对学习有更高的要求。
四、非线性SVM(线性不可分支持向量机)
简要介绍
- 核技巧不仅应用于支持向量机,也应用于其它统计学习问题
- 如果能用一个超曲面将正负例正确分开,则称这个问题为非线性可分问题
- 核技巧概述:首先用一个变换将原空间的数据映射到新空间;然后在新空间里用线性分类学习方法训练模型
核函数定义:设XXX是输入空间,HHH为特征空间,如果存在一个从XXX到HHH的映射
ϕ(x)=X→H\phi(x)=X→H ϕ(x)=X→H
使得对所有x,z∈Xx,z\in Xx,z∈X,函数K(x,z)K(x,z)K(x,z)满足条件:
K(x,z)=ϕ(x)⋅ϕ(z)K(x,z)=\phi(x)·\phi(z) K(x,z)=ϕ(x)⋅ϕ(z)
则称K(x,z)K(x,z)K(x,z)为核函数,ϕ(x)\phi(x)ϕ(x)为映射函数。核技巧想法:只定义核函数K(x,z)K(x,z)K(x,z),而不显式定义ϕ\phiϕ。通常直接计算K(x,z)K(x,z)K(x,z)更容易。
对于给定的核函数,特征空间和映射函数的取法并不唯一
注意到在线性支持向量机的对偶问题中,无论是目标函数还是决策函数(分离超平面)都只涉及输入实例和实例之间的内积,用核函数代替内积的对偶问题的目标函数为:
W(α)=12∑i=1N∑j=1NαiαjyiyjK(xi,xj)−∑i=1NαiW(\alpha)=\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jK(x_i,x_j)-\sum_{i=1}^N\alpha_i W(α)=21i=1∑Nj=1∑NαiαjyiyjK(xi,xj)−i=1∑Nαi
用核函数代替内积的决策函数:
f(x)=sign(∑i=1Nαi∗yiK(xi,x)+b∗)f(x)=sign(\sum_{i=1}^N\alpha_i^*y_iK(x_i,x)+b^*) f(x)=sign(i=1∑Nαi∗yiK(xi,x)+b∗)
等价于将原来的输入空间变换到一个新的特征空间,在新的特征空间里训练线性支持向量机。当映射函数是非线性函数时,学习到的含有核函数的支持向量机是非线性分类模型
在实际应用中,往往依赖领域知识直接选择核函数,核函数选择的有效性需要通过实验验证。
函数K(x,z)K(x,z)K(x,z)需要满足什么条件才能成为核函数?
- 通常所说的核函数就是正定核函数
- 正定核的充要条件:设K:X∗X→RK:X*X→RK:X∗X→R是对称函数,则K(x,z)K(x,z)K(x,z)为正定核函数的充要条件是对任意xi∈Xx_i \in Xxi∈X,K(x,z)K(x,z)K(x,z)对应的Gram矩阵K=[K(xi,xj)]m∗mK=[K(x_i,x_j)]_{m*m}K=[K(xi,xj)]m∗m是半正定矩阵
- 但对一个具体函数来说,验证它是否为正定核函数并不容易。在实际问题中往往应用已有的核函数
常用核函数
1、多项式核函数
K(x,z)=(x⋅z+1)pK(x,z)=(x·z+1)^p K(x,z)=(x⋅z+1)p
对应的支持向量机是一个p次多项式分类器
分类决策函数:
f(x)=sign(∑i=1Nαi∗yi(xi⋅x+1)p+b∗)f(x)=sign(\sum_{i=1}^N\alpha_i^*y_i(x_i·x+1)^p+b^*) f(x)=sign(i=1∑Nαi∗yi(xi⋅x+1)p+b∗)
2、高斯核函数
K(x,z)=exp(−∣∣x−z∣∣22σ2)K(x,z)=exp(-\frac{||x-z||^2}{2\sigma^2}) K(x,z)=exp(−2σ2∣∣x−z∣∣2)
对应的支持向量机是高斯径向基函数分类器
分类决策函数:
f(x)=sign(∑i=1Nαi∗yiexp(−∣∣x−z∣∣22σ2)+b∗)f(x)=sign(\sum_{i=1}^N\alpha_i^*y_iexp(-\frac{||x-z||^2}{2\sigma^2})+b^*) f(x)=sign(i=1∑Nαi∗yiexp(−2σ2∣∣x−z∣∣2)+b∗)
训练算法
输入:训练数据集T={(x1,y1),(x2,y2),...,(xN,yN)}T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\}T={(x1,y1),(x2,y2),...,(xN,yN)}
输出:分类决策函数
算法:
(1)选取适当的(正定)核函数K(x,z)K(x,z)K(x,z)和适当的参数C,构造并求解最优化问题:
minα12∑i=1N∑j=1NαiαjyiyjK(xi,xj)−∑i=1Nαis.t.∑i=1Nαiyi=00<=αi<=Cmin_\alpha\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jK(x_i,x_j)-\sum_{i=1}^N\alpha_i \\s.t.\;\sum_{i=1}^N\alpha_iy_i=0 \\0<=\alpha_i<=C minα21i=1∑Nj=1∑NαiαjyiyjK(xi,xj)−i=1∑Nαis.t.i=1∑Nαiyi=00<=αi<=C
求得最优解α∗=(α1∗,α2∗,...,αN∗)T\alpha^*=(\alpha_1^*,\alpha_2^*,...,\alpha_N^*)Tα∗=(α1∗,α2∗,...,αN∗)T
(2)选择α∗\alpha^*α∗的一个正分量0<αj∗<C0<\alpha_j^*<C0<αj∗<C,计算
b∗=yj−∑i=1Nαi∗yiK(xi,xj)b^*=y_j-\sum_{i=1}^N\alpha_i^*y_iK(x_i,x_j) b∗=yj−i=1∑Nαi∗yiK(xi,xj)
(3)构造决策函数:
f(x)=sign(∑i=1Nαi∗yiK(x,xi)+b∗)f(x)=sign(\sum_{i=1}^N\alpha_i^*y_iK(x,x_i)+b^*) f(x)=sign(i=1∑Nαi∗yiK(x,xi)+b∗)
[基本功]支持向量机(SVM)理论知识相关推荐
- 【机器学习算法-python实现】svm支持向量机(1)—理论知识介绍
(转载请注明出处:http://blog.csdn.net/buptgshengod) 1.背景 强烈推荐阅读(http://www.cnblogs.com/jerrylead/archiv ...
- 影像组学视频学习笔记(11)-支持向量机(SVM)(理论)、Li‘s have a solution and plan.
本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(11)主要介绍: SVM支持向量机(理论) 支持向量机 (support vector machine, SVM) 号称是鲁棒性(rob ...
- <机器学习>支持向量机(SVM)理论
1.概念 支持向量机(support vector machines,SVM)是一种二类分类模型.它的基本模型是定义在特征空间上的间隔最大的线性分类器:同时,支持向量机包括的核技巧使它成为实质上的非线 ...
- svm多分类_人工智能科普|机器学习重点知识——支持向量机SVM
作为模式识别或者机器学习的爱好者,同学们一定听说过支持向量机这个概念,这可是一个,在机器学习中避不开的重要问题. 其实关于这个知识点,有一则很通俗有趣的传说: 很久以前,一个村庄里住着一位退隐的大侠, ...
- 最小二乘法支持向量机一般用在什么场合_人工智能科普|机器学习重点知识——支持向量机SVM...
作为模式识别或者机器学习的爱好者,同学们一定听说过支持向量机这个概念,这可是一个,在机器学习中避不开的重要问题. 其实关于这个知识点,有一则很通俗有趣的传说: 很久以前,一个村庄里住着一位退隐的大侠, ...
- 支持向量机SVM 参数选择
http://ju.outofmemory.cn/entry/119152 http://www.cnblogs.com/zhizhan/p/4412343.html 支持向量机SVM是从线性可分情况 ...
- 支持向量机SVM(Support Vector Machines)介绍
支持向量机SVM是从线性可分情况下的最优分类面提出的.所谓最优分类,就是要求分类线不但能够将两类无错误的分开,而且两类之间的分类间隔最大,前者是保证经验风险最小(为0),而通过后面的讨论我们看到,使分 ...
- 机器学习中的算法-支持向量机(SVM)基础
机器学习中的算法-支持向量机(SVM)基础 版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处 ...
- 全面的SVM理论讲解
转载自:https://blog.csdn.net/v_july_v/article/details/7624837 前言 动笔写这个支持向量机(support vector machine)是费了不 ...
- 学习July博文总结——支持向量机(SVM)的深入理解(上)
前言 本文是参照CSDN的July大神的热门博文<支持向量机通俗导论(理解SVM的三层境界>)写的.目的是因为July大神文中说,SVM理论的理解,需要一遍一遍的推导公式,直到脑中梳理下来 ...
最新文章
- 2022-2028年中国海水养殖行业市场研究及前瞻分析报告
- 用户密码加密存储十问十答,一文说透密码安全存储
- 上周那个 iPad还没送出去呢!
- Spring管理Strust的Action
- css:text-align:justify的用法
- 视觉激光融合——VLOAM / LIMO算法解析
- 简单的python流回显服务器与客户端
- Java如何判断整数溢出,溢出后怎么得到提示?
- 车牌颜色识别现在的结果
- git push提交时卡住
- JavaScript课堂笔记!
- 浏览器主页被更改成7654主页
- leetcode | 整数反转
- 批流融合系统-SparkV2/Beam
- 安卓手机按键精灵Python封装
- python中in是什么意思中文_python中的in是什么意思
- 超百万观众同场看直播流畅不卡顿,快手如何做到的?|首次披露
- AD 删除原理图图纸外的器件
- 如何通过文献查找该文献的代码
- grant all privileges on
热门文章
- NR RLC Protocol General and Procedure
- scratch(图形化编程工具)做一个贪吃蛇的游戏(包含视频讲解+源码)!
- 计算机开机屏幕英语,电脑开机进不了系统,屏幕一堆英文数字怎么办?别急有方法...
- mysql查询1971年以前_mysql 初篇
- 最全-python教程示例大全 同步学习
- 重定向解决国外服务器与国内域名备案的问题
- 数据库系统概论练习3
- JDBC数据库连接测试工具
- 明翰经验系列之管理篇V1.1(持续更新)
- 定理在数学中的简写形式_高中数学联赛常用定理