支持向量机核心内容

支持向量机的学习路线:从回归问题到二分类问题,最大化间隔,max 1/||w||,min ||w||2/2,拉格朗日对偶问题,KKT条件,SMO算法。

1. 从线性回归到支持向量机

线性回归很简单:

给定一系列(x,y),求线性函数f(x) = w*x + b,使得
min Σ(f(x) - y)^2

如果y不是连续值,而是离散的分类结果,该怎么处理?特别的,在二分类问题中该怎么处理?简单,将连续的y转化为离散的-1和1就行了。
转换方法有很多,比如最简单的:

g = -1 if y <0
g = 1 if y≥ 0

为了方便以后求导,这里用logistic函数进行转换,这里记作g(y)。logistic函数的形状可以参考https://blog.csdn.net/bitcarmanlee/article/details/51154481。模型变为:

给定一系列(x,y),求线性函数f(x) = w*x + b,使得
min Σ(g(f(x)) - y)^2

但是……但是……Σ(g(f(x)) - y)^2 没有简单的方法去求解……所以我们换个方法,使用另外一个损失函数,将优化问题改为“最大化间隔”,详情可以参考https://blog.csdn.net/v_july_v/article/details/7624837
求解模型变为:

给定一系列(x,y),求线性函数f(x) = w*x + b,使得
max d
s.t. d ≤ y*f(x)/||w||
y*f(x)称为函数间隔,y*f(x)/||w||称为几何间隔。

||w||是w的L2范数,也就是常说的欧式空间几何长度,可以参考https://blog.csdn.net/shijing_0214/article/details/51757564。修改后的模型称为支持向量机。

2. 模型转换

首先将问题中的中间变量d消除,令d = c/||w||,则问题变为

给定一系列(x,y),求线性函数f(x) = w*x + b,使得
max c/||w||
s.t. y*f(x) ≥ c

f(x) = w*x+b与||w||可以进行等比例缩放,因此问题可以变为:

max 1/||w||
s.t. y*f(x) ≥ 1

将||w||的平方根消除,对目标函数做点小变换,问题转为:

min w^2/2
s.t. y*f(x) ≥ 1

这个时候已经可以用非线性规划的工具去求解了。

3. 拉格朗日对偶问题

接下来就是非常tricky的部分了。首先将问题转化为拉格朗日对偶问题,然后用SMO算法可以快速求解。为嘛转换为拉格朗日对偶问题?除了方便求解外,还有一个原因:有的时候我们没有办法用线性函数来进行分类(即f(x)是非线性函数),我们得使用核函数来进行处理,这种处理方法是基于拉格朗日对偶问题转换后的形式进行操作的。
首先,原问题的拉格朗日函数为L = w2/2 + Σλ*(1-y*f) ,通过KKT我们将问题转化为:

L' = 0
y*f ≥ 1
λ*(y*f - 1) = 0
λ ≥ 0

其中:

L'|w = 0 => w = Σλyx
L'|b = 0 => Σλy = 0

然后可以得到L = Σiλi - (Σi,jλiλjxixj))/2,顺利把w和b都消除掉了~并且有

L'|λ = 0
λ ≥ 0

上面的条件可以转化为求解一个最大化优化问题:

max L(λ)
s.t. λ ≥ 0

至于为什么可以这么转化,具体可以参考:https://blog.csdn.net/blackyuanc/article/details/67640844

4. SMO:针对支持向量机的快速求解方法

1998年,Microsoft Research的John C. Platt在论文《Sequential Minimal Optimization:A Fast Algorithm for Training Support Vector Machines》中提出针对上述问题的解法:SMO算法,它很快便成为最快的二次规划优化算法,特别是在针对线性SVM和数据稀疏时性能更优。简单来说,步骤是:
循环执行下述步骤:
(1) 选取两个λi和λj
(2) 求解问题:
max L(λi, λj)
s.t. Σλy = 0
直到L无法再优化。具体的推导和步骤还可以参考https://www.cnblogs.com/xxrxxr/p/7538430.html

5. 核函数

当遇到线性不可分的问题时,我们可以简单的用一个新的一次变量代替高次变量,这样相当于把低维的特征空间映射到高维空间。
比如说y = x+x2就可以用y = x1+x2代替,其中x1 = x,x2 = x2,特征空间由一维的[x]变为了二维的[x1,x2]。
定义一个非线性映射:φ(x),比如说上面例子里面φ(x) = [x, x2],我们可以对(φ(x),y)使用支持向量机。将决策规则中的f(t)从wφ(t) + b改为f(t) = wy<φ(x)φ(t)> + b (这里x,y都是已知的训练数据点,t是预测用的特征数据),则拉格朗日对偶问题优化的L(λ) = Σiλi - (Σi,jλiλjyiyj<xi,xj>))/2。
为了避免爆炸性的计算引入核函数。定义核函数K(x,z) = <φ(x)φ(z)>为计算两个向量在隐式映射过后的空间中的内积的函数,可以得到L(λ) = Σiλi - (Σi,jλiλjyiyjK(xi,xj)))/2。我们其实并不需要内积展开的显式结构,只需要有不同x下的内积的值就行了,因此使用核函数的形式事先在低维上进行计算,而将实质上的分类效果表现在了高维上。

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

推荐阅读更多精彩内容