Skip to Content
Machine Learning

Support Vector Machine

2019-04-14Original-language archivelegacy assets may be incomplete

SVM 基本型

  • 划分超平面:ωTx+b=0\omega^Tx+b=0
    • 点到超平面的距离:ωTx+bω\frac{|\omega^Tx+b|}{||\omega||}
{ωTxi+byi,yi=+1ωTxi+byi,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: 对 ω\omegabb 求偏导并令为零
    • ω=i=1mαiyixi\omega=\sum_{i=1}^m\alpha_iy_ix_i
  • Step3: 回代可得
maxαi=1mαi12i=1mi=1mαiαjyiyjxiTxjs.t.i=1mαiyi=0αi0\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
高斯核 exixj22σ2e^{-\frac{\Vert x_i-x_j\Vert^2}{2\sigma^2}}
拉普拉斯核 exixjσ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+Ci=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+Ci=1mξis.t.yi(ωTxi+b)1ξiξi0\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αi12i=1mi=1mαiαjyiyjϕ(xi)Tϕ(xj)s.t.i=1mαiyi=0Cαi0\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/1 1,z<01,z<0 不易求解
hinge max(0,1z)\max(0,1-z) 保持稀疏性
exp eze^{-z}
log log(1+ez)\log(1+e^{-z}) 几率回归模型,无稀疏性
  • 一般形式:minfΩ(f)+Ci=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+Ci=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,优化问题

    minhHF(h)=Ω(hH)+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