• 支持向量机中的函数距离的理解


    作者: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在某评论中说《统计学习方法》详细的看不下去,多说一句。我个人认为这本书是非常容易上手的教材了,很多内容讲解的清晰又不啰嗦,至少比看很多英文原版轻松很多。而网络上很多博客的讲解,又过于散乱。想要深入的学习,还是得看书。
  • 相关阅读:
    maven(一)maven自带的插件
    Faster RCNN 的细节补充
    leetcode 287
    一句话介绍python线程、进程和协程
    C++中指针和引用的区别
    C++ operator new和new operator的区别
    Faster RCNN算法训练代码解析(3)
    Faster RCNN算法训练代码解析(2)
    Faster RCNN算法训练代码解析(1)
    Faster RCNN算法demo代码解析
  • 原文地址:https://www.cnblogs.com/charlesblc/p/8506992.html
Copyright © 2020-2023  润新知