SVM(2) 之 线性可分支持向量机学习方法

上一篇大概讲了一下拉格朗日对偶法以及KKT条件,这一篇推导一下SVM的公式。下一篇举个例子,差不多就结束了。


线性可分支持向量机

首先,考虑一下原始问题


我们其实是想找出一个分割面来,把两个空间的元素一一分开。
假设,这个分割面为:
w^*·x+b^* = 0

间隔

间隔分为两种,函数间隔和几何间隔。

预备知识

设直线 L 的方程为 Ax+By+C=0,点 P 的坐标为(X_0,Y_0),则点 P 到直线 L 的距离为

接下来的很多地方会看到这个式子的影子。

函数间隔

  • 前提
    一般来说,一个点距离分离超平面的远近可以表示分类预测的确定成都,即距离越远,越确定,距离越近,越不确定。
  • 距离
    给定分割平面: w·x+b = 0 ,那么把点 x 代入 |w·x+b| 其实就是点x距离超平面的距离。(回忆一下预备知识上边那个式子)
  • 概念
    w·x+b 与 标记y的符号是否一致,表示分类是否正确。所以可以使用 y(w·x+b)表示分类正确性及确信度。

对于一个训练样本(x^{(i)}, y^{(i)}), 我们定义它到超平面(w,b)的函数间隔为:
\hat{\gamma}_i=y_{i}(w^Tx_{i}+b)
超平面的定义,其实只需要最核心部分的向量,就是被称作支持向量的点。
\hat{\gamma}_i=\min_i\hat{\gamma}_{i}.

几何间隔

\gamma_{i}=y_{i}(\frac{w^T}{\Vert w\Vert}x_{i}+\frac{b}{\Vert w\Vert})
同样的
\gamma=\min_i\gamma_{i}

那么几何间隔与函数间隔是什么关系呢?
\gamma^{(i)}=\frac{\hat{\gamma}^{(i)}}{\Vert w\Vert} 增加了一个||w|| 保证函数间隔不会乱跑

间隔最大化

原始约束最优化问题

  • 最大间隔超平面
    我们的目标是求得一个几何间隔最大的超平面,即最大间隔超平面。

\begin{align} \max_{w,b} &\quad \gamma \\ \\ s.t. &\quad y_{i}(\frac{w}{\Vert w\Vert}\cdot x_i+ \frac{b}{\Vert w\Vert})\ge\gamma, \quad i=1,2,…,N \\ \end{align}

  • 几何间隔 换成 函数间隔

因为几何间隔太复杂 ( 其实就是为了一会推公式方便
\begin{align} \max_{w,b} &\quad \frac{\hat{\gamma}}{\Vert w\Vert} \\ \\ s.t. &\quad y_{i}({w}\cdot x_i+ {b})\ge\hat{\gamma}, \quad i=1,2,…,N \\ \end{align}

  • \hat{\gamma}=1
    因为函数间隔取多少,并不影响该 最优化问题,又由于最大化\frac{1}{\Vert w\Vert} 与最小化 \frac{1}{2}\Vert w\Vert^2 是等价的,于是可获得
    \begin{align} \min_{w,b} &\quad {\frac12}||w||^2 \\ \\ s.t. &\quad y_{i}(w\cdot x_{i}+b)-1\ge 0 \end{align}

为什么要搞这么多次变换,因为拉格朗日乘子法的结构限制,详情见SVM(1) 之 拉格朗日乘子法和KKT条件

需要注意的一点是这里是\ge,使用拉格朗日算子法的时候留意。

对偶算法

拉格朗日函数

首先构造拉格朗日函数

\mathcal{L}(w, b, \alpha)=\frac12||w||^2-\sum_{i=1}^m\alpha_i[y^{(i)}(w^Tx^{(i)}+b)-1].

这里负号和注意 有关

\min_{w,b}\mathcal{L}(w,b,\alpha)

\frac{\partial\mathcal{L}}{\partial w}=w-\sum_{i=1}^m\alpha_iy^{(i)}x^{(i)}=0, \\ \frac{\partial\mathcal{L}}{\partial b}=0-\sum_{i=1}^m\alpha_iy^{(i)}=0

w=\sum_{i=1}^m\alpha_iy^{(i)}x^{(i)}, \\ \sum_{i=1}^m\alpha_iy^{(i)}=0

再将求得的w带回\mathcal{L}(w,b,\alpha)可得到\mathop\min_{w,b}\mathcal{L}(w,b,\alpha)
\begin{align} & \mathop\min_{w,b}\mathcal{L}(w,b,\alpha) \\ & =\frac12(\sum_i^m\alpha_iy_ix_i)(\sum_j^m\alpha_jy_jx_j) - (\sum_i^m\alpha_iy_ix_i)(\sum_j^m\alpha_jy_jx_j)+(\sum_i^m\alpha_iy_ib) + \sum_i^m\alpha_i \\ & = -\frac12(\sum_i^m\alpha_iy_ix_i)(\sum_j^m\alpha_jy_jx_j) + b\sum_i^m\alpha_iy_i + \sum_i^m\alpha_i \\ & = \sum_i^m\alpha_i - \frac12\sum_i^m\sum_j^m\alpha_i\alpha_jy_iy_jx_i^Tx_j \\ & = \sum_i^m\alpha_i - \frac12\sum_i^m\sum_j^m\alpha_i\alpha_jy_iy_j\langle x_i,x_j\rangle \end{align}

\max_{\alpha}\min_{w,b}\mathcal{L}(w,b,\alpha)

\left \{ \begin{split} \max \limits_{\alpha} & -\frac{1}{2} \sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j(x_i \cdot x_j) + \sum_{i=1}^N \alpha_i \\ s.t. & \sum_{i=1}^N \alpha_i y_i = 0 \\ & \alpha_i \ge 0, i = 1,2,\cdots,N \end{split} \right.
将极大转换成极小,得到下面与之等价的对偶最优化问题:
\begin{equation} \left \{ \begin{split} \min \limits_{\alpha} & \frac{1}{2}\sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j(x_i \cdot x_j) - \sum_{i=1}^N \alpha_i \\ s.t. & \sum_{i=1}^N \alpha_i y_i = 0 \\ & \alpha_i \ge 0, i = 1,2,\cdots,N \end{split} \right. \end{equation}

原始问题对w求导的时候得到了 第一个式子,把第一个式子带回wx+b=y得到第二个式子
\begin{equation} \left \{ \begin{split} w^{*} &= \sum_{i=1}^N \alpha_i^{*} y_i x_i \\ b^{*} &= y_j - \sum_{i=1}^N \alpha_i^{*} y_i (x_i \cdot x_j) \end{split} \right. \end{equation}

综上所述,对于给定的线性可分训练数据集,可以首先求对偶问题(2)的解\alpha^{*};再利用上式求得原始问题的解w^{*},b^{*};从而得到分离超平面及分类决策函数。这种算法称为线性可分支持向量机的对偶学习算法,是线性可分支持向量机学习的基本算法。

小结:线性可分支持向量机对偶学习算法

输入:线性可分训练数据集
T = \{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N) \}
其中,x_i \in R^n, y_i \in \{+1,-1\}, i = 1,2,\cdots, N

输出:最大间隔分离超平面和分类决策函数。

(1) 构造并求解约束最优化问题:
\left \{ \begin{split} \min \limits_{\alpha} & \frac{1}{2} \sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j(x_i \cdot x_j) - \sum_{i=1}^N \alpha_i \\ s.t. & \sum_{i=1}^N \alpha_i y_i = 0 \\ & \alpha_i \ge 0, i = 1,2,\cdots,N \end{split} \right.
用SMO算法求 \alpha^{*}=(\alpha_1^{*},\alpha_2^{*},\cdots,\alpha_N^{*})^T

(2 )计算
w^{*} = \sum_{i=1}^N \alpha_i^{*} y_i x_i
b^{*} = y_j - \sum_{i=1}^N \alpha_i^{*} y_i (x_i \cdot x_j)

(3) 求得分离超平面
w^{*} \cdot x + b^{*} = 0
分类决策函数:
f(x) = sign(w^{*} \cdot x + b^{*})

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342