Outline
- 线性SVM
- 非线性SVM
线性SVM
线性分类器的主要目的是:寻找一个超平面可以准确的并且具有较高置信度的对数据进行二分类。
其数学表达式为:
w T x + b = 0 \mathbf{w}^T \mathbf{x} + b = 0 wTx+b=0
其中 w T \mathbf{w}^T wT 为法向量, b b b 为偏置项。
因此,SVM的目标可以转化为:寻找到使分类间隔最大化的超平面。此超平面可以作为最优超平面。
推导公式如下:

g ( x ) = w T x + b g(x)=\mathbf{w}^T \mathbf{x} + b g(x)=wTx+b
不同类别的数据为:
w T x + b ≥ 1 for d = + 1 \mathbf{w}^T \mathbf{x} + b \geq 1 \quad \text{for } d = +1 wTx+b≥1for d=+1
w T x + b ≤ − 1 for d = − 1 \mathbf{w}^T \mathbf{x} + b \leq -1 \quad \text{for } d = -1 wTx+b≤−1for d=−1
由图可知:
x = x p + ( x − x p ) = x p + r w ∥ w ∥ \mathbf{x} = \mathbf{x}_p + (\mathbf{x} - \mathbf{x}_p) = \mathbf{x}_p + r \frac{\mathbf{w}}{\|\mathbf{w}\|} x=xp+(x−xp)=xp+r∥w∥w
其中: x p \mathbf{x}_p xp 是 x \mathbf{x} x 在超平面的投影,而 r r r 表示其到超平面的距离
因此将其带入 g ( x ) g(x) g(x) 可得:
g ( x ) = w T x + b = w T ( x p + r w ∥ w ∥ ) + b = w T x p + b + r w T w ∥ w ∥ = g ( x p ) + r ∥ w ∥ \begin{aligned} g(\mathbf{x}) &= \mathbf{w}^T \mathbf{x} + b \\ &= \mathbf{w}^T \left( \mathbf{x}_p + r \frac{\mathbf{w}}{\|\mathbf{w}\|} \right) + b \\ &= \mathbf{w}^T \mathbf{x}_p + b + r \frac{\mathbf{w}^T \mathbf{w}}{\|\mathbf{w}\|} \\ &= g(\mathbf{x}_p) + r \|\mathbf{w}\| \end{aligned} g(x)=wTx+b=wT(xp+r∥w∥w)+b=wTxp+b+r∥w∥wTw=g(xp)+r∥w∥
因为 g ( x p ) = 0 g(\mathbf{x}_p)=0 g(xp)=0 因此可得到:
r = g ( x ) ∥ w ∥ r = \frac{g(\mathbf{x})}{\|\mathbf{w}\|} r=∥w∥g(x)
因此可得到:
r = g ( x ( s ) ) ∥ w ∥ = { 1 ∥ w ∥ , for d ( s ) = + 1 − 1 ∥ w ∥ , for d ( s ) = − 1 r = \frac{g(\mathbf{x}^{(s)})}{\|\mathbf{w}\|} = \begin{cases} \frac{1}{\|\mathbf{w}\|}, & \text{for } d^{(s)} = +1 \\ \frac{-1}{\|\mathbf{w}\|}, & \text{for } d^{(s)} = -1 \end{cases} r=∥w∥g(x(s))={∥w∥1,∥w∥−1,for d(s)=+1for d(s)=−1
所以两个分类的间隔为:
ρ = 2 ∥ w ∥ \rho = \frac{2}{\|\mathbf{w}\|} ρ=∥w∥2
综上:最大化分类间隔 $ \rho$ 也就是最小化 ∥ w ∥ \|\mathbf{w}\| ∥w∥
故SVM可转化为优化问题:
MIN J ( w ) = 1 2 w T w \text{MIN} \ J(\mathbf{w}) = \frac{1}{2} \mathbf{w}^T \mathbf{w} MIN J(w)=21wTw
S . t . d ( i ) × [ w T x ( i ) + b ] ≥ 1 for i = 1 , 2 , ... , N S.t. \ \ d(i) \times \left[ \mathbf{w}^T \mathbf{x}(i) + b \right] \geq 1 \quad \text{for } i = 1,2, \dots, N S.t. d(i)×[wTx(i)+b]≥1for i=1,2,...,N
根据拉格朗日乘子(Lagrange Multipliers)计算得到:
w ∗ = ∑ i = 1 N α ( i ) d ( i ) x ( i ) \mathbf{w}^* = \sum_{i=1}^{N} \alpha(i) d(i) \mathbf{x}(i) w∗=i=1∑Nα(i)d(i)x(i)
b ∗ = 1 − ( w ∗ ) T x ( s ) b^* = 1 - (\mathbf{w}^*)^T \mathbf{x}^{(s)} b∗=1−(w∗)Tx(s)
Soft Marigin
软间隔SVM允许一定程度的分类错误,以适应数据中可能存在的噪声和不可分数据点。其数学公式转化为:
d ( i ) × [ w T x ( i ) + b ] ≥ 1 − ξ ( i ) d(i) \times \left[ \mathbf{w}^T \mathbf{x}(i) + b \right] \geq 1 - \xi(i) d(i)×[wTx(i)+b]≥1−ξ(i)
其最优解为:
w ∗ = ∑ i = 1 N α ( i ) d ( i ) x ( i ) \mathbf{w}^* = \sum_{i=1}^{N} \alpha(i) d(i) \mathbf{x}(i) w∗=i=1∑Nα(i)d(i)x(i)
b ∗ = 1 − ( w ∗ ) T x ( s ) b^* = 1 - (\mathbf{w}^*)^T \mathbf{x}^{(s)} b∗=1−(w∗)Tx(s)
Kernel SVM

核心是将数据 x \mathbf{x} x 通过非线性映射到高维线性空间,后应用SVM处理。

Cover's Theorem 科夫定理:
在一个多维输入空间内,如果数据模式是非线性可分的,那么可以将一个非线性映射将其投影至更高维的特征空间,使得数据具有更高的概率变的线性可分。
- 映射必须为非线性的
- 特征空间的维度足够高。即如果特征空间足够高,每个样本都具有足够的自由度进行分离。这也是为什么深度学习通常在高维空间表现的更好。
计算方法类似线性SVM 可得到:
w = ∑ i = 1 N α ( i ) d ( i ) φ [ x ( i ) ] \mathbf{w} = \sum_{i=1}^{N} \alpha(i) d(i) \boldsymbol{\varphi} \left[ \mathbf{x}(i) \right] w=i=1∑Nα(i)d(i)φ[x(i)]
上述公式仍需显示的求 φ \boldsymbol{\varphi} φ 的表达式。但在高维空间内,显式计算的计算量很大甚至不可行。因此引入kernel SVM.
核矩阵公式:
K [ x , x ( i ) ] = φ ( x ) T φ [ x ( i ) ] = ∑ j = 0 m φ j ( x ) φ j [ x ( i ) ] K \left[ \mathbf{x}, \mathbf{x}(i) \right] = \boldsymbol{\varphi} (\mathbf{x})^T \boldsymbol{\varphi} \left[ \mathbf{x}(i) \right] = \sum_{j=0}^{m} \varphi_j (\mathbf{x}) \varphi_j \left[ \mathbf{x}(i) \right] K[x,x(i)]=φ(x)Tφ[x(i)]=j=0∑mφj(x)φj[x(i)]
Mercer's Theorem 默瑟定理
对于任意有限个样本点 x ( 1 ) , x ( 2 ) , . . . , x ( N ) x(1), x(2),..., x(N) x(1),x(2),...,x(N), 核矩阵 K K K 是对称的并且是半正定的,则 K K K 是一个有效的核函数。
半正定矩阵
∀ v ∈ R N , v T K v ≥ 0 \forall \mathbf{v} \in \mathbb{R}^{N}, \quad \mathbf{v}^T K \mathbf{v} \geq 0 ∀v∈RN,vTKv≥0
转换后,无需显示计算 w \mathbf{w} w ,其表达式转化为:
f ( x ) = w T φ ( x ) + b = ( ∑ i = 1 N α i d i φ ( x i ) ) T φ ( x ) + b = ∑ i = 1 N α i d i ( φ ( x i ) T φ ( x ) ) + b = ∑ i = 1 N α i d i K ( x i , x ) + b \begin{aligned} f(\mathbf{x}) &= \mathbf{w}^T \boldsymbol{\varphi}(\mathbf{x}) + b \\ &= \left( \sum_{i=1}^{N} \alpha_i d_i \boldsymbol{\varphi}(\mathbf{x}i) \right)^T \boldsymbol{\varphi}(\mathbf{x}) + b \\ &= \sum{i=1}^{N} \alpha_i d_i \left( \boldsymbol{\varphi}(\mathbf{x}i)^T \boldsymbol{\varphi}(\mathbf{x}) \right) + b \\ &= \sum{i=1}^{N} \alpha_i d_i K(\mathbf{x}_i, \mathbf{x}) + b \end{aligned} f(x)=wTφ(x)+b=(i=1∑Nαidiφ(xi))Tφ(x)+b=i=1∑Nαidi(φ(xi)Tφ(x))+b=i=1∑NαidiK(xi,x)+b
常见的核函数包括:
-
多项式核函数
K ( x , z ) = ( 1 + x T z ) p K(\mathbf{x}, \mathbf{z}) = (1 + \mathbf{x}^T \mathbf{z})^p K(x,z)=(1+xTz)p
其中, p p p 通常取 2 或 3
-
高斯核函数
K ( x , z ) = exp ( − ∥ x − z ∥ 2 2 σ 2 ) K(\mathbf{x}, \mathbf{z}) = \exp\left( - \frac{\|\mathbf{x} - \mathbf{z}\|^2}{2\sigma^2} \right) K(x,z)=exp(−2σ2∥x−z∥2)