• 漫步支持向量机(svm)之一


    设输入为$x$,表示训练集的特征向量,输出为$y={1,-1}$,这些向量都属于两类中的其中一类,假设这些向量是线性可分的,现在要找一个最优的平面(在二维的时候为一条直线),将这些特征向量正确分类,除此之外,能够将新的输入分到合适的类。

    设中间直线方程为
    $$hat omega x+hat b=0$$
    好了,svm中不是还有另外两条边界线吗?他们就是中间这条直线的左膀右臂,而且到中间这条直线的距离是一样的,这两条边界线正好和两侧的特征向量紧挨着,他们的方程就可以表示为
    $$hat omega x+hat b=k\
    hat omega x+hat b=-k$$
    为什么等号右边一个是$k$,一个是$-k$呢,因为他们到中间直线的距离都一样啊,只是方向不一样而已,好了,下面做个简单的变换,将等号两边同时除以$k$,则得到
    $$frac {hat omega x}{k}+frac{hat b}{k}=1\
    frac {hat omega x}{k}+frac{hat b}{k}=-1$$
    好了,此时再设
    $$
    omega=frac {hat omega}{k} \
    b=frac{hat b}{k}
    $$
    那么,两条边界直线就变成了
    $$omega x+b=1\
    omega x+b=-1$$
    而且将两式相加,就得到中间的直线方程了
    $$omega x+b=0$$

    看到了吧,很多文章都在讲什么函数间隔,几何间隔,我不讲这些概念,我只讲距离,免得绕来绕去绕到死胡同里。

    这个时候,如何求两条边界线之间的距离呢?

    简单,因为两条边界到中间直线的距离相等,所以只需要求出一条边界线到中间直线的距离,再乘以2,就得到结果了。那怎么求一条边界线到中间直线的距离呢?

    这个简单,运用高中数学空间几何的知识就搞定了,设点P在中间直线上,点Q在边界直线上,那么$$overrightarrow{PQ} cdot omega = |overrightarrow{PQ}|cdot cos( heta) cdot |omega|=dcdot|omega|$$
    好了,$overrightarrow{PQ} cdot omega$等于多少呢?就等于1啦,因为$omega$是法向量,点P在中间直线上,点Q在边界直线上,将两条直线方程相减,等号左边就是$overrightarrow{PQ} cdot omega$,等号右边就是1.

    所以一条边界线到中间直线的距离$d$等于多少呢?

    $$d=frac{1}{|omega|}$$

    那么,两条边界线之间的距离也就是$frac{2}{|omega|}$了

    好了,只要能够求出$d$取最大值时的$omega,b$值,就可以得到最优的分类直线了,当然,在高维空间,就可以得到最优的分类超平面了!

    要知道,只有紧挨着边界线的向量到中间直线的距离才是$d$,边界线以外的向量到中间直线的距离都要大于$d$,因为两类分别为${1,-1}$,所以必须要满足
    $$
    y_i (omega x_i + b) ge 1
    $$

    要求$frac{1}{|omega|}$的最大值,也就等价于求$frac{1}{2}{||omega||}^2$的最小值,这样写的目的是为了转换成凸优化问题,方便求解。好了,此时问题已经很明确了,可用数学语言表示为
    $$
    egin{align*}
    &min limits_{omega, b} && frac{1}{2}{Vert omega Vert}^2 \
    &s.t. && y_i (omega x_i + b) ge 1,i=1,2,ldots,N
    end{align*}
    $$
    其中$N$为样本点的个数


    去吧,去吧,到彼岸去吧,彼岸是光明的世界!
  • 相关阅读:
    Java 端口转发
    Tomcat笔记
    RocketMQ开启ACL后客户端连接报Algorithm HmacSHA1 not available的解决方式
    RSA签名与验签
    小米9升级MIUI11
    【转】linux awk命令详解
    进程和线程
    Jenkins笔记
    【转】Jenkins启动、停止脚本
    UiAutomator源码分析
  • 原文地址:https://www.cnblogs.com/lengyue365/p/6266610.html
Copyright © 2020-2023  润新知