机器学习面试必知:一文理解支持向量机(SVM)

本文详细解析了SVM支持向量机的工作原理,包括决策距离最大化的数学推导,核函数的引入,以及对偶问题的求解过程。通过求解目标函数,得到最优分类超平面,实现数据分类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 首先我们要是决策距离最大化

  • 我们先来求点xxx到一个超平面f(x)=wTx+bf(x)=w^{T}x+bf(x)=wTx+b的距离:
    假设有一点xxx,垂直投影到超平面上对应点为x0x_{0}x0, www是垂直于超平面的一个向量, γ\gammaγ为样本xxx到超平面的距离。易知x=x0+γw∣∣w∣∣x=x_{0}+\gamma \frac{w}{||w||}x=x0+γww, 同乘wTw^{T}wT, wTx=wTx0+γwTw∣∣w∣∣w^{T}x=w^{T}x_{0}+\gamma w^{T} \frac{w}{||w||}wTx=wTx0+γwTww。因为wTx0=−bw^{T}x_{0}=-bwTx0=b,所以可以化解为wTx+b=γ∣∣w∣∣2∣∣w∣∣w^{T}x+b=\gamma\frac{||w||^{2}}{||w||}wTx+b=γww2,可以得到γ=f(x)∣∣w∣∣\gamma=\frac{f(x)}{||w||}γ=wf(x),这里我们只关心那些分类正确的点tnf(xn)∣∣w∣∣,tnf(xn)⩾1\frac{t_{n}f(x_{n})}{||w||},t_{n}f(x_{n}) \geqslant 1wtnf(xn),tnf(xn)1。所以我们就有了目标函数max1∣∣w∣∣=min0.5∗∣∣w∣∣2max\frac{1}{||w||}=min 0.5*||w||^{2}maxw1=min0.5w2 s.t.(wTϕ(xn)+b)tn⩾1,n=1,...,N\mathrm{s.t.} (w^{T}\phi(x_{n})+b) t_{n} \geqslant 1, n=1,...,Ns.t.(wTϕ(xn)+b)tn1,n=1,...,N

  • 为了更好地引出核函数,我们假设先对x做了一个预处理ϕ(x)\phi(x)ϕ(x)

2. 变换到对偶问题求解出www
L(w,a,b)=12∣∣w∣∣2−∑n=1Nan((wTϕ(xn)+b)tn−1)L(w,a,b)=\frac{1}{2}||w||^{2}-\sum_{n=1}^{N}a_{n}( (w^{T}\phi(x_{n})+b) t_{n} -1)L(w,a,b)=21w2n=1Nan((wTϕ(xn)+b)tn1)

  • 首先固定aaa,让L分别对w和b求偏导等于0得到w=∑n=1Nantnϕ(xn)w=\sum_{n=1}^{N}a_{n}t_{n}\phi(x_{n})w=n=1Nantnϕ(xn) ∑n=1Nantn=0\sum_{n=1}^{N}a_{n}t_{n}=0n=1Nantn=0将结果代入得到L(a)=∑n=1Nan−12∑n=1N∑m=1NanamtntmK(xn,xm)L(a)=\sum_{n=1}^{N}a_{n}-\frac{1}{2}\sum_{n=1}^{N}\sum_{m=1}^{N}a_{n}a_{m}t_{n}t_{m}K(x_{n},x_{m})L(a)=n=1Nan21n=1Nm=1NanamtntmK(xn,xm)
  • 求解a的极大化,其中K(xn,xm)=ϕT(xn)ϕ(xm)K(x_{n},x_{m})=\phi^{T}(x_{n})\phi(x_{m})K(xn,xm)=ϕT(xn)ϕ(xm)是核函数 max{∑n=1Nan−12∑n=1N∑m=1NanamtntmK(xn,xm)}max \left \{ \sum_{n=1}^{N}a_{n}-\frac{1}{2}\sum_{n=1}^{N}\sum_{m=1}^{N}a_{n}a_{m}t_{n}t_{m}K(x_{n},x_{m}) \right \}max{n=1Nan21n=1Nm=1NanamtntmK(xn,xm)}s.t. an⩾0,∑n=1Nantn=0,K(xn,xm)=ϕT(xn)ϕ(xm)\textbf{s.t. } a_{n}\geqslant 0,\sum_{n=1}^{N}a_{n}t_{n}=0,K(x_{n},x_{m})=\phi^{T}(x_{n})\phi(x_{m})s.t. an0,n=1Nantn=0,K(xn,xm)=ϕT(xn)ϕ(xm)

3. 求解b

  • 我们把w代入可以超平面得f(x)=∑n=1NantnK(x,xn)+bf(x)=\sum_{n=1}^{N}a_{n}t_{n}K(x,x_{n})+bf(x)=n=1NantnK(x,xn)+b利用KKT条件得到an⩾0a_{n}\geqslant 0an0 tnf(xn)−1⩾0t_{n}f(x_{n})-1 \geqslant 0tnf(xn)10 an{tnf(xn)−1}=0a_{n}\left\{ t_{n}f(x_{n})-1\right\}=0an{tnf(xn)1}=0所以只存在两种情况要吗an=0a_{n}=0an=0此时(xn,tn)(x_{n},t_{n})(xn,tn)是无关数据或者an≠0,tnf(xn)−1=0a_{n} \neq 0,t_{n}f(x_{n})-1=0an̸=0,tnf(xn)1=0此时(xn,tn)(x_{n},t_{n})(xn,tn)是决策边缘边界上的点。从这里可以看出SVM仅仅与决策边界上的数据点有关,与其余的数据点无关。假设有效的点分布在一个S空间中那么我们用支持向量xnx_{n}xn就能确定b。由tnf(xn)=1t_{n}f(x_{n})=1tnf(xn)=1我们可以得到(其中NSN_{S}NS是支持向量的总数量)tn{∑m∈SamtmK(xn,xm)+b}=1t_{n}\left\{\sum_{m\in S}a_{m}t_{m}K(x_{n},x_{m})+b\right\}=1tn{mSamtmK(xn,xm)+b}=1tn2{∑m∈SamtmK(xn,xm)+b}=tnt_{n}^{2}\left\{\sum_{m\in S}a_{m}t_{m}K(x_{n},x_{m})+b\right\}=t_{n}tn2{mSamtmK(xn,xm)+b}=tnb=1NS∑n∈S{tn−∑m∈SamtmK(xn,xm)}b=\frac{1}{N_{S}}\sum_{n\in S}\left\{t_{n}-\sum_{m\in S}a_{m}t_{m}K(x_{n},x_{m})\right\}b=NS1nS{tnmSamtmK(xn,xm)}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值