• 19.支持向量机-优化目标和大间距直观理解


    主要内容

    1. 优化目标
    2. 大间距的直观理解
    3. SVM所作的优化

    一、优化目标

    • 支持向量机(Support Vector Machine) 是一个更加强大的算法,广泛应用于工业界和学术界。与逻辑回归和神经网络相比, SVM在学习复杂的非线性方程 时提供了一种更为清晰,更加强大的方式

    通过逻辑回归转变为SVM的步骤

    1.回顾逻辑回归的假设函数:

    在这里插入图片描述

    • 若我们希望假设函数的输出值将趋近于1,则应当θ^Tx远大于0,>> 代表远大于的意思,当 θ^Tx 远大于0时,即到了该图的右边,发现此时逻辑回归的输出将趋近于1
    • 若我们希望假设函数的输出值将趋近于0,则应当θ^Tx远小于0,<< 代表远小于的意思,当 θ^Tx 远小于0时,即到了该图的左边,发现此时逻辑回归的输出将趋近于0

    2.回顾逻辑回归的代价函数:

    在这里插入图片描述

    • 当 y = 1 时,随着 z 增大,h(x)=1/(1+e-z)逼近1,cost逐渐减小;上面的逻辑回归的 cost function 只剩下了第一项(得到上面左图中的灰色曲线)
    • 当 y = 0 时,随着 z 减小,h(x)=1/(1+e-z)逼近0,cost逐渐减小;上面的逻辑回归的 cost function 只剩下了第二项(得到上面右图中的灰色曲线)

    3.为构建SVM,需要修改逻辑回归中的代价函数cost function

    • 将新的 cost function 来代替逻辑回归中的 cost function, 新的 代价函数即为上图中的玫瑰色的曲线,它分为直线和斜线两部分。
    • 我们将左边的函数称为cost1(z),右边函数称为 cost0(z)

    4.构建SVM

    在这里插入图片描述

    • 如上图所示,逻辑回归中的代价函数(cost function)分为 A、B两个部分,进行下面的操作:
    • (1) 使用第3步定义的 cost1() 和 cost0() 替换公式中对应的项
    • (2) 根据 SVM 的习惯,除去 1/m 这个系数(因为1/m 仅是个常量,去掉它也会得出同样的 θ 最优值)
    • (3) 对于逻辑回归, cost function 为 A + λ × B ,通过设置不同的 λ 达到优化目的。对于SVM, 我们删掉 λ,引入常数 C, 将 cost function 改为 C × A + B, 通过设置不同的 C 达到优化目的。 (在优化过程中,其意义和逻辑回归是一样的;可以理解为 C = 1 / λ)

    5. 得到支持向量机SVM的代价函数:

    在这里插入图片描述

    • 注意:逻辑回归中假设的输出是一个概率值。 而 SVM 直接预测 y = 1,还是 y = 0

    6. SVM的预测方法:

    在这里插入图片描述

    • 当θTx ≥ 0 时,SVM 会预测结果为1,其他情况下,预测结果为0

    二、大间距的直观理解

    • 有时支持向量机被称为 大间距分类器,也即也就是找到一条与正类、负类的距离最大的分隔线(如下图中的黑色线)

      在这里插入图片描述

      • 由图中画出的两条蓝线,可以发现黑色的边界和训练样本之间有更大的最短距离,然而分先和蓝线训练样本就很近,在分离样本的时候会比黑线表现的差
      • 我们把这个距离叫做 支持向量机的间距,这是支持向量机具有鲁棒性的原因,因为他努力用一个最大间距来分离样本
      • 鲁棒性 是指系统在不确定性的扰乱下,具有保持某种性能不变的能力,也是在异常和危险情况下系统生存的能力

    三、 SVM 所作的优化

    • 为了增加鲁棒性,得到更好的结果(避免欠拟合、过拟合,应对线性不可分的情况),SVM 做的不仅仅是将间距最大化,还做了下面的这些优化:

    3.1 SVM分类的要求更严格

    • 在逻辑回归中,之前的定义中,θTx ≥ 0 被分为正类,θTx < 0 被分为负类。事实上,SVM 的要求更严格: θTx ≥ 1 被分为正类;θTx ≤ -1 被分为负类

      在这里插入图片描述

    • 这就相当于在在支持向量机中嵌入了一个额外的安全因子,或者说安全的间距因子

    3.2 关于参数 C

    在这里插入图片描述

    • 当C 特别大时,我们要使得代价函数第一项为0,则应该满足 θ^Tx >=1 且 y=1 或者 θ^Tx <=1 且 y=0

    • 当第一项为0后,目标变为求最小化第二项

    在这里插入图片描述

    • 如果想将样本用最大间距分开,即将 C 设置的很大。那么仅因为一个异常点,决策边界会从下图的黑线变成那条粉线,这是不明智的

      在这里插入图片描述

    • 如果 C 设置的小一点,最终得到这条黑线。它可以忽略一些异常点的影响,而且当数据线性不可分的时候,也可以将它们恰当分开,得到更好地决策边界

    • 因为 C = 1 / λ,因此:

      • C 较小时,相当于 λ 较大。可能会导致欠拟合,高偏差 variance

      • C 较大时,相当于 λ 较小。可能会导致过拟合,高方差 bias

    • C的取值问题才是SVM的核心,C取得不那么大时,才能既有大边界又能对某个/些异常数据不敏感

    如果觉得文章不错的话,可以给我点赞鼓励一下我,欢迎小伙伴收藏文章
    关注我,我们一起学习,一起进步!!!

  • 相关阅读:
    马斯洛人类需求五层次理论(Maslow‘s Hierarchy of Needs)
    【多式联运】基于帝国企鹅算法、遗传算法、粒子群算法求解多式联运路径优化问题附matlab代码
    Java高级---Spring Boot---1引言
    postfix 禁用附件功能
    vue用vite配置代理解决跨域问题(target、rewrite和changeOrigin的使用场景)
    Go入门系列:你好,世界
    SSM咖啡点餐管理系统开发mysql数据库web结构java编程计算机网页源码eclipse项目
    【计算机网络】VLAN原理和配置
    C++设计模式02-——策略设计模式
    搞定面试官 - MySQL 中你知道如何计算一个索引的长度嘛?
  • 原文地址:https://blog.csdn.net/qq_44749630/article/details/126076029