zoukankan      html  css  js  c++  java
  • 支持向量机

    逻辑回归的另一种观点

     [{h_ heta }left( x ight) = frac{1}{{1 + {e^{ - { heta ^T}x}}}}]

    如果y=1,我们希望hθ(x)≈1,对应θTx >> 0

    如果y=0,我们希望hθ(x)≈0,对应θTx << 0


    对于一个样本(x, y)来说,它的损失函数为

    [egin{array}{l}
    - left( {ylog left( {{h_ heta }left( x ight)} ight) + left( {1 - y} ight)log left( {1 - {h_ heta }left( x ight)} ight)} ight)\
    = - ylog left( {frac{1}{{1 + {e^{ - { heta ^T}x}}}}} ight) - left( {1 - y} ight)log left( {1 - frac{1}{{1 + {e^{ - { heta ^T}x}}}}} ight)
    end{array}]

    对于y=1的情况

    逻辑回归的损是函数变如图中绿线所示,损失函数变为

    [ - log left( {frac{1}{{1 + {e^{ - z}}}}} ight)]

    支持向量机是将绿线替换成红线,称改变后的损失函数为

    [{mathop{ m Cos} olimits} {t_1}left( z ight)]

    同理,当y=0时

    逻辑回归的损是函数变如图中绿线所示,损失函数变为

    [ - log left( {1 - frac{1}{{1 + {e^{ - z}}}}} ight)]

    支持向量机是将绿线替换成红线,称改变后的损失函数为

    [{mathop{ m Cos} olimits} {t_0}left( z ight)]


    对于逻辑回归而言,它的目的是

    [underbrace {min }_ heta left{ {frac{1}{m}left[ {sumlimits_{i = 1}^m {{y^{left( i ight)}}left( { - log left( {{h_ heta }left( {{x^{left( i ight)}}} ight)} ight)} ight) + left( {1 - {y^{left( i ight)}}} ight)left( { - log left( {1 - {h_ heta }left( {{x^{left( i ight)}}} ight)} ight)} ight)} } ight] + frac{lambda }{{2m}}sumlimits_{j = 1}^n { heta _j^2} } ight}]

    对于支持向量机而言,它将其中部分改变

    [underbrace {min }_ heta left{ {frac{1}{m}left[ {sumlimits_{i = 1}^m {{y^{left( i ight)}}{mathop{ m Cos} olimits} {t_1}left( {{ heta ^T}{x^{left( i ight)}}} ight) + left( {1 - {y^{left( i ight)}}} ight){mathop{ m Cos} olimits} {t_0}left( {{ heta ^T}{x^{left( i ight)}}} ight)} } ight] + frac{lambda }{{2m}}sumlimits_{j = 1}^n { heta _j^2} } ight}]

    为方便起见,可以去掉1/m,这并不会影响θ的取值

    [underbrace {min }_ heta left{ {left[ {sumlimits_{i = 1}^m {{y^{left( i ight)}}{mathop{ m Cos} olimits} {t_1}left( {{ heta ^T}{x^{left( i ight)}}} ight) + left( {1 - {y^{left( i ight)}}} ight){mathop{ m Cos} olimits} {t_0}left( {{ heta ^T}{x^{left( i ight)}}} ight)} } ight] + frac{lambda }{2}sumlimits_{j = 1}^n { heta _j^2} } ight}]

     另一个改变是,去掉λ,在第一项前面乘上C

    [underbrace {min }_ heta left{ {Cleft[ {sumlimits_{i = 1}^m {{y^{left( i ight)}}{mathop{ m Cos} olimits} {t_1}left( {{ heta ^T}{x^{left( i ight)}}} ight) + left( {1 - {y^{left( i ight)}}} ight){mathop{ m Cos} olimits} {t_0}left( {{ heta ^T}{x^{left( i ight)}}} ight)} } ight] + frac{1}{2}sumlimits_{j = 1}^n { heta _j^2} } ight}]

    为帮助理解,可以认为对于A+λB与(C)A+B两个式子,λ越大和C越小都可以表达“B的权重较大”这一概念。而且,当C=1/λ时,两个最小化式子返回同样的θ。


    因此,支持向量机解决的问题是

    [underbrace {min }_ heta left{ {Cleft[ {sumlimits_{i = 1}^m {{y^{left( i ight)}}{mathop{ m Cos} olimits} {t_1}left( {{ heta ^T}{x^{left( i ight)}}} ight) + left( {1 - {y^{left( i ight)}}} ight){mathop{ m Cos} olimits} {t_0}left( {{ heta ^T}{x^{left( i ight)}}} ight)} } ight] + frac{1}{2}sumlimits_{j = 1}^n { heta _j^2} } ight}]

    支持向量机的假设函数为

    [{h_ heta }left( x ight) = left{ {egin{array}{*{20}{c}}
    {egin{array}{*{20}{c}}
    1&{{ heta ^T}x ge 0}
    end{array}}\
    {egin{array}{*{20}{c}}
    0&{{ heta ^T}x < 0}
    end{array}}
    end{array}} ight.]

    以上就是支持向量机的数学定义。

  • 相关阅读:
    莎士比亚名言
    庄子名言
    Javascript: 通过图片url获取图片blob对象
    toast提示 封装
    maya模型导入UE4,如何做到等比导入
    GPU渲染和CPU渲染农场成本对比
    C4D渲线框
    C4D教程笔记——高科技线框3D模型全息投影 X-Wing Hologram Animation
    arnold和redshift渲染器
    使用Redshift渲染器,怎么选电脑配置!
  • 原文地址:https://www.cnblogs.com/qkloveslife/p/9890415.html
Copyright © 2011-2022 走看看