前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >支持向量机

支持向量机

作者头像
杨熹
发布2018-04-02 16:13:50
8300
发布2018-04-02 16:13:50
举报
文章被收录于专栏:杨熹的专栏

Udacity Machine Learning Support Vector Machine


在做分类问题时,想要找到最好的那条线:

会选择中间的那条线,为什么没有选择平行的另外两条线,因为它们属于 Overfitting ,过度相信了 training data,

那要怎么样找到这条线呢:

注意此时的 y 是分类用的 label,要么是 +1,要么是 -1 。

需要思考一个问题是,在沿着这条线上的点,它们的 Label 是什么呢?是0。

所以这个 Boundary Line 会有3个可能值,同时想要两条灰色线之间的距离最大。

那么怎么计算这条线的距离呢

可以在两条灰色线各取一个点,然后计算它们之间的距离,也就是在 +1 和 -1 的两条线上取点。

x1-x2 和这条线的方向是一样的,我们想要这条线达到最大,那就需要 norm(W) 越小,等式左边的部分叫做 Margin。

所以我们的目标就是,找到一个 Decision Boundary 来最大化 Margin。

这样就可以很好地分类。而这个问题就转化到了等式右边,也就是要最大化 2/norm(W),并且可以正确地分类 。 把这个问题转化为数学问题是:

而最大化 2/norm(W) 这个问题,可以进一步转化为更简单的问题,这是个 Quadratic Programming Problem:

进一步还等价于下面这个问题:

关于上面这个问题,有一些特质: 1.如果知道了 alpha,就可以得到 w,知道了 w,就可以知道 b

2.通常情况下,大多数 alpha=0,意味着这些点对w没有影响 也就是说,为了找到这个解,有些 vector 是没有贡献的,你只需要从少数的 vector 就可以获得找到最优 W 的 support。

即,构建一个 machine,只包含这些 support vector,即这些非零的 alpha 相应的点。

直观上看,0-alpha 就是离 Decision Boundary 比较远的那些点,它们很难对这条线做贡献。

有点像 KNN,因为只有 local points 起作用,但是前提是你已经知道哪些 points matter。 求解这个问题,其实是在找到底哪些点可以 throw away。

Xi transpose Xj,意义是,一个向量在另一个向量的投影,如果垂直则为0,如果方向相同,则为正,如果相反,则为负,所以这是一个 similarity 的表示。

有时并不能完全地分出两类,但是可以让误差最小。


对于下面这个数据,我们想得到一个 circle

一类在圈内,一类在圈外,用 phi 这个三维的函数就可以分开,而不需要事先知道谁是正是负。但是却不需要用 phi,因为它可以用 (X‘T)^2 来表示。

公式里的 Xi'Xj 可以用 kernel 来表示,来衡量 Similarity

意义就是 向更高维度的空间投影,在高维空间里就可以被 linearly seperated。

下面这几种形式都可以作为 kernel。 第三个是多项式。 第四个是 radial basis kernel,如果 x和y 很近,那么 k 就趋近于 1,如果 x和y 很远,那么 k 就趋近于 0,而且加上平方之后,这个还是对称的。 第五个更像是 sigmoid。 kernel function 可以有很多,而且它的应用也很广,可以用于 string 和 figure。 这些都属于 Mercer Condition,是一种用距离去衡量的方法,而不是随意地构造。


总结:

1.Margin 很重要,它关系着 Generalization 还是 Overfitting 2.目标是 Margin 的最大化 3.Margin 最大化的方法:Quadratic Problem 4.在QP中知道了什么是 Support Vector,只需要一个子集就可以建立 Classifier 5.Kernel Trick:通过向高维空间投影,把低维的非线性 Boundary 转化为高维空间的线性 classifier。

另外关于SVM,July有一篇非常详细的博文: http://blog.csdn.net/v_july_v/article/details/7624837

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016.06.23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 在做分类问题时,想要找到最好的那条线:
  • 那要怎么样找到这条线呢:
  • 那么怎么计算这条线的距离呢
  • 所以我们的目标就是,找到一个 Decision Boundary 来最大化 Margin。
  • 进一步还等价于下面这个问题:
  • 即,构建一个 machine,只包含这些 support vector,即这些非零的 alpha 相应的点。
  • 对于下面这个数据,我们想得到一个 circle
  • 公式里的 Xi'Xj 可以用 kernel 来表示,来衡量 Similarity
  • 总结:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档