支持向量机
因为用 kkk 对 (ω,b)(\omega, b)(ω,b) 进行缩放后,即 (ω,b)(\omega, b)(ω,b) 变为 (kω,kω)(k\omega, k\omega)(kω,kω),样本 x(n)x^{(n)}x(n) 到超平面距离不发生变化,也就是系数的改变对直线并无任何实质影响,所以不管 kkk 是多少,距离 γ(n)\gamma^{(n)}γ(n) 都是不会改变的。那么现在对最特殊的,也是最近距离的支持向量 x0x_0x0,我们要求出其最大距离,因为对于 ∣ωTx0+b∣|\omega^Tx_0+b|∣ωTx0+b∣ 的缩放也好都不会改变直线的距离,因此我们通过 kkk 的缩放使得恰好满足 ∣ωTx0+b∣=1|\omega^Tx_0+b| = 1∣ωTx0+b∣=1,这里我们需要注意的是,此时的 ω\omegaω 和 bbb 为缩放调整后的 ω\omegaω 和 bbb,当然你也可以令 ∣ωTx0+b∣|\omega^Tx_0+b|∣ωTx0+b∣ 这个值为 2,3,4...2, 3, 4...2,3,4... 等等,这都无妨,我们另其为 111,主要也是为了方便,最终的目的是固定距离计算中的分子,来单独讨论分母对距离的影响。既然要固定变量,就把分子固定住,让分母去最小,就可以得到最大间距了。当我们固定了距离公式中的分子,此时支持向量与平面的距离为:
d=1∥ω∥d=\frac{1}{\|\omega\|}d=∥ω∥1
支持向量机为了最小化:∥ω∥\|\omega\|∥ω∥,目的就是为了最大化支持向量到平面的距离 ddd。
SVM处理线性问题
- 最小化
- minω,b( 12∥ω∥2)\min\limits_{\omega,b}\left( \ \frac{1}{2}\|\omega\|^2\right)ω,bmin( 21∥ω∥2)
- 限制条件s.t.
- yi[ωTxi+b]⩾1y_i\left[\omega^Tx_i+b\right] \geqslant 1yi[ωTxi+b]⩾1(i=1,2,...,Ni=1, 2, ..., Ni=1,2,...,N)
SVM处理非线性问题
- 最小化
- minω,b[ 12∥ω∥2+C∑i=1Nξi]\min\limits_{\omega,b}\left[ \ \frac{1}{2}\|\omega\|^2+C\sum\limits_{i=1}^N\xi_i\right]ω,bmin[ 21∥ω∥2+Ci=1∑Nξi](其中 ξi\xi_iξi 为松弛变量 slackvariableslack variableslackvariable,i=1,2,...,Ni=1, 2, ..., Ni=1,2,...,N)
- 限制条件s.t.
- yi[ωTxi+b]⩾1−ξiy_i\left[\omega^Tx_i+b\right] \geqslant 1-\xi_iyi[ωTxi+b]⩾1−ξi(i=1,2,...,Ni=1, 2, ..., Ni=1,2,...,N)
- ξi⩾0\xi_i \geqslant 0ξi⩾0(i=1,2,...,Ni=1, 2, ..., Ni=1,2,...,N)
对于非线性优化问题,我们已知的是Xi,yiX_i,y_iXi,yi,要求的是w,b,ξiw,b,\xi_iw,b,ξi
对于x1=[00]∈C1x_1 = \left[\begin{matrix}0\\0 \end{matrix}\right]\in C_1x1=[00]∈C1,x1=[11]∈C1,x1=[10]∈C2x_1 = \left[\begin{matrix}1\\1 \end{matrix}\right]\in C_1,x_1 = \left[\begin{matrix}1\\0 \end{matrix}\right]\in C_2x1=[11]∈C1,x1=[10]∈C2,x1=[01]∈C2x_1 = \left[\begin{matrix}0\\1 \end{matrix}\right]\in C_2x1=[01]∈C2,我该如何将这四个向量分为两类呢?
首先我们定义这样的函数φ(x):x=[ab]⟶φ(x)=[a2b2abab]\varphi(x):x=\left[\begin{matrix}a\\b\end{matrix}\right]\longrightarrow\varphi(x)=\left[\begin{matrix} a^2\\b^2\\a\\b\\ab \end{matrix}\right]φ(x):x=[ab]⟶φ(x)=⎣⎢⎢⎢⎢⎡a2b2abab⎦⎥⎥⎥⎥⎤,我们可以看到 φ(x)\varphi(x)φ(x) 实际上就是原向量所有元素相互乘积得到的更高维度的向量。
此时我们对 x1,x2,x3,x4x_1,x_2,x_3,x_4x1,x2,x3,x4拓展维度:
φ(x1)=[00000],φ(x2)=[11111],φ(x3)=[10100],φ(x4)=[01010]\varphi(x_1)=\left[\begin{matrix} 0\\0\\0\\0\\0 \end{matrix}\right],\varphi(x_2)=\left[\begin{matrix} 1\\1\\1\\1\\1 \end{matrix}\right],\varphi(x_3)=\left[\begin{matrix} 1\\0\\1\\0\\0 \end{matrix}\right],\varphi(x_4)=\left[\begin{matrix} 0\\1\\0\\1\\0 \end{matrix}\right]φ(x1)=⎣⎢⎢⎢⎢⎡00000⎦⎥⎥⎥⎥⎤,φ(x2)=⎣⎢⎢⎢⎢⎡11111⎦⎥⎥⎥⎥⎤,φ(x3)=⎣⎢⎢⎢⎢⎡10100⎦⎥⎥⎥⎥⎤,φ(x4)=⎣⎢⎢⎢⎢⎡01010⎦⎥⎥⎥⎥⎤
我们知道对于SVM处理非线性问题的限制条件为:yi(ωTxi+b)⩾1−ξiy_i(\omega^Tx_i+b) \geqslant 1-\xi_iyi(ωTxi+b)⩾1−ξi(i=1,2,...,Ni=1, 2, ..., Ni=1,2,...,N),此时当 xix_ixi 拓展维度以后即变为:yi[ωTφ(xi)+b]⩾1−ξiy_i\left[\omega^T\varphi(x_i)+b\right] \geqslant 1-\xi_iyi[ωTφ(xi)+b]⩾1−ξi(i=1,2,...,Ni=1, 2, ..., Ni=1,2,...,N),需要注意的是 www的维度也会拓展,与 φ(xi)\varphi(x_i)φ(xi) 相同。那么为了将 x1,x2,x3,x4x_1,x_2,x_3,x_4x1,x2,x3,x4 进行二分类,我们目前的问题是如何寻找一个适合的 www 和 bbb 来使得满足SVM的限制条件。这样的 www 和 bbb 有很多,我们给出其中一个:
ω=[−1−1−1−16]\omega = \left[\begin{matrix}-1 \\ -1\\ -1\\ -1\\ 6\end{matrix}\right]ω=⎣⎢⎢⎢⎢⎡−1−1−1−16⎦⎥⎥⎥⎥⎤,b=1b = 1b=1,带入到限制条件得到:{ωTφ(x1)+b=1>0ωTφ(x2)+b=3>0ωTφ(x3)+b=−1<0ωTφ(x4)+b=−1<0\left\{\begin{array}{lr} \omega^T\varphi(x_1)+b=1>0\\\omega^T\varphi(x_2)+b=3>0 \\ \omega^T\varphi(x_3)+b = -1<0 \\ \omega^T\varphi(x_4) +b=-1<0 \end{array}\right.⎩⎪⎪⎨⎪⎪⎧ωTφ(x1)+b=1>0ωTφ(x2)+b=3>0ωTφ(x3)+b=−1<0ωTφ(x4)+b=−1<0,我们可以看出x1,x2x1,x2x1,x2被分到C1C_1C1类,x3,x4x3,x4x3,x4被分到C2C_2C2类。
「QUESTION」:那么我们如何选取 φ(x)\varphi(x)φ(x) 呢?
我们可以不知道无限维映射 φ(x)\varphi(x)φ(x) 的显式表达,我们只要知道一个核函数(Kernel Function)
K(x1,x2)=φ(x1)Tφ(x2)K(x_1, x_2) = \varphi(x_1)^T\varphi(x_2)K(x1,x2)=φ(x1)Tφ(x2)则 yi[ωTφ(xi)+b]⩾1−ξiy_i\left[\omega^T\varphi(x_i)+b\right] \geqslant 1-\xi_iyi[ωTφ(xi)+b]⩾1−ξi(i=1,2,...,Ni=1, 2, ..., Ni=1,2,...,N)这个优化式仍然可解,其中 φ(x1)\varphi(x_1)φ(x1) 和 φ(x2)\varphi(x_2)φ(x2) 均为无限维向量。这同样给我们带来了一个新的问题,我们该如何将 φ(xi)\varphi(x_i)φ(xi) 替换成核函数 K(x1,x2)K(x_1, x_2)K(x1,x2) 呢?我们先来看看常见的几种核函数,再了解满足核函数拆分的充要条件(Mercer’s Theorem)。
常见的几种核函数
- 线性核:K(x1,x2)=x1Tx2K(x_1,x_2)=x_1^Tx_2K(x1,x2)=x1Tx2。
- 高斯核:K(x1,x2)=e−∣∣x1−x2∣∣22σ2=φ(x1)Tφ(x2)K(x_1, x_2) = e^{-\frac{||x_1-x_2||^2}{2\sigma^2}} = \varphi(x_1)^T\varphi(x_2)K(x1,x2)=e−2σ2∣∣x1−x2∣∣2=φ(x1)Tφ(x2),可拆成两个无限维度的 φ(x)\varphi(x)φ(x),但必须满足某种条件,可自己尝试(泰勒展开)。
- 多项式核:K(x1,x2)=(x1Tx2+1)d=φ(x1)Tφ(x2)K(x_1, x_2) = (x_1^Tx_2+1)^d = \varphi(x_1)^T\varphi(x_2)K(x1,x2)=(x1Tx2+1)d=φ(x1)Tφ(x2),其中 ddd 为多项式的阶数,可拆成两个有限维度的 φ(x)\varphi(x)φ(x),同样需满足某种条件,可自己尝试看 φ(xi)\varphi(x_i)φ(xi) 的维度和 ddd 维度的关系。
- Sigmoid核:K(x1,x2)=tanh(β1x1Tx2+β2)K(x_1, x_2) = tanh(\beta_1x_1^Tx_2 + \beta_2)K(x1,x2)=tanh(β1x1Tx2+β2)。
Mercer’s Theorem
上面提到 K(x1,x2)K(x_1, x_2)K(x1,x2) 拆成 φ(x1)Tφ(x2)\varphi(x_1)^T\varphi(x_2)φ(x1)Tφ(x2) 需满足某种条件(泛函分析),那 K(x1,x2)=φ(x1)Tφ(x2)K(x_1, x_2) = \varphi(x_1)^T\varphi(x_2)K(x1,x2)=φ(x1)Tφ(x2) 的充要条件为:
- K(x1,x2)=K(x2,x1)K(x_1, x_2) = K(x_2, x_1)K(x1,x2)=K(x2,x1)(交换性)
- ∀ci,xi(i=1,2,3,...,N)\forall c_i, x_i (i=1, 2, 3, ..., N)∀ci,xi(i=1,2,3,...,N),有:∑i=1N∑j=1NcicjK(xi,xj)⩾0\sum\limits_{i=1}^N\sum\limits_{j=1}^Nc_ic_jK(x_i, x_j) \geqslant 0i=1∑Nj=1∑NcicjK(xi,xj)⩾0,其中 cic_ici 为常数,xix_ixi 为向量(半正定性)
补充知识:优化理论
原问题(Prime Problem)(非常普适)
- 最小化:
- minf(ω)\min f(\omega)minf(ω)
- 限制条件s.t.:
- gi(ω)⩽0(i=1,2,3,...,K)g_i(\omega) \leqslant 0 (i=1,2,3,...,K)gi(ω)⩽0(i=1,2,3,...,K)
- hi(ω)=0(i=1,2,3,...,M)h_i(\omega) = 0(i=1,2,3,...,M)hi(ω)=0(i=1,2,3,...,M)
对偶问题(Dual Problem)
- 定义:L(ω,α,β)=f(ω)+∑i=1Kαigi(ω)+∑i=1Mβihi(ω)=f(ω)+αTg(ω)+βTh(ω)L(\omega, \alpha, \beta) = f(\omega)+\sum\limits_{i=1}^K\alpha_ig_i(\omega)+\sum\limits_{i=1}^M\beta_ih_i(\omega)=f(\omega)+\alpha^Tg(\omega)+\beta^Th(\omega)L(ω,α,β)=f(ω)+i=1∑Kαigi(ω)+i=1∑Mβihi(ω)=f(ω)+αTg(ω)+βTh(ω)
其中 α\alphaα 是一个 KKK 维向量,与 gi(ω)⩽0g_i(\omega) \leqslant 0gi(ω)⩽0 的多项式个数相同;β\betaβ 是一个 MMM 维向量,与 hi(ω)=0h_i(\omega) = 0hi(ω)=0 的多项式个数相同。式子最右侧 g(ω)=[g1(ω)g2(ω)...gK(ω)]g(\omega) = \left[\begin{matrix}g_1(\omega) \\ g_2(\omega) \\...\\g_K(\omega)\end{matrix}\right]g(ω)=⎣⎢⎢⎡g1(ω)g2(ω)...gK(ω)⎦⎥⎥⎤,然后 h(ω)=[h1(ω)h2(ω)...hM(ω)]h(\omega) = \left[\begin{matrix}h_1(\omega) \\ h_2(\omega) \\...\\h_M(\omega)\end{matrix}\right]h(ω)=⎣⎢⎢⎡h1(ω)h2(ω)...hM(ω)⎦⎥⎥⎤。
对偶问题的定义
- 最大化:
- max[Θ(α,β)=infall(ω)[L(ω,α,β)]]\max\left[\Theta(\alpha, \beta) = \inf\limits_{all(\omega)}\left[L(\omega, \alpha, \beta)\right]\right]max[Θ(α,β)=all(ω)inf[L(ω,α,β)]],其中 inf\infinf 表示求最小值,在什么情况下求最小值呢?在限定 α\alphaα 和 β\betaβ 的前提下,遍历所有 ω\omegaω 后,求得最小的 L(ω,α,β)L(\omega, \alpha, \beta)L(ω,α,β),因此每确认一个 α\alphaα 和 β\betaβ 我都能求出一个最小值,在众多最小值中选取最大的 Θ(α,β)\Theta(\alpha, \beta)Θ(α,β)。
- 限制条件s.t.:αi⩾0(i=1,2,3,...,K)\alpha_i \geqslant 0(i=1,2,3,...,K)αi⩾0(i=1,2,3,...,K) ,或按照向量的写法 α⩾0\alpha \geqslant 0α⩾0,其中 α=[α1α2..αi..αK]\alpha = \left[\begin{matrix}\alpha_1 \\ \alpha_2\\ ..\\\alpha_i\\..\\\alpha_K\end{matrix}\right]α=⎣⎢⎢⎢⎢⎢⎢⎡α1α2..αi..αK⎦⎥⎥⎥⎥⎥⎥⎤
接下来我们需要解决原问题和对偶问题的关系,但了解他们关系之前我们还需要知道一个定理,定理如下。
定理:如果 ω∗\omega^*ω∗ 是原问题的解,而 α∗,β∗\alpha^*,\beta^*α∗,β∗ 是对偶问题的解,则有:
f(ω∗)⩾Θ(α∗,β∗)f(\omega^*) \geqslant \Theta(\alpha^*, \beta^*)f(ω∗)⩾Θ(α∗,β∗)
证明:
Θ(α∗,β∗)=infall(ω)[L(ω,α∗,β∗)]⩽L(ω∗,α∗,β∗)=f(ω∗)+∑i=1Kαi∗gi(ω∗)+∑i=1Mβi∗hi(ω∗)\Theta(\alpha^*, \beta^*) = \inf\limits_{all(\omega)}\left[L(\omega, \alpha^*, \beta^*)\right]\leqslant L(\omega^*, \alpha^*, \beta^*) = f(\omega^*)+\sum\limits_{i=1}^K\alpha_i^*g_i(\omega^*)+\sum\limits_{i=1}^M\beta_i^*h_i(\omega^*)Θ(α∗,β∗)=all(ω)inf[L(ω,α∗,β∗)]⩽L(ω∗,α∗,β∗)=f(ω∗)+i=1∑Kαi∗gi(ω∗)+i=1∑Mβi∗hi(ω∗),其中限制条件为:{gi(ω∗)⩽0(i=1,2,3,...,K)hi(ω∗)=0(i=1,2,3,...,M)αi∗⩾0\left\{\begin{array}{lr}g_i(\omega^*) \leqslant 0 (i=1,2,3,...,K) \\ h_i(\omega^*) = 0(i=1,2,3,...,M) \\ \alpha_i^* \geqslant 0\end{array}\right.⎩⎨⎧gi(ω∗)⩽0(i=1,2,3,...,K)hi(ω∗)=0(i=1,2,3,...,M)αi∗⩾0,为什么限制条件是这个呢?因为定理说了 ω∗\omega^*ω∗ 为原问题的解,因此由原问题的限制条件得到前两个结果,又因为 αi∗\alpha_i^*αi∗ 满足对偶问题的解,因此第三个式子成立,第三个式子为对偶问题的限制条件。因此 ∑i=1Kαi∗gi(ω∗)⩽0\sum\limits_{i=1}^K\alpha_i^*g_i(\omega^*) \leqslant 0i=1∑Kαi∗gi(ω∗)⩽0 并且 ∑i=1Mβi∗hi(ω∗)=0\sum\limits_{i=1}^M\beta_i^*h_i(\omega^*)=0i=1∑Mβi∗hi(ω∗)=0,我们得出结论:Θ(α∗,β∗)⩽f(ω∗)\Theta(\alpha^*,\beta^*) \leqslant f(\omega^*)Θ(α∗,β∗)⩽f(ω∗),即证定理。
已知上面的定理和证明后我们有如下这样一个定义。
定义:G=f(ω∗)−Θ(a∗,b∗)⩾0G = f(\omega^*) - \Theta(a^*, b^*) \geqslant 0G=f(ω∗)−Θ(a∗,b∗)⩾0,GGG 叫做原问题与对偶问题的间距 (DualityGap)(Duality Gap)(DualityGap)。
重要结论:对于某些特定优化问题,可以证明 G=0G=0G=0。具体有哪些特定优化问题呢?我们直接写结论。
强对偶定理
若 f(ω)f(\omega)f(ω) 为凸函数,且 g(ω)=Aω+b,h(ω)=Cω+dg(\omega) = A\omega + b,h(\omega) = C\omega + dg(ω)=Aω+b,h(ω)=Cω+d,则此优化问题的原问题和对偶问题间距为0,即 f(ω∗)=Θ(α∗,β∗)f(\omega^*) = \Theta(\alpha^*, \beta^*)f(ω∗)=Θ(α∗,β∗)
若强对偶定理成立,即若 f(ω∗)=Θ(α∗,β∗)f(\omega^*) = \Theta(\alpha^*, \beta^*)f(ω∗)=Θ(α∗,β∗) 成立,意味着什么呢?有以下两点。
第一点,我们由上面的定理证明得: Θ(α∗,β∗)=infall(ω)[L(ω,α∗,β∗)]⩽L(ω∗,α∗,β∗)=f(ω∗)+∑i=1Kαi∗gi(ω∗)+∑i=1Mβi∗hi(ω∗)\Theta(\alpha^*, \beta^*) = \inf\limits_{all(\omega)}\left[L(\omega, \alpha^*, \beta^*)\right]\leqslant L(\omega^*, \alpha^*, \beta^*) = f(\omega^*)+\sum\limits_{i=1}^K\alpha_i^*g_i(\omega^*)+\sum\limits_{i=1}^M\beta_i^*h_i(\omega^*)Θ(α∗,β∗)=all(ω)inf[L(ω,α∗,β∗)]⩽L(ω∗,α∗,β∗)=f(ω∗)+i=1∑Kαi∗gi(ω∗)+i=1∑Mβi∗hi(ω∗)
根据强对偶定理和上述证明得到的结论,可以得出 Θ(α∗,β∗)=L(ω∗,α∗,β∗)\Theta(\alpha^*, \beta^*) = L(\omega^*, \alpha^*, \beta^*)Θ(α∗,β∗)=L(ω∗,α∗,β∗),这就意味着确定 α∗,β∗\alpha^*, \beta^*α∗,β∗ 的情况下,此时让 LLL 取到最小值那个点所对应的是 ω∗\omega^*ω∗。
第二点,由上述证明过程和强对偶定理,我们得出:∑i=1Kαi∗gi(ω∗)+∑i=1Mβi∗hi(ω∗)=0\sum\limits_{i=1}^K\alpha_i^*g_i(\omega^*)+\sum\limits_{i=1}^M\beta_i^*h_i(\omega^*) = 0i=1∑Kαi∗gi(ω∗)+i=1∑Mβi∗hi(ω∗)=0,那么对于 ∀i=1,2,...,K\forall i = 1,2,...,K∀i=1,2,...,K,或者 αi∗=0\alpha_i^* = 0αi∗=0,或者 gi∗(ω∗)=0g_i^*(\omega^*) = 0gi∗(ω∗)=0,那么这个这个条件成为KKT条件。
经上述补充,目的是将拓展维度后的限制条件:yi[ωTφ(xi)+b]⩾1−ξi(i=1,2,3,...,N)y_i\left[\omega^T\varphi(x_i)+b\right] \geqslant 1-\xi_i(i=1,2,3,...,N)yi[ωTφ(xi)+b]⩾1−ξi(i=1,2,3,...,N)这样的原问题转化为对偶问题,用求解对偶问题的方式来求解原问题的解。接下来我们用原问题、对偶问题来求解SVM,在解决对偶问题时会消除 φ(xi)\varphi(x_i)φ(xi),只使用 K(x1,x2)K(x_1, x_2)K(x1,x2)。
什么是凸函数?

现在我们回到SVM处理非线性问题这上面来,因为 12∣∣ω∣∣2+C∑i=1Nξi\frac{1}{2}||\omega||^2+C\sum\limits_{i=1}^N\xi_i21∣∣ω∣∣2+Ci=1∑Nξi 是凸函数,此时我们就可以使用强对偶定理,SVM所对应的非线性问题:
- 最小化
- minω,b[ 12∥ω∥2+C∑i=1Nξi]\min\limits_{\omega,b}\left[ \ \frac{1}{2}\|\omega\|^2+C\sum\limits_{i=1}^N\xi_i\right]ω,bmin[ 21∥ω∥2+Ci=1∑Nξi](其中 ξi\xi_iξi 为松弛变量 slackvariableslack variableslackvariable,i=1,2,...,Ni=1, 2, ..., Ni=1,2,...,N)
- 限制条件s.t.
- yi[ωTxi+b]⩾1−ξiy_i\left[\omega^Tx_i+b\right] \geqslant 1-\xi_iyi[ωTxi+b]⩾1−ξi(i=1,2,...,Ni=1, 2, ..., Ni=1,2,...,N)
- ξi⩾0\xi_i \geqslant 0ξi⩾0(i=1,2,...,Ni=1, 2, ..., Ni=1,2,...,N)
原问题:
- 最小化:minf(ω)\min f(\omega)minf(ω)
- 限制条件s.t.:
- gi(ω)⩽0(i=1,2,3,...,K)g_i(\omega) \leqslant 0 (i=1,2,3,...,K)gi(ω)⩽0(i=1,2,3,...,K)
- hi(ω)=0(i=1,2,3,...,M)h_i(\omega) = 0(i=1,2,3,...,M)hi(ω)=0(i=1,2,3,...,M)
我们将SVM非线性问题改造为原问题的形式:
- 最小化
- minω,b[ 12∥ω∥2−C∑i=1Nξi]\min\limits_{\omega,b}\left[\ \frac{1}{2}\|\omega\|^2-C\sum\limits_{i=1}^N\xi_i\right]ω,bmin[ 21∥ω∥2−Ci=1∑Nξi](因为我们要使得限制条件 ξi⩽0\xi_i \leqslant 0ξi⩽0,因此需将 CCC 前的系数由正变为负)
- 限制条件s.t.
- 1+ξi−yi[ωTxi+b]⩽01+\xi_i-y_i\left[\omega^Tx_i+b\right] \leqslant 01+ξi−yi[ωTxi+b]⩽0(i=1,2,...,Ki=1, 2, ..., Ki=1,2,...,K)
- ξi⩽0\xi_i \leqslant 0ξi⩽0(i=1,2,...,Ki=1, 2, ..., Ki=1,2,...,K)
转化为对偶问题(我们知道最初原问题为 f(ω)f(\omega)f(ω),当时的待求变量为 ω\omegaω,SVM非线性问题的原问题转换为对偶问题以后,我们的待求变量为 ω,ξi,b\omega, \xi_i, bω,ξi,b):
- 最大化:
- Θ(α,β)=infall(ω,ξi,β)[12∥ω∥2−C∑i=1Nξi+∑i=1Nβiξi+∑i=1Nαi[1+ξi−yiωTφ(xi)−yib]]\Theta(\alpha, \beta) = \inf\limits_{all(\omega,\xi_i,\beta)}\left[\frac{1}{2}\|\omega\|^2-C\sum\limits_{i=1}^N\xi_i+\sum\limits_{i=1}^N\beta_i\xi_i+\sum\limits_{i=1}^N\alpha_i\left[1+\xi_i-y_i\omega^T\varphi(x_i)-y_ib\right]\right]Θ(α,β)=all(ω,ξi,β)inf[21∥ω∥2−Ci=1∑Nξi+i=1∑Nβiξi+i=1∑Nαi[1+ξi−yiωTφ(xi)−yib]]
- 限制条件s.t.:
- {αi⩾0βi⩾0i=1,2,..,N\left\{\begin{array}{lr} \alpha_i \geqslant 0 \\ \beta_i \geqslant 0 \\ i=1,2,..,N \end{array}\right.⎩⎨⎧αi⩾0βi⩾0i=1,2,..,N
注意:需注意的是我们将对偶问题 f(ω)+∑i=1Kαigi(ω)+∑i=1Mβihi(ω)f(\omega)+\sum\limits_{i=1}^K\alpha_ig_i(\omega)+\sum\limits_{i=1}^M\beta_ih_i(\omega)f(ω)+i=1∑Kαigi(ω)+i=1∑Mβihi(ω),转为适用于SVM非线性问题的对偶问题 12∥ω∥2−C∑i=1Nξi+∑i=1Nβiξi+∑i=1Nαi[1+ξi−yiωTφ(xi)−yib]\frac{1}{2}\|\omega\|^2-C\sum\limits_{i=1}^N\xi_i+\sum\limits_{i=1}^N\beta_i\xi_i+\sum\limits_{i=1}^N\alpha_i\left[1+\xi_i-y_i\omega^T\varphi(x_i)-y_ib\right]21∥ω∥2−Ci=1∑Nξi+i=1∑Nβiξi+i=1∑Nαi[1+ξi−yiωTφ(xi)−yib] 后,因对于对偶问题,限制条件 gi(ω)⩽0g_i(\omega) \leqslant 0gi(ω)⩽0 这一个条件在SVM非线性下对偶问题中有两个限制条件 {1+ξi−yi[ωTxi+b]⩽0ξi⩽0\left\{\begin{array}{lr}1+\xi_i-y_i\left[\omega^Tx_i+b\right] \leqslant 0\\ \xi_i \leqslant 0\end{array}\right.{1+ξi−yi[ωTxi+b]⩽0ξi⩽0与之对应(都是小于等于),因此对偶问题 f(ω)+∑i=1Kαigi(ω)+∑i=1Mβihi(ω)f(\omega)+\sum\limits_{i=1}^K\alpha_ig_i(\omega)+\sum\limits_{i=1}^M\beta_ih_i(\omega)f(ω)+i=1∑Kαigi(ω)+i=1∑Mβihi(ω) 中 ∑i=1Kαigi(ω)\sum\limits_{i=1}^K\alpha_ig_i(\omega)i=1∑Kαigi(ω) 这一部分转换为了 ∑i=1Nβiξi+∑i=1Nαi[1+ξi−yiωTφ(xi)−yib]\sum\limits_{i=1}^N\beta_i\xi_i+\sum\limits_{i=1}^N\alpha_i\left[1+\xi_i-y_i\omega^T\varphi(x_i)-y_ib\right]i=1∑Nβiξi+i=1∑Nαi[1+ξi−yiωTφ(xi)−yib],后者的 βi\beta_iβi 与前者的 βi\beta_iβi 不同,这里容易混淆,后者的 αi,βi\alpha_i, \beta_iαi,βi 均由前者的 αi\alpha_iαi 转换而成,这一点一定要注意,很容易混淆,前者所对应的 hi(ω)=0h_i(\omega)=0hi(ω)=0 这个限制条件在SVM非线性的对偶问题中并未出现,并且尽管出现也为0,因此在SVM非线性对偶问题中不会出现前者的那个 βi\beta_iβi。
OK!到目前为止,我们已经将SVM非线性问题的原问题转化为对偶问题,我们再写一遍:
- 最大化:
- Θ(α,β)=infall(ω,ξi,β)[12∥ω∥2−C∑i=1Nξi+∑i=1Nβiξi+∑i=1Nαi[1+ξi−yiωTφ(xi)−yib]]\Theta(\alpha, \beta) = \inf\limits_{all(\omega,\xi_i,\beta)}\left[\frac{1}{2}\|\omega\|^2-C\sum\limits_{i=1}^N\xi_i+\sum\limits_{i=1}^N\beta_i\xi_i+\sum\limits_{i=1}^N\alpha_i\left[1+\xi_i-y_i\omega^T\varphi(x_i)-y_ib\right]\right]Θ(α,β)=all(ω,ξi,β)inf[21∥ω∥2−Ci=1∑Nξi+i=1∑Nβiξi+i=1∑Nαi[1+ξi−yiωTφ(xi)−yib]]
- 限制条件s.t.:
- {αi⩾0βi⩾0i=1,2,..,N\left\{\begin{array}{lr} \alpha_i \geqslant 0 \\ \beta_i \geqslant 0 \\i=1,2,..,N\end{array}\right.⎩⎨⎧αi⩾0βi⩾0i=1,2,..,N
此时 L(ω,ξi,b)=12∥ω∥2−C∑i=1Nξi+∑i=1Nβiξi+∑i=1Nαi[1+ξi−yiωTφ(xi)−yib]L(\omega,\xi_i,b) = \frac{1}{2}\|\omega\|^2-C\sum\limits_{i=1}^N\xi_i+\sum\limits_{i=1}^N\beta_i\xi_i+\sum\limits_{i=1}^N\alpha_i\left[1+\xi_i-y_i\omega^T\varphi(x_i)-y_ib\right]L(ω,ξi,b)=21∥ω∥2−Ci=1∑Nξi+i=1∑Nβiξi+i=1∑Nαi[1+ξi−yiωTφ(xi)−yib],我们要找一个 ω,ξi,b\omega,\xi_i,bω,ξi,b,使得 L(ω,ξi,b)L(\omega,\xi_i,b)L(ω,ξi,b) 最小,接下来我们分别对 LLL 关于 ω,ξi,b\omega,\xi_i,bω,ξi,b 求偏导数,这里涉及到对向量的偏导数,那么实际上对向量求偏导数就是对向量的每个元素求偏导数,即就是:∂f∂ω=[∂f∂ω1∂f∂ω2..∂f∂ωn]\frac{\partial f}{\partial\omega} = \left[\begin{matrix}\frac{\partial f}{\partial\omega_1} \\ \frac{\partial f}{\partial\omega_2} \\ .. \\ \frac{\partial f}{\partial\omega_n}\end{matrix}\right]∂ω∂f=⎣⎢⎢⎢⎡∂ω1∂f∂ω2∂f..∂ωn∂f⎦⎥⎥⎥⎤,接下来我们对 L(ω,ξi,b)=12∥ω∥2−C∑i=1Nξi+∑i=1Nβiξi+∑i=1Nαi[1+ξi−yiωTφ(xi)−yib]L(\omega,\xi_i,b) = \frac{1}{2}\|\omega\|^2-C\sum\limits_{i=1}^N\xi_i+\sum\limits_{i=1}^N\beta_i\xi_i+\sum\limits_{i=1}^N\alpha_i\left[1+\xi_i-y_i\omega^T\varphi(x_i)-y_ib\right]L(ω,ξi,b)=21∥ω∥2−Ci=1∑Nξi+i=1∑Nβiξi+i=1∑Nαi[1+ξi−yiωTφ(xi)−yib] 分别关于 ω,ξi,b\omega,\xi_i,bω,ξi,b 求偏导。
我们给出如下两个结论(这两个结论可自行推导)
(1)若 f(ω)=12∥ω∥2f(\omega) = \frac{1}{2}\|\omega\|^2f(ω)=21∥ω∥2,则 ∂f∂ω=ω\frac{\partial f}{\partial \omega} = \omega∂ω∂f=ω
(2)若 f(ω)=ωTxf(\omega) = \omega^Txf(ω)=ωTx,则 ∂f∂ω=x\frac{\partial f}{\partial \omega} = x∂ω∂f=x
∂L∂ω=0⇒ω−∑i=1Nαiyiφ(xi)=0⇒ω=∑i=1Nαiyiφ(xi)\frac{\partial L}{\partial \omega} = 0 \Rightarrow \omega - \sum\limits_{i=1}^N \alpha_iy_i\varphi(x_i) = 0 \Rightarrow \omega = \sum\limits_{i=1}^N \alpha_iy_i\varphi(x_i)∂ω∂L=0⇒ω−i=1∑Nαiyiφ(xi)=0⇒ω=i=1∑Nαiyiφ(xi)
∂L∂ξi=0⇒−C+βi+αi=0⇒βi+αi=C\frac{\partial L}{\partial \xi_i} = 0 \Rightarrow -C + \beta_i + \alpha_i = 0 \Rightarrow \beta_i + \alpha_i = C∂ξi∂L=0⇒−C+βi+αi=0⇒βi+αi=C
∂L∂b=0⇒∑i=1Nαiyi=0\frac{\partial L}{\partial b} = 0 \Rightarrow \sum\limits_{i=1}^N\alpha_iy_i=0∂b∂L=0⇒i=1∑Nαiyi=0
我们将上述三个式子带入到SVM非线性的对偶问题中可求最小值,首先将 βi+αi=C\beta_i + \alpha_i = Cβi+αi=C 带入消项,然后由 ∑i=1Nαiyi=0\sum\limits_{i=1}^N\alpha_iy_i=0i=1∑Nαiyi=0 消项,最终得到下面的等式:
Θ(α,β)=infall(ω,ξi,b)[12∥ω∥2+∑i=1Nαi[1−yiωTφ(xi)]]\Theta(\alpha, \beta) = \inf\limits_{all(\omega,\xi_i,b)}\left[\frac{1}{2}\|\omega\|^2+\sum\limits_{i=1}^N\alpha_i \left[ 1-y_i\omega^T\varphi(x_i)\right]\right]Θ(α,β)=all(ω,ξi,b)inf[21∥ω∥2+i=1∑Nαi[1−yiωTφ(xi)]]
其中 12∥ω∥2=12ωTω=12[∑i=1Nαiyiφ(xi)]T[∑j=1Nαjyjφ(xj)]=12∑i=1N∑j=1Nαiαjyiyjφ(xi)Tφ(xj)\frac{1}{2}\|\omega\|^2 = \frac{1}{2}\omega^T\omega = \frac{1}{2}\left[\sum\limits_{i=1}^N \alpha_iy_i\varphi(x_i)\right]^T \left[\sum\limits_{j=1}^N \alpha_jy_j\varphi(x_j)\right] = \frac{1}{2}\sum\limits_{i=1}^N\sum\limits_{j=1}^N\alpha_i\alpha_jy_iy_j\varphi(x_i)^T\varphi(x_j)21∥ω∥2=21ωTω=21[i=1∑Nαiyiφ(xi)]T[j=1∑Nαjyjφ(xj)]=21i=1∑Nj=1∑Nαiαjyiyjφ(xi)Tφ(xj),此时两部分单独运算,因此我们将两部分用 i,ji,ji,j 区分开,由前面的知识我们知道,yi,yjy_i,y_jyi,yj 只能取 ±1\pm1±1。此时我们可将 φ(xi)Tφ(xj)\varphi(x_i)^T\varphi(x_j)φ(xi)Tφ(xj) 转为核函数 K(xi,xj)K(x_i, x_j)K(xi,xj)。
其中 −∑i=1NαiyiωTφ(xi)=−∑i=1Nαiyi[∑j=1Nαjyjφ(xj)]Tφ(xi)=−∑i=1N∑j=1Nαiαjyiyjφ(xj)Tφ(xi)-\sum\limits_{i=1}^N\alpha_iy_i\omega^T\varphi(x_i) = -\sum\limits_{i=1}^N\alpha_iy_i\left[\sum\limits_{j=1}^N\alpha_jy_j\varphi(x_j)\right]^T\varphi(x_i)=-\sum\limits_{i=1}^N\sum\limits_{j=1}^N\alpha_i\alpha_jy_iy_j\varphi(x_j)^T\varphi(x_i)−i=1∑NαiyiωTφ(xi)=−i=1∑Nαiyi[j=1∑Nαjyjφ(xj)]Tφ(xi)=−i=1∑Nj=1∑Nαiαjyiyjφ(xj)Tφ(xi),该式也可将 φ(xj)Tφ(xi)\varphi(x_j)^T\varphi(x_i)φ(xj)Tφ(xi) 转为核函数 K(xi,xj)K(x_i, x_j)K(xi,xj)。
最后我们得到以下结果:
Θ(α,β)=∑i=1Nαi−12∑i=1N∑j=1NαiαjyiyjK(xi,xj)\Theta(\alpha,\beta)=\sum\limits_{i=1}^N\alpha_i-\frac{1}{2}\sum\limits_{i=1}^N\sum\limits_{j=1}^N\alpha_i\alpha_jy_iy_jK(x_i, x_j)Θ(α,β)=i=1∑Nαi−21i=1∑Nj=1∑NαiαjyiyjK(xi,xj)
支持向量机结论
- 最大化:
- Θ(α)=∑i=1Nαi−12∑i=1N∑j=1NαiαjyiyjK(xi,xj)\Theta(\alpha)=\sum\limits_{i=1}^N\alpha_i-\frac{1}{2}\sum\limits_{i=1}^N\sum\limits_{j=1}^N\alpha_i\alpha_jy_iy_jK(x_i, x_j)Θ(α)=i=1∑Nαi−21i=1∑Nj=1∑NαiαjyiyjK(xi,xj)
- 限制条件s.t.:
- {0⩽αi⩽C∑i=1Nαiyi=0\left\{\begin{array}{lr} 0 \leqslant \alpha_i \leqslant C \\ \sum\limits_{i=1}^N\alpha_iy_i = 0\end{array}\right.⎩⎨⎧0⩽αi⩽Ci=1∑Nαiyi=0
限制条件第一个由 αi+βi=C,αi⩾0,βi⩾0\alpha_i+\beta_i = C, \alpha_i \geqslant 0,\beta_i \geqslant 0αi+βi=C,αi⩾0,βi⩾0 这三个条件一起得出,之所以这样合并,是因为在整个优化过程中 β\betaβ 是不出现的。限制条件第二个是由令 LLL 关于 bbb 求偏导数为零得到的。此时的问题也是凸优化问题。我们已知的是 yi,yj,K(xi,xj)y_i,y_j,K(x_i,x_j)yi,yj,K(xi,xj),未知的是所有的 α\alphaα。解决此处的凸优化问题所使用的标准算法为:SMO算法。
本文介绍了支持向量机(SVM)的基本原理,包括线性和非线性问题的处理方法。详细解释了如何通过核技巧解决非线性分类问题,并给出了常见核函数的例子。此外,还深入探讨了SVM优化问题的原始形式及其对偶问题,最终推导出了SVM的求解公式。
373

被折叠的 条评论
为什么被折叠?



