Skip to Content

Support Vector Machine

2019-04-14·Machine Learning

SVM 基本型

  • 划分超平面:ωTx+b=0\omega^Tx+b=0
    • 点到超平面的距离:∣ωTx+b∣∣∣ω∣∣\frac{|\omega^Tx+b|}{||\omega||}
{ωTxi+b≥yi,yi=+1ωTxi+b≤yi,yi=−1\begin{cases} \omega^Tx_i+b\geq y_i, & y_i=+1 \newline \omega^Tx_i+b\leq y_i, & y_i=-1 \end{cases}
  • 支持向量(support vector):使上式成立取等的样本点
  • 间隔(margin):两个异类支持向量到超平面的距离 2∣∣ω∣∣\frac{2}{||\omega||}
  • SVM 基本型(Support Vector Machine)
min⁡ω,b12∣∣ω∣∣2s.t.yi(ωTxi+b)≥1,i=1,2,⋯ ,m\begin{aligned} \min_{\omega,b} & \frac{1}{2}||\omega||^2 & \newline s.t. & y_i(\omega^Tx_i+b)\geq 1, &i=1,2,\cdots,m \end{aligned}\newline
  • 凸优化求解:复杂度与样本维度(等于权值 ω\omega 的维度)有关

对偶问题

  • 复杂度与样本数量(等于拉格朗日算子α\alpha的数量)有关
  • 解的稀疏性:最终模型仅与支持向量有关
    • KKT 条件导出

对偶问题的转化

  • Step1: 拉格朗日函数:L(ω,b,α)L(\omega,b,\alpha)
  • Step2: 对 ω\omega 和 bb 求偏导并令为零
    • ω=∑i=1mαiyixi\omega=\sum_{i=1}^m\alpha_iy_ix_i
  • Step3: 回代可得
max⁡α∑i=1mαi−12∑i=1m∑i=1mαiαjyiyjxiTxjs.t.∑i=1mαiyi=0αi≥0\begin{aligned} \max_{\alpha} & \sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1}^m\sum_{i=1}^m\alpha_i\alpha_jy_iy_jx_i^Tx_j \newline s.t. & \sum_{i=1}^m\alpha_iy_i=0 \newline & \alpha_i\geq 0 \end{aligned}

求解对偶问题

  • SMO (Sequential Minimal Optimization)
    • 选取一对需要更新的变量 αi\alpha_i 和 αj\alpha_j
      • 先选违背 KKT 条件最大者,再选使目标函数增长最快
      • 实际中启发式:选取两变量所对应样本之间间隔最大
    • 固定其它参数,更新 αi\alpha_i 和 αj\alpha_j

核函数

  • f(x)=ωTϕ(x)f(x)=\omega^T\phi(x)
  • 核函数:κ(xi,xj)=⟨ϕ(xi),ϕ(xj)⟩\kappa(x_i,x_j)=\langle\phi(x_i),\phi(x_j)\rangle
    • κ\kappa 为核函数   ⟺  \iff 核矩阵 KK 半正定
  • κ1,κ2\kappa_1,\kappa_2 为核函数,则以下为核函数
    • γκ1+γκ2\gamma\kappa_1+\gamma\kappa_2
    • κ1⊗κ2(x,z)=κ1(x,z)κ2(x,z)\kappa_1\otimes\kappa_2(x,z)=\kappa_1(x,z)\kappa_2(x,z)
    • κ(x,z)=g(x)κ1(x,z)g(z)\kappa(x,z)=g(x)\kappa_1(x,z)g(z)
常用核函数κ(xi,xj)\kappa(x_i,x_j)
线性核xiTxjx_i^Tx_j
多项式核(xiTxj)d(x_i^Tx_j)^d
高斯核e−∥xi−xj∥22σ2e^{-\frac{\Vert x_i-x_j\Vert^2}{2\sigma^2}}
拉普拉斯核e−∥xi−xj∥σe^{-\frac{\Vert x_i-x_j\Vert}{\sigma}}
Sigmoid 核tanh⁡(βxiTxj+θ)\tanh(\beta x_i^Tx_j+\theta)
  • 支持向量展式(利用对偶问题):f(x)=ωTϕ(x)+b=∑i=1mαiyiκ(x,xi)+bf(x)=\omega^T\phi(x)+b=\sum_{i=1}^m\alpha_iy_i\kappa(x,x_i)+b

软间隔

  • 优化目标:min⁡ω,b12∣∣ω∣∣2+C∑i=1mξi\min_{\omega,b}\frac{1}{2}||\omega||^2+C\sum_{i=1}^m\xi_i
    • 松弛变量 ξi=l(yi(ωTxi+b)−1)\xi_i=l(y_i(\omega^Tx_i+b)-1)
  • 原问题
min⁡ω,b12∣∣ω∣∣2+C∑i=1mξis.t.yi(ωTxi+b)≥1−ξiξi≥0\begin{aligned} \min_{\omega,b} & \frac{1}{2}||\omega||^2+C\sum_{i=1}^m\xi_i & \newline s.t. & y_i(\omega^Tx_i+b)\geq 1-\xi_i \newline & \xi_i\geq 0 \end{aligned}
  • 对偶问题(损失函数为 hinge)
max⁡α∑i=1mαi−12∑i=1m∑i=1mαiαjyiyjϕ(xi)Tϕ(xj)s.t.∑i=1mαiyi=0C≥αi≥0\begin{aligned} \max_{\alpha} & \sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1}^m\sum_{i=1}^m\alpha_i\alpha_jy_iy_j\phi(x_i)^T\phi(x_j) \newline s.t. & \sum_{i=1}^m\alpha_iy_i=0 \newline & C\geq \alpha_i\geq 0 \end{aligned}
损失函数l(z)l(z)Remark
0/11,z<01,z<0不易求解
hingemax⁡(0,1−z)\max(0,1-z)保持稀疏性
expe−ze^{-z}
loglog⁡(1+e−z)\log(1+e^{-z})几率回归模型,无稀疏性
  • 一般形式:min⁡fΩ(f)+C∑i=1ml(f(xi),yi)\min_f\Omega(f)+C\sum_{i=1}^ml(f(x_i),y_i)
    • 结构风险:Ω(f)\Omega(f)
    • 经验风险:∑i=1ml(f(xi),yi)\sum_{i=1}^ml(f(x_i),y_i),模型与训练数据契合程度

支持向量回归 SVR

  • min⁡ω,b12∣∣ω∣∣2+C∑i=1mlϵ(f(xi)−yi)\min_{\omega,b}\frac{1}{2}||\omega||^2+C\sum_{i=1}^ml_\epsilon(f(x_i)-y_i)
    • 落入中间 2ϵ2\epsilon 间隔带的样本不计算损失,
{0,∣z∣≤ϵ∣z∣−ϵ,otherwise\begin{cases} 0, & |z|\leq\epsilon \newline |z|-\epsilon, & otherwise \end{cases}

核方法

  • 表示定理:对于任意的单调递增函数 Ω\Omega 和任意非负损失函数 ll,优化问题

    min⁡h∈HF(h)=Ω(∣∣h∣∣H)+l(h(x1),h(x2),⋯ ,h(xm))\min_{h\in\mathbb{H}}F(h)=\Omega(||h||_\mathbb{H})+l(h(x_1),h(x_2),\cdots,h(x_m))

    的解总可以写成 h∗(x)=∑i=1mαiκ(x,xi)h^*(x)=\sum_{i=1}^m\alpha_i\kappa(x,x_i)

  • KLDA

  • KPCA