亲宝软件园·资讯

展开

SVM推导

二十三点 人气:0
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 参考文献 + 周志华,《机器学习》, 清华大学出版社

加载全部内容

相关教程
猜你喜欢
用户评论