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+γ∣∣w∣∣w, 同乘wTw^{T}wT, wTx=wTx0+γwTw∣∣w∣∣w^{T}x=w^{T}x_{0}+\gamma w^{T} \frac{w}{||w||}wTx=wTx0+γwT∣∣w∣∣w。因为wTx0=−bw^{T}x_{0}=-bwTx0=−b,所以可以化解为wTx+b=γ∣∣w∣∣2∣∣w∣∣w^{T}x+b=\gamma\frac{||w||^{2}}{||w||}wTx+b=γ∣∣w∣∣∣∣w∣∣2,可以得到γ=f(x)∣∣w∣∣\gamma=\frac{f(x)}{||w||}γ=∣∣w∣∣f(x),这里我们只关心那些分类正确的点tnf(xn)∣∣w∣∣,tnf(xn)⩾1\frac{t_{n}f(x_{n})}{||w||},t_{n}f(x_{n}) \geqslant 1∣∣w∣∣tnf(xn),tnf(xn)⩾1。所以我们就有了目标函数max1∣∣w∣∣=min0.5∗∣∣w∣∣2max\frac{1}{||w||}=min 0.5*||w||^{2}max∣∣w∣∣1=min0.5∗∣∣w∣∣2 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)tn⩾1,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)=21∣∣w∣∣2−n=1∑Nan((wTϕ(xn)+b)tn−1)
- 首先固定aaa,让L分别对w和b求偏导等于0得到w=∑n=1Nantnϕ(xn)w=\sum_{n=1}^{N}a_{n}t_{n}\phi(x_{n})w=n=1∑Nantnϕ(xn) ∑n=1Nantn=0\sum_{n=1}^{N}a_{n}t_{n}=0n=1∑Nantn=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=1∑Nan−21n=1∑Nm=1∑NanamtntmK(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=1∑Nan−21n=1∑Nm=1∑NanamtntmK(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. an⩾0,n=1∑Nantn=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 0an⩾0 tnf(xn)−1⩾0t_{n}f(x_{n})-1 \geqslant 0tnf(xn)−1⩾0 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{m∈S∑amtmK(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{m∈S∑amtmK(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=NS1n∈S∑{tn−m∈S∑amtmK(xn,xm)}