zoukankan      html  css  js  c++  java
  • 支持向量机中的函数距离的理解

    作者:Jason Gu
    链接:https://www.zhihu.com/question/20466147/answer/28469993
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    SVM是通过超平面将样本分为两类。
    在超平面wcdot x+b=0确定的情况下,|wcdot x+b|可以相对地表示点x距离超平面的远近。对于两类分类问题,如果wcdot x+b>0,则x

的类别被判定为1;否则判定为-1。

    所以如果y(wcdot x+b)>0,则认为x的分类结果是正确的,否则是错误的。且y(wcdot x+b)的值越大,分类结果的确信度越大。反之亦然。

    所以样本点(x_{i}, y_{i})与超平面(w, b)之间的函数间隔定义为
    gamma_{i} = y_{i} (wcdot x_{i} + b)

    但是该定义存在问题:即wb同时缩小或放大M倍后,超平面并没有变化,但是函数间隔却变化了。所以,需要将w的大小固定,如||w||=1,使得函数间隔固定。这时的间隔也就是几何间隔 。

    几何间隔的定义如下
    gamma_{i} = y_{i} (frac{w}{||w||}cdot x_{i} + frac{b}{||w||})

    实际上,几何间隔就是点到超平面的距离。想像下中学学习的点(x_i, y_i)到直线ax+by+c=0的距离公式
    d(x_i, y_i) = frac{|ax_i+by_i+c|}{sqrt{a^2+b^2}}
    所以在二维空间中,几何间隔就是点到直线的距离。在三维及以上空间中,就是点到超平面的距离。而函数距离,就是上述距离公式中的分子,即未归一化的距离。

    定义训练集到超平面的最小几何间隔是
    gamma = min_{i=1,...,n} gamma_{i}

    SVM训练分类器的方法是寻找到超平面,使正负样本在超平面的两侧,且样本到超平面的几何间隔最大。
    所以SVM可以表述为求解下列优化问题
    underset{w, b}{max} ;;;;;; gamma
    s.t. ;;; y_{i} (frac{w}{||w||}cdot x_{i} + frac{b}{||w||})geq gamma

    以上内容在《统计学习方法》中,均有详细的讲解。

    看到LZ在某评论中说《统计学习方法》详细的看不下去,多说一句。我个人认为这本书是非常容易上手的教材了,很多内容讲解的清晰又不啰嗦,至少比看很多英文原版轻松很多。而网络上很多博客的讲解,又过于散乱。想要深入的学习,还是得看书。
  • 相关阅读:
    使用Chrome断点调试javascript程序
    vue-iview-admin项目过大导致打包失败
    vue+iview后台管理系统util.ajax跨域问题的解决方法
    webpack vue热加载编译速度慢
    (转)网站架构变迁
    (转)工作不到一年,做出了100k系统,老板给我升职加薪
    (转)CPU说:这个世界慢!死!了!
    (转)一个故事搞懂“ERP“
    (转)手动搭建自己的nuget服务器及使用
    doc系统maven打包脚本
  • 原文地址:https://www.cnblogs.com/charlesblc/p/8506992.html
Copyright © 2011-2022 走看看