如果SVM是一位剑客 我们该如何理解他

尝试从一剑流的角度 快速了解SVM(更新中)


什么是SVM?

我们需要暂时忘记他“支持向量机”这个名字
而要从一个故事说起

在遥远的北方有一位剑客,人称剑术流浪大师(Saber Vargrant Master)
他游走四方,专业劝架,不伤人,不见血
20多年来纵横沙场,未尝败绩,从街头斗殴到集团群架,都能见到他的身影
然而这样一个人,却自负得很,随身只带一柄剑,一天只会出鞘一次,一次只劈一剑
人们也因此称之为“一剑流”
在这里插入图片描述
上图为某次劝架现场

浩然荡漾的剑气把人群一分为二,除了个别性子急的打手已经纠缠不清,其余的人都被立刻制止
把东西分成两部分
好像是他与生俱来的天赋

SVM的原理是什么

他也因为自己的傲慢招惹了不少麻烦,树敌无数
海王星(NeptuNe)就是其中一个
他一直想找SVM的麻烦,但迫于没有把柄又打不过
只好忍气吞声许多年
终于有一天,海王星想了一个好办法
那就是让他失误
只要伤了人,他就再也不能劝架了

于是在一个阳光明媚的上午,SVM听到小道消息,欣然来到了一处打架现场
双方摩拳擦掌,蓄势待发,空气中弥漫着杀气
在这里插入图片描述

海王星在一旁的角落里偷偷观察
只见SVM不慌不忙
以自己为原点建了个坐标系
他手握住了剑柄,像凝住了一般,默然而立
突然似雷霆万钧,时间仿佛掉了帧
广场中央出现了一道大口子
打架的人都呆住了
剑术流浪大师扬长而去

“其实他的剑术很简单,只有三个步骤”
海王星旁边的军师开口道,
“首先要找到冲刺的方向
然后再决定位移的距离
最后电光一闪,
在胸前自左到右横斩过一道剑气”
海王星摇了摇头,还是没有懂

“这样吧,我来给你画个图”
军师继续说道
“我们用w这个向量表示SVM冲刺的方向,标量 l 则代表冲刺的距离,而横划剑气斩总是与他运动的方向正交
因此,我们很容易就得到这样的模型”
在这里插入图片描述
“直接砍不就完事儿了,为啥还搞这么复杂?”
海王星有点摸不着头脑
军师说那你就想简单了,SVM的剑法不仅有三个步骤
还有三条关乎剑道的原则:

  • 稳,即以最大的可能去保证不伤害任何一个闹事者,这就需要他斩出的剑气离所有的人都要足够远,而且越远越好,他的剑气会在这个最大的间隔内的中心劈出一条分界线
  • 准,即尽可能让两个帮派的人分别在分界线两边,不然达不到劝架的效果
  • 狠,即剑气所到之处,必须寸草不生,作为安全区的最大间隔之内(不包含边界上),没有任何的东西
    “知道了这三条原则,我们甚至可以预估他的行动”
    军师得意的说道
    “以铁二为例,SVM要考虑他与分界线的最短距离,就需要进行如下计算”
    w ⃗ ⋅ x 铁 2 ⃗ ∥ w ∥ − l &lt; 0 \frac{\vec{w}\cdot \vec{x_{铁2}}}{\left \| w \right \|} - l&lt;0 ww x2 l<0
    “其实就是铁二在冲刺方向的投影减去冲刺的距离,可以发现最后的结果是个负值,不过没关系,符号的正负此时只是代表了它在剑气的哪一边。”
    w ⃗ ⋅ x 王 3 ⃗ ∥ w ∥ − l &gt; 0 \frac{\vec{w}\cdot \vec{x_{王3}}}{\left \| w \right \|} - l&gt;0 ww x3 l>0
    “比如算一下王三,明显就大于0嘛
    这个时候我们可以规定圆圈代表的秃头帮都是负样本,而三角脑袋的那群人就是正样本
    当然,也有可能剑气不够,导致正样本到分界线的距离也会小于0”
    “这也看不出啥来呀”
    “当然了,我们还需要做一些简化,距离这个东西还是统一一下符号才好”
    w ⃗ ⋅ x 某 人 ⃗ − ∥ w ∥ l ∥ w ∥ \frac{\vec{w}\cdot \vec{x_{某人}}-\left \| w \right \|l}{\left \| w \right \|} ww x wl
    b = − ∥ w ∥ l b=-\left \| w \right \|l b=wl,则有:
    w ⃗ ⋅ x 某 人 ⃗ + b ∥ w ∥ \frac{\vec{w}\cdot \vec{x_{某人}}+ b}{\left \| w \right \|} ww x +b
    再设 y i = { 1  if  x 是 正 样 本 − 1  if  x 是 负 样 本 ( i 是 打 手 中 的 某 一 个 人 ) y_{i}=\begin{cases} 1&amp; \text{ if } x是正样本 \\ -1&amp; \text{ if } x是负样本 \end{cases}(i是打手中的某一个人) yi={11 if x if x(i) ,那么就有:
    y i ⋅ w ⃗ ⋅ x 某 人 ⃗ + b ∥ w ∥ &gt; 0 y_{i}\cdot\frac{\vec{w}\cdot \vec{x_{某人}}+ b}{\left \| w \right \|}&gt;0 yiww x +b>0
    “是不是很神奇!”
    军师看了看他的老板,对方一脸木然
    “没关系,这才刚开始呢
    我们现在已经有明确的目标了,那就是下面这个式子”
    m a x w , b [ m i n x i ( y i ⋅ w ⃗ ⋅ x i ⃗ + b ∥ w ∥ ) ] max_{w,b}[min_{x_{i}}(y_{i}\cdot\frac{\vec{w}\cdot \vec{x_{i}}+ b}{\left \| w \right \|})] maxw,b[minxi(yiww xi +b)]
    “用人话解释就是,先找到离分界线垂直距离最近的人( x i x_{i} xi),并在这个人(比如王三)的角度来考虑,找到最大的一组w和b,使他离分界线尽可能的远。这样的话,如果连最危险的人都可以不为剑气所及,那么其他人就更不会受到丝毫的伤害了。”
    “可是这个安全区咋设置啊,到现在为止一直在讨论和分界线的距离啊”
    “这里就是整个环节的关键了!因为SVM觉得真正的剑道就在于精益求精,由字诀可以知道,光离分界线远还不够,关键是能有多远有多远
    在这里插入图片描述
    “比如这个图(为了省事把所有人都简化了= =),安全区的范围最远也只能从达到离分界线最近的那几个人身上划过去(王三瑟瑟发抖),否则再远就触犯字诀了!很明显,这时候的分界线就应该正好在安全区的正中央,因为剑道不可以偏袒任意一方”
    这时候就有:
    y i ⋅ w ⃗ ⋅ x i ⃗ + b ∥ w ∥ ≥ d y_{i}\cdot\frac{\vec{w}\cdot \vec{x_{i}}+ b}{\left \| w \right \|} \geq d yiww xi +bd
    y i ⋅ ( w ⃗ ⋅ x i ⃗ + b ) ≥ d ∥ w ∥ y_{i}\cdot(\vec{w}\cdot \vec{x_{i}}+ b) \geq d\left \| w \right \| yi(w xi +b)dw
    “这里聪明的你可以发现,d啊, ∥ w ∥ \left \| w \right \| w啊其实都是常数,是可以放缩的,只要让w和b同时也进行同尺度的放缩,我们就总会得到下面的式子”
    y i ⋅ ( w ⃗ ⋅ x i ⃗ + b ) ≥ 1 y_{i}\cdot(\vec{w}\cdot \vec{x_{i}}+ b)\geq1 yi(w xi +b)1
    “不对啊,w是向量,b是标量,咋还能一起放缩呐?”
    “这个问题问得好”
    军师搓了搓手,似乎在意料之中
    “你还记得b的定义是什么吗?”
    b = − ∥ w ∥ l b=-\left \| w \right \|l b=wl
    w ⃗ = ∥ w ∥ ⋅ e ⃗ \vec w=\left \| w \right \|\cdot \vec{e} w =we
    其中 e ⃗ \vec{e} e 是单位方向向量,大小为1
    “是不是发现w和b可以随 ∥ w ∥ \left \| w \right \| w一同变化!我们通过改变 ∥ w ∥ \left \| w \right \| w的大小就可以实现放缩了”
    “那 ∥ w ∥ \left \| w \right \| w是什么呢?”
    可以理解为SVM冲向分界线位置的速度
    但事实上这个参数可大可小,也就是说无论他是瞬间到达目标位置释放剑气,还是溜达过去随手斩一剑,都不会对分界线的位置和方向产生影响。所以,在这里我们可以利用这个灵活可变的参数,使式子右边变成一个方便计算的1来简化我们之后的计算”
    “还要算啥?”

到这里我们先稍事休息,整理一下故事场景中的那些对应理论的部分。
劝架 = 分类问题
分界线 = 超平面
安全区 = 最大间隔
w = 超平面的法向量
∥ w ∥ \left \| w \right \| w = 法向量的模长
打手 = 样本
站在安全边界上的打手 = 支持向量

“算 ∥ w ∥ \left \| w \right \| w呀!你看看重新整理之后的式子”
y i ⋅ ( ∥ w ∥ ⋅ e ⃗ ⋅ x i ⃗ − ∥ w ∥ l ) ≥ d ∥ w ∥ y_{i}\cdot(\left \| w \right \|\cdot \vec{e}\cdot \vec{x_{i}}-\left \| w \right \|l) \geq d\left \| w \right \| yi(we xi wl)dw
“我知道了,要把不等式右边变成1, ∥ w ∥ \left \| w \right \| w就等于 1 d \frac{1}{d} d1
“老板啊你可算开窍啦,这一步很重要,此时的安全区的间隔就是”
2 d = 2 ∥ w ∥ 2d=\frac{2}{\left \| w \right \|} 2d=w2
“我们现在将所有的信息都绑定在了这个看似毫无用处和关联的标量 ∥ w ∥ \left \| w \right \| w的身上
换句话说,SVM剑道的真正精妙之处,其实在于步法
快慢并不会影响分界线的生成,
但安全间隔套上了 ∥ w ∥ \left \| w \right \| w的外衣, ∥ w ∥ \left \| w \right \| w不由得变得特殊起来
成为了找到最优路径的傀儡
“你说这话太复杂了,那 ∥ w ∥ \left \| w \right \| w到底有什么用啊?”
“我们接着看,要想遵循字诀,我们就必须要一个最大的安全区,也就是得到”
m a x 2 ∥ w ∥ max\frac{2}{\left \| w \right \|} maxw2
换而言之,就是找到
m i n 1 2 ∥ w ∥ min\frac{1}{2}\left \| w \right \| min21w
∥ w ∥ &gt; 0 \left \| w \right \|&gt;0 w>0,所以可以等价为下面的式子
m i n 1 2 ∥ w ∥ 2 min\frac{1}{2}\left \| w \right \|^{2} min21w2
“这么写是没错,但为啥要改成这种形式……以前的多简单,就是个分式”
“这个嘛,咱们暂且按下不提,咱们先把现阶段得到的信息汇总一下,好为明天对付SVM做准备”
{ y i ( w ⃗ ⋅ x i ⃗ + b ) ≥ 1 m i n 1 2 ∥ w ∥ 2 \left\{\begin{matrix} y_{i}(\vec{w}\cdot \vec {x_{i}}+b)\geq 1\\ min\frac{1}{2}\left \| w \right \|^{2} \end{matrix}\right. {yi(w xi +b)1min21w2
“这就是SVM的全部剑道”
“那明天……”
军师看了看挂在天边的落日,光晕圆圆满满镶了一层金边
“别急,我已经有主意了”

对偶、极值、SVM的核

第二天还没亮,剑术大师就被窗外的喧哗声吵醒了
他一推开门,鼎沸的人声就灌了进来
外面层层围围
站了1000多个人
势力更大一些的帮派把小帮派完全围了起来
在这里插入图片描述
“噢我明白了,剑术大师的软肋,就在于只能斩一剑”
“没错,对于这种非线性劝架问题,他总不能让剑气拐弯嘛”
海王星和军师一大早便召集了所有的手下
创造了一个闭合的干架场景
看准了一剑流的特点并攻其要害
目的就是为了让SVM无计可施
彻底放弃
最终退出江湖

只见剑术流浪大师
振臂一呼,凌空大喝
周遭的空气震荡起来
剑气
宛若滔滔江水连绵不绝
在空中划出了一道波
在这里插入图片描述
军师楞了一下,缓缓的说道
“这次要见血了”
海王星也点了点头
然而话音未落
事情却出乎了他们的意料

打手们顿时吓了一跳,不少人惊得蹦了起来
小帮派的个子小
大帮派的身子重
他们在空中形成了一个塔型结构
而剑气不偏不倚
在两个帮派之间划出了一道分界线
在这里插入图片描述
海王星惊得张大了嘴
军师却沉默不语,好像在思索什么
等到人群散尽,他才张了口
“SVM,用到了核方法”
“……”
“我们接着昨天的结论,继续往下走一走你就明白了
如果我是SVM,我就会将剑道发挥到极致
也就是说,要同时满足两个约束条件……”
他从上衣兜里掏出一支笔,在墙上写写画画起来

====================================================================================
剑术流浪大师15岁那年
师傅带他去江边看雪
寒风凛冽
漫漫的白之间有一股活力在流动
那是冻不住的湍流
“你看这江,过得去么”
师傅抬手指向对岸
“江急峡宽,人力难为”
SVM知道,这次出来的目的绝不会单单是为了看雪
“我可以”
话音未落,一席灰衣随风而起,像一只大鸟飘到了对岸
SVM咬了咬牙,一跃而起
不出意外的掉到了江里
当他狼狈地爬到岸上的时候,师傅已经生好了火在等他
在这里插入图片描述
“你跳不过来,是因为你心里觉得这条峡太宽
而我却觉得,它很窄”
师傅随手捡起一根木枝,刷刷在雪地上写了一个公式
y i ⋅ ( ∥ w ∥ ⋅ e ⃗ ⋅ x i ⃗ − ∥ w ∥ l ) ≥ d ∥ w ∥ y_{i}\cdot(\left \| w \right \|\cdot \vec{e}\cdot \vec{x_{i}}-\left \| w \right \|l) \geq d\left \| w \right \| yi(we xi wl)dw
SVM记得这个公式,它讲述了在冲刺的时候应该如何把剑气藏在步法里
“空间这个概念,其实是相对的
从不同的角度来看
事情可能会很不一样”
y i d ⋅ ( e ⃗ ⋅ x i ⃗ − l ) ≥ 1 \frac{y_{i}}{d}\cdot(\vec{e}\cdot \vec{x_{i}}-l) \geq 1 dyi(e xi l)1
SVM往火堆旁靠了靠,慢慢睁开眼,他看到
树变窄了
树上的鸟儿变窄了
师傅窄了
江也窄了
茫茫的白色空间仿佛是被压缩了一般
他如醍醐灌顶
如果同时改变参照,空间的尺度是可以随意放缩的
用另一个角度看
河的宽度窄了
但是助跑的速度也变慢了
不知道江的宽度
但知道自己可以跑多快
这两种情况其实解决的问题是一样的
可是把江的宽度放缩到了一个自己熟悉的已知的宽度
就可以把握跳过河的分寸
而在这个问题中,d恰恰就是一个未知数
与其去解决这未知的d组成的问题
不如把d消去换作常数1组成的问题
将问题拉到自己的熟知的领域里
再用自己最擅长的方法去解决
空间是可操作的

“劝架也是一样的
只不过把渡江,换成了度人”
y i d ⋅ ( e ⃗ ⋅ x i ⃗ − l ) = y i ⋅ ( w ⃗ ⋅ x i ⃗ + b ) ≥ 1 \frac{y_{i}}{d}\cdot(\vec{e}\cdot \vec{x_{i}}-l)=y_{i}\cdot(\vec{w}\cdot \vec{x_{i}}+b)\geq1 dyi(e xi l)=yi(w xi +b)1
1 − y i ⋅ ( w ⃗ ⋅ x i ⃗ + b ) ≤ 0 1-y_{i}\cdot(\vec{w}\cdot \vec{x_{i}}+b)\leq0 1yi(w xi +b)0
师傅继续在地上写着公式
“拿刚才这个例子来比喻的话
满足这个式子的人都在岸上
不满足的可就在水里了
可我们不允许这样的事情发生
劝架的艺术,就在最好没有人会越界
即使是进入安全区也不可以”
∑ i n [ 1 − y i ⋅ ( w ⃗ ⋅ x i ⃗ + b ) ] ≤ 0 \sum _{i}^{n}[1-y_{i}\cdot(\vec{w}\cdot \vec{x_{i}}+b)]\leq0 in[1yi(w xi +b)]0
“这个时候很明显,式子左边越小于好
你记不记得还有什么也是越小越好?”
1 2 ∥ w ∥ 2 \frac{1}{2}\left \| w \right \|^{2} 21w2
SVM脱口而出,这个太在熟悉不过了
师傅没有回答,继续写道
1 2 ∥ w ∥ 2 + ∑ i n [ 1 − y i ⋅ ( w ⃗ ⋅ x i ⃗ + b ) ] \frac{1}{2}\left \| w \right \|^{2}+\sum _{i}^{n}[1-y_{i}\cdot(\vec{w}\cdot \vec{x_{i}}+b)] 21w2+in[1yi(w xi +b)]
“我知道了!只要对这个式子求最小
一举就可以在满足两条约束的条件下,找到最优的分界线”
m i n w , b { 1 2 ∥ w ∥ 2 + ∑ i n [ 1 − y i ⋅ ( w ⃗ ⋅ x i ⃗ + b ) ] } min_{w,b}\left \{\frac{1}{2}\left \| w \right \|^{2}+\sum _{i}^{n}[1-y_{i}\cdot(\vec{w}\cdot \vec{x_{i}}+b)] \right \} minw,b{21w2+in[1yi(w xi +b)]}
“接近了,你再想想”
SVM有点沮丧,他本以为自己的答案已经很完美了
之间师傅大笔一挥
式子中间多了个α
m i n w , b { 1 2 ∥ w ∥ 2 + ∑ i n α i [ 1 − y i ⋅ ( w ⃗ ⋅ x i ⃗ + b ) ] } min_{w,b}\left \{\frac{1}{2}\left \| w \right \|^{2}+\sum _{i}^{n}\alpha_{i}[1-y_{i}\cdot(\vec{w}\cdot \vec{x_{i}}+b)] \right \} minw,b{21w2+inαi[1yi(w xi +b)]}
“这个是……权重?”
“你仔细想想,站在一群打手最前排的人,和躲在人群最后的那个胆小鬼
我们在划分界线的时候,需要对他们进行同等考虑吗?”
“哦哦……它代表了一个人在这场争斗中的自我价值
我们需要对某些人重点关注
一般站在最前面的几个人都是狠角色
他们的站位
很大程度上会影响我对局势的判断”

江 = 间隔(margin)
自我价值 = 拉格朗日乘子
狠角色 = 支持向量

SVM捡起来了一只小树杈,走过去在式子前面又加了一点东西
m i n w , b { m a x a i { 1 2 ∥ w ∥ 2 + ∑ i n α i [ 1 − y i ⋅ ( w ⃗ ⋅ x i ⃗ + b ) ] } } min_{w,b}\left \{max_{a_{i}}\left \{ \frac{1}{2}\left \| w \right \|^{2}+\sum _{i}^{n}\alpha_{i}[1-y_{i}\cdot(\vec{w}\cdot \vec{x_{i}}+b)]\right \}\right \} minw,b{maxai{21w2+inαi[1yi(w xi +b)]}}
“考虑问题需要考虑最坏的情况”
SVM看师傅没有说话,于是接着说了下去
“我不知道每个人的价值
也不知道他们会对这个局势造成什么样的影响
那么不妨假设我遇到的是最恶劣的情形
这些打手的价值分布
恰好导致了这个式子内部的值是最大最大的
然后我再根据这种假设
找到一组w,b,使得这种恶劣情形造成的损失降低到最小
那么真实情况无论是什么样子
我也都不怕了
因为我此时根据这一组w,b斩出的分界线
可以解决包含假设的所有可能

一阵寒风吹过
不知道是不是错觉
SVM看到师傅好像微微打了个冷战
多少年之后的日子里
剑术流浪大师还常常会在梦里梦到这一场景
他也会偶尔闪过一丝怀疑
因为他知道他师傅
从来都不怕冷

===================================================================================================

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值