码迷,mamicode.com
首页 > 其他好文 > 详细

SVM推导

时间:2020-03-15 22:29:19      阅读:82      评论:0      收藏:0      [点我收藏+]

标签:参考文献   优化算法   smo   支持向量机   ext   间隔   line   转变   过程   

SVM(support vector machine)支持向量机.

1 间隔与支持向量

  • 样本集 \(D=\{(x_1, y_1), \cdots, (x_m, y_m)\}\), 其中 \(x_i\in \mathbb{R}^d, y_i\in\{-1, 1\}, i=1,\cdots,m\).
  • 划分超平面为
    \[ w^T x + b = 0, \]
    其中\(w=(w_1, \cdots, w_d)^T\).
  • \(x\) 到平面的距离: 设 \(x_0\) 是平面上一点, 即它满足
    \[ w^T x_0 + b = 0, \]
    \(x\) 到平面的距离即为向量 \(x-x_0\) 在平面法向 \(\frac{w}{\lVert w\rVert}\) 上投影长度:
    \[ \frac{\lvert w^T(x-x_0)\rvert}{\lVert w\rVert} = \frac{\lvert w^T x + b\rvert}{\lVert w\rVert}. \]
    由此我们还可以知道, 原点到平面距离为
    \[ \frac{\lvert w^T 0 + b\rvert}{\lVert w\rVert} = \frac{\lvert b\rvert}{\lVert w\rVert}. \]
  • 支持向量: 设超平面 \((w, b)\) 能将样本分类正确, 即对 \((x_i, y_i)\in D\)
    \[ \left\{ \begin{aligned} w^Tx_i + b &> 0 \quad y_i = +1\ w^Tx_i + b &< 0 \quad y_i = -1 \end{aligned} \right. \]
    通过变换\(w\)以及\(b\)可以使得下式成立:
    \[ \left\{ \begin{aligned} w^Tx_i + b &\geq 1 \quad y_i = +1\ w^Tx_i + b &\leq -1 \quad y_i = -1 \end{aligned} \right. \]
    \(D\)中样本使得上式等号成立, 则称其为支持向量. 两个异类支持向量到超平面的距离之和为
    \[ \gamma = \frac{2}{\lVert w\rVert}, \]
    称其为间隔.
  • 目标: 寻找 \((w, b)\) 使 \(\gamma\) 最大, 即
    \[ \begin{aligned} &\max_{w, b} \frac{2}{\lVert w\rVert} \&s.t.\left\{ \begin{aligned} w^Tx_i + b &\geq 1 \quad y_i = +1\ w^Tx_i + b &\leq -1 \quad y_i = -1 \end{aligned} \right. \Leftrightarrow y_i(w^T x_i+b)\geq 1, \end{aligned} \]
    转变为极小化问题:
    \[ \begin{aligned} &\min_{w, b} \frac12 \lVert w\rVert^2 \&s.t.\quad y_i(w^T x_i+b)\geq 1, \quad i=1,\cdots,m. \end{aligned} \tag{1.1} \]
    这是个凸二次规划问题, 可以用相应的优化方法求解.

2 对偶问题

Lagrange 乘子法得到的 Lagrange 函数为
\[ L(w, b, \alpha) = \frac12 \lVert w\rVert^2 + \sum_{i= 1}^{m} \alpha_i\left(1-y_i(w^T x_i+b) \right), \]
其中 \(\alpha = (\alpha_1, \cdots, \alpha_m)^T\). 将 \(L\)\(w\)\(b\) 的偏导置零, 有
\[ \begin{aligned} \frac{\partial L(w, b, \alpha)}{\partial w} &= w - \sum_{i=1}^{m}\alpha_i y_i x_i = 0 \Rightarrow w = \sum_{i = 1}^{m}\alpha_i y_i x_i, \ \frac{\partial L(w, b, \alpha)}{\partial b} &= \sum_{i = 1}^{m}\alpha_i y_i = 0. \end{aligned} \]
将上面第一式代入\(L(w, b, \alpha)\), 再考虑上面第二式的约束, 得到对偶问题
\[ \begin{aligned} &\quad \max_{\alpha}\frac12 \sum_{i = 1}^{m}\alpha_i y_i x_i^T\sum_{i = 1}^{m}\alpha_i y_i x_i + \sum_{i = 1}^{m}\alpha_i\left( 1-y_i(\sum_{i = 1}^{m}\alpha_i y_i x_i^T x_i + b) \right) \ & = \max_{\alpha} \sum_{i = 1}^{m} \alpha_i - \frac12 \sum_{i = 1}^{m}\sum_{j = 1}^{m}\alpha_i\alpha_jy_iy_jx_i^Tx_i \ &\qquad s.t. \ &\qquad\qquad \begin{aligned} \sum_{i = 1}^{m} \alpha_i y_i &= 0 \ \alpha_i &\geq 0 \qquad i=1,\cdots,m. \end{aligned} \end{aligned} \]
求出这个问题的解 \(\alpha\), 则可求出法向 \(w=\sum_{i = 1}^{m}\alpha_i y_i x_i\), 于是得到分类函数:
\[ f(x) = \sum_{i = 1}^{m}\alpha_i y_i x_i^T x + b. \tag{2.1} \]
另外, 因为 \((1.1)\) 式有不等式约束, 所以上述过程还需满足 KKT(Karush-Kuhn-Tucker) 条件:
\[ \left\{ \begin{aligned} \alpha_i &\geq 0 \ y_i(f(x_i) - 1) &\geq 0 \ \alpha_i(y_i f(x_i) - 1) &= 0 \end{aligned} \right. \]

分析:

  1. \(\alpha_i = 0\), 则对 \((2.1)\) 式不起作用;
  2. \(\alpha_i > 0\), 则必有 \(y_i f(x_i) = 1\), 即 \(x_i\)是支持向量,
    \[ \begin{aligned} &\Rightarrow y(w^T x_i+b) = 1\ &\Rightarrow b = \frac{1}{y_i} - w^T x_i. \end{aligned} \]
    因此, 我们有
    \[ \begin{aligned} f(x) &= \sum_{i = 1}^{m} \alpha_i y_i x_i^T x + b \ &= \sum_{x_i \text{为支持向量}} \alpha_i y_i x_i^T x + b. \end{aligned} \]
    理论上, 我们只需任取一个正支持向量 \(x_{i_0}\), 即可计算出 \(b=1-w^T x_{i_0}\). 但现实中, 我们常用更鲁棒的方法计算
    \[ b = \frac{1}{\lvert S\rvert} \sum_{s\in S}\left(\frac{1}{y_s} - \sum_{i\in S}\alpha_i y_i x_i^T x_s \right) \]
    其中 \(S=\{i: \alpha_i > 0 \}\). 即有最终公式
    \[ f(x) = \sum_{i\in S} \alpha_i y_i x_i^T x + \frac{1}{\lvert S\rvert} \sum_{s\in S}\left(\frac{1}{y_s} - \sum_{i\in S}\alpha_i y_i x_i^T x_s \right). \]

3 求解对偶问题

\[ \begin{aligned} &\max_{\alpha} \sum_{i = 1}^{m} \alpha_i - \frac12 \sum_{i = 1}^{m}\sum_{j = 1}^{m}\alpha_i\alpha_jy_iy_jx_i^Tx_i \ &\ s.t. \ &\qquad \begin{aligned} \sum_{i = 1}^{m} \alpha_i y_i &= 0 \ \alpha_i &\geq 0 \qquad i=1,\cdots,m. \end{aligned} \end{aligned} \tag{3.1} \]

  • SMO(sequential minimal optimization)算法: 利用约束 \(\sum_{i = 1}^{m}\alpha_i y_i = 0\), 不断执行以下步骤:
    1. 选取一对需更新的变量 \(\alpha_i\), \(\alpha_j\);
    2. 固定 \(\alpha_i\)\(\alpha_j\) 以外的参数, 求解 \((3.1)\)更新 \(\alpha_i\)\(\alpha_j\).
  • 怎么开始第一步? 选取的 \(\alpha_i\)\(\alpha_j\) 对应的两样本之间间隔最大. 分析:固定其他参数后, 仅优化两个参数的过程能做到非常高效. 仅考虑 \(\alpha_i\)\(\alpha_j\), 约束条件可写为
    \[ \alpha_i y_i + \alpha_j y_j = c = -\sum_{k\neq i,j}\alpha_k \alpha_k \qquad \alpha_i, \alpha_j \geq 0, \]
    用其消去 \((3.1)\) 中变量 \(\alpha_j\), 则得到一个关于 \(\alpha_i\) 的单变量二次规划问题, 仅有的约束是 \(\alpha_i \geq 0\), 这样的二次规划问题具有闭式解(解析解), 于是不必调用数值优化算法, 即可高校计算出更新后的 \(\alpha_i\)\(\alpha_j\).

4 参考文献

  • 周志华,《机器学习》, 清华大学出版社

SVM推导

标签:参考文献   优化算法   smo   支持向量机   ext   间隔   line   转变   过程   

原文地址:https://www.cnblogs.com/23oclock/p/12500219.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!