• SVM(1)Linear separable


    Our training data consists of m tuples (x(1), y(1)), (x(2), y(2)), . . . , (x(m), y(m)), where x(i) = (x(i1), x(i2), …,x(id))T and y(i) ∈ {−1, 1},denote the class label. The hyperplane(decision boundary) of a linear classifier can be written in the following form: wTx + b = 0, where w and b are parameters of the model. 

    如图:对任意样本x有:

    我们可以缩放w和b的值,使得:

    在b11和b12上分别去样本点x1,x2,则

    w·(x1-x2) = 2

    ||w|| × d = 2

    得:d = 2/||w||

    SVM的目标就是最大化margin 且满足y(i)(wTx(i) + b) > 1

    等价于:

    min ||w||2/2           subject to y(i)(wTx(i) + b) ≥ 1

    上面的目标函数可有以下解释:

    ****************************************************************************

    函数间隔(functional margin)和几何间隔(geometric margin)

    样本的函数间隔:

    考虑w和b,如果同时加大w和b,比如在(wTx(i) + b)前面乘个系数比如2,那么所有点的函数间隔都会增大二倍,这个对求解问题来说不应该有影响,因为我们要求解的是wTx + b=0,同时扩大w和b对结果是无影响的。这样,我们为了限制w和b,可能需要加入归一化条件||w||=1,毕竟求解的目标是确定唯一一个w和b,而不是多组线性相关的向量。

    上面定义的函数间隔是针对某一个样本的,而全局样本上的函数间隔为

    几何间隔:

    r(i)实际上就是点到平面距离。

    再换种更加优雅的写法:

    当||w||=1时就是函数间隔。因为函数间隔是我们定义的,在定义的时候就有几何间隔的色彩。同样,同时扩大w和b,w扩大几倍,||w||就扩大几倍,结果无影响。

    同样定义全局的几何间隔

    我们的目标是寻找一个hyperplane,使得离hyperplane最近的点能有更大的margin。即:

            subject to y(i)(wTx(i) + b) ≥ γ , ||w||=1

    这里用||w||=1规约w,使得wTx + b是几何间隔。

    到此,我们已经将模型定义出来了。如果求得了w和b,那么来一个特征x,我们就能够分类了,称为最优间隔分类器。接下的问题就是如何求解w和b的问题了。

    由于||w||=1不是凸函数,我们想先处理转化一下,考虑几何间隔和函数间隔的关系,我们改写一下上面的式子:

    这时候其实我们求的最大值仍然是几何间隔,只不过此时的w不受||w||=1的约束了。然而这个时候目标函数仍然不是凸函数,没法直接代入优化软件里计算。前面说到同时扩大w和b对结果没有影响,但我们最后要求的仍然是w和b的确定值,因此,我们对做一些限制,以保证我们解是唯一的。这里为了简便我们取。这样的意义是将全局的函数间隔定义为1,也即是将离hyperplane最近的点的距离定义为1/||w|| 。此时margin为2/||w|| ,求2/||w||的最大值相当于求

    ****************************************************************************

    上面得到后,下面的任务就要求w和b

    这是个凸优化问题(目标函数是自变量的二次函数,且只有线性约束了),可用标准的Lagrange multiplier解决。

    The Lagrange (primal) function:

    分别对w, b求偏导,并令其等于0

    上面求最小化Lp中包括w, b , clip_image033[6],三个参数,可以把Lp转化为只包括clip_image033[6] 的函数LD(对偶函数dual function),把求得的偏导代入Lp

    于是得到

    问题就转化为最大化LD,但LD需要满足KKT条件:

    我们可以看到:

    如果y(i)(wTx(i) + b) > 1,也即x(i)是不在hyperplanes b11 or b12上,那么 clip_image033[6] = 0;

    如果clip_image033[6] > 0, 那么y(i)(wTx(i) + b) = 1,也即x(i)是在hyperplanes b11 or b12上。

    在hyperplanes b11 or b12上的点就是支持向量(support vector)。

    如果求出了clip_image033[6],就可求出clip_image073[6]

  • 相关阅读:
    镜像切换Logreader Agent报错:分发数据库中可能存在不一致的状态(续)
    镜像切换Logreader Agent报错:分发数据库中可能存在不一致的状态
    SQL优化案例—— RowNumber分页
    SQL Server 服务器磁盘测试之SQLIO篇(二)
    SQL Server 服务器磁盘测试之SQLIO篇(一)
    SQL Server内存遭遇操作系统进程压榨案例
    git添加ssh公钥报错
    leetcode_1187. Make Array Strictly Increasing 使数组严格递增_[DP]
    leetcode_1293. Shortest Path in a Grid with Obstacles Elimination_[dp动态规划]
    leetcode_1292. Maximum Side Length of a Square with Sum Less than or Equal to Threshold_[二维前缀和]
  • 原文地址:https://www.cnblogs.com/liangzh/p/2738450.html
Copyright © 2020-2023  润新知