《机器学习》(西瓜书)第六章

2023-10-27

6.1 间隔与支持向量

对于两类训练样本分开的超平面很多,我们需要找到对训练样本局部扰动的“容忍”性最好的那一个。对未见示例的泛化能力最强。(鲁棒性:一个系统或组织抵御或克服不利条件的能力。)距离超平面最近的几个训练样本能够正确分类,他们被称为“支持向量”,两个异类支持向量到超平面的距离之和称为“间隔”。为什么需要通过放缩w和b使得距离超平面最近的样本点所对应的值恰好为+1与-1?

间隔:\gamma = \frac{2}{\left \| w \right \|}

为了找到具有“最大间隔”的超平面,需要使参数\left \| w \right \|最小,这就是支持向量机(SVM)的基本模型。

即转化为:min\frac{1}{2}\left \| w \right \|^{2}(6.6)

6.2 对偶问题

拉格朗日乘子法:

寻找多元函数在一组约束下的极值的方法。可将有d个变量与k个约束条件的最优化问题,转化为具有d+k个变量的无约束优化问题。

对(6.6)的每条约束加拉格朗日乘子,可以写出拉格朗日函数。

L(w,b,\alpha )=\frac{1}{2}\left \| w \right \|^{2}+\sum \alpha i(1-yi(w^{T}xi +b))(6.8)

对上式求w和b的偏导

在这里插入图片描述

代回

 在这里插入图片描述

就可以得到(6.6)的对偶问题。

在这里插入图片描述

其中对偶问题\alpha i是拉格朗日乘子,又原式有不等式约束,故上述过程要满足KKT(Karush-Kuhn-Tucker)条件,即:

在这里插入图片描述

KKT条件是非线性规划最优解的必要条件,关于KKT详见Karush-Kuhn-Tucker (KKT)条件 - 知乎

因此,我们不难知道,在训练结束后,大部分训练样本不需要保留,支持向量是最重要的。

SMO算法

先固定αi之外的所有参数,然后求αi上的极值。由于存在约束∑αiyi = 0,所以固定αi以外的其他变量,αi可由其他变量导出。于是,SMO每次选择两个变量αi和αj,这样,在参数初始化后,SMO不断执行以下步骤:

  • 选取一对需要更新的变量αi和αj;
  • 固定αi和αj以外的参数,求解以得更新后的αi和αj。

6.3 核函数

 对于异或问题或者非线性映射问题,我们将样本从原始空间映射到一个更高维的特征空间,使其在这个空间内线性可分。如果原始空间使有限维,那么一定存在一个高维特征空间使其样本可分。

\phi (x)表示x映射后的特征向量。

f(x)=w^{T}\phi (x)+b

仍然有,

在这里插入图片描述

由6.2可知其对偶函数

求解上式涉及到计算φ(xi)Tφ(xj),这是样本xi与xj映射到特征空间之后的内积,直接计算很困难,故设计一个函数:在这里插入图片描述

我们这里引入的函数即为“核函数”,进行核函数展开,这一展开式又称为“支持向量模式”。

定理6.1(核函数),只要一个对称函数所对应的核矩阵半正定,它就能作为核函数。核函数如果选择不佳,就意味着样本映射到了一个不合适的特征空间,很可能导致性能不佳。

6.4 软间隔与正则化

在现实中往往很难确定合适的核函数使得训练样本在特征空间中线性可分。即使恰好找到了某个核函数使训练集在特征空间中线性可分,也很难断定这个貌似线性可分的结果不是由于过拟合所造成的。

为了缓解这个问题,我们在此允许SVM在一些样本上出错,引入“软间隔”。但是,必须要求在最大化间隔的同时,不满足约束的样本应尽可能少,于是优化目标写为:

在这里插入图片描述

C>0,为一常数,l0/1是“0/1损失函数”,

在这里插入图片描述

 因为l0/1非凸、非连续,所以会寻找一些函数来代替,被称为“替代损失”,

 分别为:hinge损失,指数损失,对率损失。与硬间隔的对偶问题的差别在于:对偶变量αi的约束不同。

正则化:

机器学习中经常会在损失函数中加入正则项,称之为正则化(Regularize)。

目的:防止模型过拟合

原理:在损失函数上加上某些规则(限制),缩小解空间,从而减少求出过拟合解的可能性

 6.5 支持向量回归

支持向量回归(Support Vector Regression, SVR)假设我们能容忍f(x)与y之间最多有ε的偏差。

6.6 核方法

 上式表示定理对损失函数没有性质,并且对正则化项Ω仅要求单调递增,甚至不要求其是凸函数,意味着对一般的损失函数和正则化项,优化问题的最优解都可表示为核函数的线性组合。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

《机器学习》(西瓜书)第六章 的相关文章

随机推荐

  • python gzipped source tarball,下载及安装Python详细步骤

    安装python分三个步骤 下载python 安装python 检查是否安装成功 1 下载Python 2 选择下载的版本 3 点开Download后 找到下载文件 Gzipped source tarball 是Linux系统下载的版本
  • python3.7成功换虚拟环境python3.6

    目录 1 打开CMD 查看自己有多少虚拟环境 2 打开anaconda prompt 终端 创建 3 6环境 3 在pycharm中从3 7正确换配置为3 6环境 1 打开CMD 查看自己有多少虚拟环境 C Users Administra
  • shell 中的单行注释和多行注释

    今天在学习shell编程的时候 当自己想对多行进行注释时 发现自己不会 所以在网上去查询下 参考 作者 lansesl2008 地址 http blog csdn net lansesl2008 article details 205583
  • 疯传全网网络10个运维巡检脚本以及使用小技巧

    哈喽大家好 欢迎来到虚拟化时代君 XNHCYL 大家好 我是虚拟化时代君 一位潜心于互联网的技术宅男 这里每天为你分享各种你感兴趣的技术 教程 软件 资源 福利 每天更新不间断 福利不见不散 第1章 前言 巡检脚本在网络运维中非常重要 近期
  • Jenkins远程命令执行漏洞(CVE-2018-1000861)

    声明 好好学习 天天向上 漏洞描述 Jenkins使用Stapler框架开发 其允许用户通过URL PATH来调用一次public方法 由于这个过程没有做限制 攻击者可以构造一些特殊的PATH来执行一些敏感的Java方法 通过这个漏洞 我们
  • C单元测试框架——CMockery (1) 简介

    cmockery 是google发布的用于C单元测试的一个轻量级的框架 主要特点 免费且开源 google提供技术支持 轻量级的框架 使测试更加快速简单 避免使用复杂的编译器特性 对老版本的编译器来讲 兼容性好 并不强制要求待测代码必须依赖
  • 【设计模式】-设计模式总目录

    设计模式 重要性不多说了 之前在简书上简单总结过 这次再来总结一次 更详细版 以此加深印象和帮助理解 01 单例模式 https blog csdn net lovexiaotaozi article details 83896573 02
  • Java并发编程——ReentrantLock重入锁解析

    重入锁 所谓重入锁 即支持重入性 表示能够对共享资源重复加锁 即当前线程获取该锁再次获取不会被阻塞 重入性 在线程获取锁的时候 如果已经获取锁的线程是当前线程的话则直接再次获取成功 由于锁会被获取n次 那么只有锁在被释放同样的n次之后 该锁
  • 二叉树的层序遍历,以及求层数

    二叉树的中序遍历 最主要的一种方法是用队列 Queue 来实现 下面贴出一份实现代码 class Tree int data Tree lchild 左孩子 Tree rchild 右孩子 以下是主要方法 public static voi
  • 自己实现telnet程序

    转自 http blog csdn net gujintong1110 article details 44278535 include
  • Metasploitable渗透测试实战:ms17-010

    漏洞简介 永恒之蓝 即ms17 010 是指2017年4月14日晚 黑客团体Shadow Brokers 影子经纪人 公布一大批网络攻击工具 其中包含 永恒之蓝 工具 永恒之蓝 利用Windows系统的SMB漏洞可以获取系统最高权限 5月1
  • 论文解读:Improving Nighttime Driving-Scene Segmentation via Dual Image-adaptive Learnable Filters

    论文地址 https arxiv org abs 2207 01331 发表时间 Submitted on 4 Jul 2022 v1 last revised 20 Mar 2023 this version v2 项目地址 https
  • C语言穷举解决最大子序列含测试

    题目再现 设给定一个整数序列 a 1 a 2
  • Python语言:列表初体验

    列表是Python中的一个对象 他类似于C语言中的数组 可以存储许多数据 也可以称之为数据集合 他原则是可以存储不同类型的数据 一般不建议这样使用 有点奇怪 一般情况下一个列表中保存的都是同一种类型的数据 列表的创建 列表 list 是把数
  • qml界面参数传递、返回

    背景 设计设置界面时需要在键盘上设置数值 设定完返回时需要知道返回值是什么 如果用上下级关系实现可能很方便 但是会重复加载按键模块 觉得这样不好 想用stackView push url 初始值 设定后的值 这样的方式 1 想过用带参数信号
  • Java事件机制简介 内含面试题

    面试题分享 云数据解决事务回滚问题 点我直达 2023最新面试合集链接 2023大厂面试题PDF 面试题PDF版本 java python面试题 项目实战 AI文本 OCR识别最佳实践 AI Gamma一键生成PPT工具直达链接 玩转clo
  • 编程是一门技术,更加是一门艺术

    最近一段时间在学习 大话设计模式 书籍开篇就提到 编程是一门技术 更加是一门艺术 这句经典 读罢 我不得不被作者程序设计模式这种与众不同的思维所折服 其实软件编程真的是一门了不起的艺术 谈及 艺术 人们自然会联想到 美 技艺 灵感 等词 但
  • 开关电源输出纹波主要来源五个方面?示波器测纹波方法?

    一 开关电源纹波来源 以20M示波器带宽为限制标准 电压设为PK PK 也有测有效值的 去除示波器控头上的夹子与地线 因为这个本身的夹子与地线会形成环路 像一个天线接收杂讯 引入一些不必要的杂讯 使用接地环 不使用接地环也可以 不过要考虑其
  • armeabi和armeabi-v7a

    在我们android APK的根目录有一个 libs文件夹 此文件夹下包含了armeabi 和armeabi v7a两个文件夹 我们的c代码编译成的本地库 各种 so 就会放在这两个文件夹其中的一个 那armeabi v7a 与 armea
  • 《机器学习》(西瓜书)第六章

    6 1 间隔与支持向量 对于两类训练样本分开的超平面很多 我们需要找到对训练样本局部扰动的 容忍 性最好的那一个 对未见示例的泛化能力最强 鲁棒性 一个系统或组织抵御或克服不利条件的能力 距离超平面最近的几个训练样本能够正确分类 他们被称为