支持向量机

支持向量机(svm)是一种用于分类的算法,它的思想是找出一条平面最大间隔的将数据集分开。它可以分为硬间隔分类和软间隔分类。

1.硬间隔分类器
给定数据集\{(x_1,y_1),(x_2,y_2)...(x_n,y_n)\},要找出一条平面y=w^Tx+b最大间隔的分割数据集的优化函数可以表示为
\max \min dist(w^T,b)
s.t \quad y_i(w^Tx_i+b)>0; i=1,2,...n
dist(w^T,b)表示数据上的数据到平面的距离,意思表示为从n个样本点中找到,离平面最近的那个点的距离,使这个距离最大化,同时使样本点分类正确。根据点到平面的距离公式,dist(w^T,b)可以表示为
dist(w^T,b)=\frac{|w^Tx+b|}{||w||}
优化函数可以替换为:
\max \limits_{w,b} \min \limits_{x_i,i=1,2,3...} \frac{|w^Tx_i+b|}{||w||}
可以优化为:
\max \limits_{w,b} \frac{1}{||w||} \min \limits_{x_i,i=1,2,3...}y_i(w^Tx_i+b)
假设 \min \limits_{x_i,i=1,2,3...}y_i(w^Tx_i+b)存在最小值\gamma,由于w,b作为超平面的系数,可以缩放,有无数个,可以直接令\gamma=1,是不会影响分类效果,方便优化计算,最终的优化函数化简为:
\min \limits_{w,b} \frac{1}{2}||w||
s.t \quad y_i(w^Tx_i+b)>=1; i=1,2,...n

2.拉格朗日函数
上面带约束的优化函数可以用拉格朗日乘子法构造拉格朗日函数(Lagrange function)再通过求解其对偶问题(dual problem)得到原始问题的最优解。拉格朗日函数为
L(w,b,\alpha)=\frac{1}{2}||w|| + \sum_{i=1}^n\alpha_i(1-y_i(w^Tx_i+b)
原问题可以表示为
\begin{cases} \min \limits_{w,b} \max \limits_{\alpha} L(w,b,\alpha)\\ s.t \quad \alpha_i>=0 \end{cases}
对偶问题可以表示为
\begin{cases} \max \limits_{\alpha} \min \limits_{w,b} L(w,b,\alpha)\\ s.t \quad \alpha_i>=0 \end{cases}
在svm 中原问题和对偶问题同解,所以可以直接通过求解对偶问题。
对w,b求偏导
\begin{cases} \frac{\partial L}{\partial w}= w-\sum_{i=1}^n\alpha_iy_ix_i=0 \\ \frac{\partial L}{\partial b}=\sum_{i=1}^n\alpha_iy_i=0 \end{cases}
得出
w=\sum_{i=1}^n\alpha_iy_ix_i=0
将其带入到L中得到关于\alpha的优化函数
L(\alpha)=\sum_{i=1}^n\alpha_i -\frac{1}{2}\sum_{i=1}^n \sum_{j=1}^n\alpha_i\alpha_jy_iy_jx_i^Tx_j
s.t \quad \alpha_i>=0 \quad \sum_{i=1}^n\alpha_iy_i=0

关于b的求解可以通过kkt条件,
\begin{cases} \alpha_i>=0 \\ \alpha_i(1-y_i(w^Tx_i+b))=0\\ 1-y_i(w^Tx_i+b)<=0 \end{cases}
\alpha>0的点为支持向量找出这些点如(x_k,y_k),有kkt条件可以计算出:
b=y_k-\sum_{i=1}^n\alpha_iy_ix_ix_k

3.软间隔分类器
软间隔的svm 分类器的思想是允许分类有一些错误,在原来的优化函数上加一个惩罚项。在硬间隔分类器上是严格要求y_i(w^Tx_i+b)>=1,现在允许少数点可以划分错误。表达式为
\max(0,1-y_i(w^Tx_i+b))
加入到原来的优化函数中
\frac{1}{2}||w|| + C\sum_{i=1}^n\max(0,1-y_i(w^Tx_i+b))
C>0为惩罚系数,可以将上式优化为
\frac{1}{2}||w|| + C\sum_{i=1}^n\xi_i
s.t. \quad y_i(w^Tx_i+b)>=1-\xi_i \\ \xi_i>=0
与硬间隔类似,我们可以通过拉格朗日乘子法将其转换为对偶问题进行求解
L(w,b,\xi,\alpha,\beta)=\frac{1}{2}||w||+C\sum_{i=1}^n\xi_i+\sum_{i=1}^n\alpha_i(1-\xi_i-y_i(w^Tx_i+b)-\sum_{i=1}^n\beta_i\xi_i
先最小化\min \limits_{w,b,\xi},分别对w,b,\xi求导
\begin{cases} \frac{\partial L}{\partial w}= w-\sum_{i=1}^n\alpha_iy_ix_i=0 \\ \frac{\partial L}{\partial b}=\sum_{i=1}^n\alpha_iy_i=0\\ \frac{\partial L}{\partial \xi}=C-\alpha_i-\beta_i=0 \end{cases}
最后得到的优化函数和硬间分类器是一样的,只是\alpha的限制不一样
L(\alpha)=\sum_{i=1}^n\alpha_i -\frac{1}{2}\sum_{i=1}^n \sum_{j=1}^n\alpha_i\alpha_jy_iy_jx_i^Tx_j
s.t \quad 0<= \alpha_i<=C ,\quad \sum_{i=1}^n\alpha_iy_i=0
软间隔分类的kkt条件
\begin{cases} \alpha_i>=0,\beta_i>=0 \\ \alpha_i(1-y_i(w^Tx_i+b))=0\\ 1-y_i(w^Tx_i+b)<=0\\ \beta_i\xi_i=0 \end{cases}
参数b也可以通过kkt条件求解

  1. SMO算法
    前面都是关于如何计算w,b,SMO(Sequential Minimal Optimization,序列最小优化)是用来求解\alpha,它的基本思想是将原问题求解 (α1,α2,...,αN) 这 N 个参数的问题分解成多个子二次规划的问题分别求解,每个子问题只需要求解其中的 2 个参数,每次通过启发式选择两个变量进行优化,不断循环,直到达到函数的最优值。之前关于\alpha的优化函数如下:
    L(\alpha)=\sum_{i=1}^n\alpha_i -\frac{1}{2}\sum_{i=1}^n \sum_{j=1}^n\alpha_i\alpha_jy_iy_jx_i^Tx_j
    s.t \quad 0<= \alpha_i<=C ,\quad \sum_{i=1}^n\alpha_iy_i=0
    假设选择两个变量\alpha_1,\alpha_2,其他变量\alpha_i(i=3,4....N)是固定的,原来的式子可以化简为只包含\alpha1,\alpha2的式子
    \min \limits_{\alpha_1,\alpha_2} w(\alpha_1,\alpha_2)=\frac{1}{2}K_{11}\alpha_1^2+\frac{1}{2}K_{22}\alpha_2^2+ \\ y_1y_2K_{12}\alpha_1\alpha_2 -(\alpha1-\alpha2) +y_1\alpha_1\sum_{i=3}^ny_i\alpha_iK_{i1}+y_2\alpha_2\sum_{i=3}^ny_i\alpha_iK_{i2}
    s.t \quad \alpha_1y1+\alpha_2y2=-\sum_{i=1}^ny_i\alpha_i=\xi \\ 0 \leq \alpha_i \leq C
    通过求导得到关于\alpha 的最优解为:
    \begin{cases} \alpha_2^{new,unc}=\alpha_2^{old} + \frac{y_2(E_1-E_2)}{\eta}\\ \eta=K_{11}+K_{22}-2K{1,2}\\ \end{cases}
    由于\alpha_2 是受条件约束的,约束条件如下当y1不等于y2时
    \begin{cases} L\leq\alpha_2\leq H\\ L=\max(0,\alpha_2^{old}-\alpha_1^{old})\\ H = \min(C,C+\alpha_2^{old}-\alpha_1^{old}) \end{cases}
    当y1=y2时
    \begin{cases} L\leq\alpha_2\leq H\\ L=\max(0,\alpha_2^{old}+\alpha_1^{old})\\ H = \min(C,C+\alpha_2^{old}+\alpha_1^{old}) \end{cases}
    最后可得
    \alpha_2^{new}=\begin{cases} H ; \alpha_2>H\\ alpha_2^{new,unc} ; L \leq \alpha_2 \leq H\\ L; \alpha_2<L \end{cases}
    \alpha_1^{new}=\alpha_1^{old}+y_1y_2(\alpha_2^{old}-\alpha_2^{new})
    关于阈值b和插值E的更新
    每次更新完\alpha_1,\alpha_2以后,b^{new}的更新公式为
    b_1^{new}=-E_1-y1K_{11}(\alpha_1^{new}-\alpha_1^{old})-y2K_{21}(\alpha_2^{new}-\alpha_2^{old})+b_1^{old}
    b_2^{new}=-E_2-y1K_{12}(\alpha_2^{new}-\alpha_2^{old})-y2K_{22}(\alpha_2^{new}-\alpha_2^{old})+b_2^{old}
    E_i的更新公式如下
    E_i^{new}=\sum_{j=1}^n\alpha_jy_jK_{ij}+b^{new}-y_i
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,390评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,821评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,632评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,170评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,033评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,098评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,511评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,204评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,479评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,572评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,341评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,893评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,171评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,486评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,676评论 2 335