【机器学习chp7】SVM

参考1,笔记

SVM笔记.pdf

参考2:王木头视频

什么是SVM,如何理解软间隔?什么是合叶损失函数、铰链损失函数?SVM与感知机横向对比,挖掘机器学习本质_哔哩哔哩_bilibili

目录

一、SVM模型

二、构建决策函数

三、Lagrange对偶

四、软间隔

五、合页损失(只有软间隔的情况下才有损失函数)

六、软间隔下的Lagrange对偶问题

七、核函数相关

八、SVM与其他机器学习模型的联系——分析机器学习的本质


一、SVM模型

        SVM基本模型是一个线性模型,即 W^{T}X+b=0 ,该模型对所有样本进行一个度量,得到所有度量值。

二、构建决策函数

接下来就是构建损失函数,为这个度量赋予意义,对度量值乘上 \frac{1}{||w||_{2}} ,得到 \frac{1}{||w||_{2}}f_{\theta}^{[G]}(\tilde{X}) ,它表示样本点到决策面的几何距离。所以训练模型的过程就是让这个距离最大,同时满足条件\tilde{Y}f_{\theta}^{[G]}(\tilde{X})\geqslant 0

        对于 \frac{1}{||w||_{2}}f_{\theta}^{[G]}(\tilde{X_{i}}) 表示样本点到决策面的几何距离,即 \frac{1}{||w||_{2}}(W^{T}\tilde{X_{i}}+b) ,由于对于决策面W^{T}X+b=0,将参数 W 和 b 扩大 a 倍,决策面不会变,样本点到决策面的几何距离 \frac{1}{||w||_{2}}(W^{T}\tilde{X_{i}}+b)也不会变,那就将参数 W 和 b 扩大 a_{0} 倍,使得模型对样本点的度量 (W^{T}\tilde{X_{i}}+b) 的最小值等于1或-1,这样,距离就变成了 \frac{1}{||w||_{2}} ,这个距离就只有 w 来控制,但这个 w 受到一个约束 (W^{T}\tilde{X_{i}}+b)\geqslant 1,即目的是最大化\frac{1}{||w||_{2}},等价于最小化{||w||_{2}}

三、Lagrange对偶

        上面的损失函数为解决{||w||_{2}},为简便可写为 \frac{1}{2}{||w||_{2}},同时 w 受到一个约束 (W^{T}\tilde{X_{i}}+b)\geqslant 1.

即优化问题

                        ​​​​​​​        ​​​​​​​        ​​​​​​​             min\ \ \frac{1}{2}{||w||_{2}}\\s.t\ \ \ \ 1-(W^{T}\tilde{X_{i}}+b) \leqslant 0

        注意,这个约束函数看似对于所有的样本都起作用,但这个约束实际上只对约束条件等0的少部分点起作用,因为一部分约束等式等0其他就一定小于0,约束失效。

        从Lagrange问题来说,这个为互补松弛性。

原问题的对偶函数为

        ​​​​​​​        ​​​​​​​        L(W, b, \lambda) = \frac{1}{2} W^T W + \sum_{i=1}^N \lambda_i \left( 1 - y^{(i)} (W^T x^{(i)} + b) \right)

四、软间隔

对于线性不可分问题,引入软间隔。

相应的优化问题为

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        min\ \ \frac{1}{2}{||w||_{2}}+\sum_{i=1}^{N}\xi _{i}\\s.t\ \ \ \ 1-(W^{T}\tilde{X_{i}}+b) \leqslant\xi _{i}

                                                                   \xi _{i}\geqslant 0

五、合页损失(只有软间隔的情况下才有损失函数)

上面的优化问题为

        ​​​​​​​        ​​​​​​​          \min \frac{1}{2} W^T W + C \cdot \sum_{i=1}^N \left[ 1 - y^{(i)} (W^T x^{(i)} + b) \right]_+

调换一下顺序为

        ​​​​​​​        ​​​​​​​        \min \sum_{i=1}^N \left[ 1 - y^{(i)} (W^T x^{(i)} + b) \right]_++\lambda \cdot \frac{1}{2} W^T W

第一项称为经验损失项,第二项称为正则化项。

六、软间隔下的Lagrange对偶问题

优化问题为

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​         min\ \ \frac{1}{2}{||w||_{2}}+\sum_{i=1}^{N}\xi _{i}\\s.t\ \ \ \ 1-(W^{T}\tilde{X_{i}}+b) \leqslant\xi _{i}

                                                            \xi _{i}\geqslant 0

Lagrange对偶问题为

对 \alpha 的求解要用坐标轴上升法。

七、核函数相关

八、SVM与其他机器学习模型的联系——分析机器学习的本质

1、根本目标

        对于二分问题,假设存在一个上帝目标函数  T(X)=\left\{\begin{matrix} 1\\ -1 \end{matrix}\right. ,它的分类结果是完全正确的,只要给出数据,他就能正确地分出是哪一类。而机器学习的目的,是在万千的可能性中去寻找一个函数G(X)=\left\{\begin{matrix} 1\\ -1 \end{matrix}\right.,这个函数也能对X进行判断,且要让它与上帝目标函数尽可能一致,但有一个迈不过去的鸿沟,就是就是对G(X)的训练是在训练集上的,在全集上无法做到它的能力达到T(X)

        T(X) 和 G(X)的功能是对于所有的输入,得到的结果要么是1,要么是-1,这样的函数可以分为两个函数的结合,即一个是模型函数f_{\theta }(X),另一个是决策函数d_{\theta }(x),所有的样本带入到模型函数中,都可以得到一个确定的数值,然后将这个数值带入到决策函数中,判断样本是属于哪一类。

模型函数示例:

        线性模型:f(X) = W^T X + b

        非线性模型:f(X) = a_1 X^2 + a_2 X + b

决策函数示例:

        线性形式:d_{W, b}(X) = \text{sign}(W^T X + b^*)

        核形式:d_{W, b}(X) = \text{sign}\left(\sum_{i=1}^N a_{i}^{*} y_i K(x, x_i) + b^*\right)

然后要比较T(X) 和 G(X),决策函数部分不用比较,只需比较模型函数部分即可,比较模型是否一样的方法是什么呢?就是损失函数 J(\tilde{X}) ,(\tilde{X}表示训练集中的样本)。

所以机器学习问题就可以分为两部分:

(1)上帝目标函数和学习的目标函数有同样的结构,结构是模型函数和决策函数。

(2)为了让学习的模型函数与上帝函数的模型函数解决,需要损失函数和最优化损失函数的算法。损失函数就是挑选的策略,即挑选两个模型之间差异的策略。



一些资料上说,机器学习分为三部分:模型、策略(损失函数)、算法。

可以说,模型函数是在为数据赋予度量,无论模型是一次的,二次的还是高次的,都相当于通过这个模型函数,为数据空间中的数据提供了一个度量,对在模型函数上的点的度量是0,模型函数曲线相当于一个锚点。即模型函数可以为全空间的数据都赋予一个度量,对模型函数上的数据的度量是0。总结来说,f(X)=0是分界线,也是度量的锚点。这个度量是没有现实意义的。

而损失函数在为度量赋予现实意义:

(1)最小二乘法分类中损失函数为度量赋予意义

        在最小二乘法分类的例子中,训练的模型对样本的度量与上帝模型对样本的度量之间有一个服从高斯分布的误差,即

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        f_{\theta}^{[G]}(\tilde{X}) = f_{\theta}^{[T]}(X) + \varepsilon, \quad \varepsilon \sim \mathcal{N}(0, \sigma^2)

损失函数即度量为

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​         \left( f_{\theta}^{[G]}(\tilde{X}) - f_{\theta}^{[T]}(\tilde{X}) \right)^2\rightarrow \sigma^2

即为这个度量之间的差异赋予了一个方差的实际意义。

这里还有一个问题,即样本数据在上帝模型函数值 f_{\theta}^{[T]}(\tilde{X})是不知道的,但有样本的标签,标签值为{1,-1} ,可以把标签作为上帝函数的函数值。由于这个标签要么是1,要么是-1,所以最好对训练函数的函数值也作一下处理,即

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​              \left( tanh(f_{\theta}^{[G]}(\tilde{X})) - f_{\theta}^{[T]}(\tilde{X}) \right)^2\rightarrow \sigma^2

双曲正切处理过后其实这个 \sigma^2 已经不再是方差了,但它仍能表示训练模型的函数值与上帝模型函数值的差异的离散程度,即仍能代表损失函数。

总结一下:最小二乘分类是通过模型函数对样本数据进行度量,然后再对度量之间的差异进行一些修饰,修饰之后,变成了方差,默认方差最小时,f_{\theta}^{[G]}(\tilde{X}) = f_{\theta}^{[T]}(\tilde{X}),即f_{\theta}^{[G]}(X) = f_{\theta}^{[T]}(X)

(2)最大似然估计法

对度量通过sigmoid进行修饰,修饰的结果为概率值,这个概率值在于标签(上帝模型函数值),进行比较,求差异,这里的差异是似然值L(\tilde{Y},\tilde{X}|\theta )。所以最大化似然值时,f_{\theta}^{[G]}(X) = f_{\theta}^{[T]}(X)

(3)SVM

对度量进行修饰,这里的修饰是乘上 \frac{1}{||w||_{2}} ,即 \frac{1}{||w||_{2}}f_{\theta}^{[G]}(\tilde{X}) 表示样本到决策面的几何距离。此时默认几何距离最大,且 \tilde{Y}f_{\theta}^{[G]}(\tilde{X})\geqslant 0 时,f_{\theta}^{[G]}(X) = f_{\theta}^{[T]}(X)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/887199.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Electron将vue2项目打包为桌面exe安装包

目录 一、下载electron模板项目 【electron-quick-start】​ 二、打开项目,安装所有依赖 三、在打exe包的时候报错是因为没有,需要检查并安装之后重新打包; 四、经过这么疯狂的一波操作之后,就可以打包出你想要的exe安装包&am…

摄像机常见的问题及解决方法

文章目录 1)红外网络枪形摄像机白天出现模糊,晚上出现星芒灯2、摄像机夜晚效果调整3、网络摄像机帧率和码流调整4、码流对图像质量的影响 如果你在安装的过程中,出现了以下的问题,请对照下列描述解决你的问题: 1)红外网络枪形摄像机白天出现模糊&#xf…

决策树分类算法【sklearn/决策树分裂指标/鸢尾花分类实战】

决策树分类算法 1. 什么是决策树?2. DecisionTreeClassifier的使用(sklearn)2.1 算例介绍2.2 构建决策树并实现可视化 3. 决策树分裂指标3.1 信息熵(ID3)3.2 信息增益3.3 基尼指数(CART) 4. 代码…

001 数字逻辑概论

1.1 数字信号与数字电路 目标1:what is 数字信号与数字电路 1.1.1.数字技术的发展及其应用 (1)发展: 发展过程特点: 以电子器件的发展为基础,如下图 电子管时代: 电子管;电子管体积大、重量…

Rust中Tracing 应用指南

欢迎来到这篇全面的Rust跟踪入门指南。Rust 的tracing是一个用于应用程序级别的诊断和调试的库。它提供了一种结构化的、异步感知的方式来记录日志和跟踪事件。与传统的日志记录相比,tracing能够更好地处理复杂的异步系统和分布式系统中的事件跟踪,帮助开…

C语言——break、continue、goto

目录 一、break 二、continue 1、在while循环中 2、在for循环中 三、go to 一、break 作用是终止循环&#xff0c;在循环内遇到break直接就跳出循环。 注&#xff1a; 一个break语句只能跳出一层循环。 代码演示&#xff1a; #include<stdio.h>void test01() {for (…

SSM全家桶 1.Maven

或许总要彻彻底底地绝望一次 才能重新再活一次 —— 24.11.20 maven在如今的idea中已经实现自动配置&#xff0c;不需要我们手动下载 一、Maven的简介和快速入门 Maven 是一款为 Java 项目构建管理、依赖管理的工具(软件)&#xff0c;使用 Maven 可以自动化构建测试、打包和发…

Oracle SQL*Plus中的SET VERIFY

在 Oracle SQL*Plus 中&#xff0c;SET VERIFY ON 和 SET VERIFY OFF 是两个用于控制命令执行前后显示变量值的命令。这些命令主要用于调试和验证 SQL 脚本中的变量替换情况。 一、参数说明 1.1 SET VERIFY ON 作用&#xff1a;启用变量替换的验证功能。当启用时&#xff0c;S…

双因子认证:统一运维平台安全管理策略

01双因子认证概述 双因子认证&#xff08;Two-Factor Authentication&#xff0c;简称2FA&#xff09;是一种身份验证机制&#xff0c;它要求用户提供两种不同类型的证据来证明自己的身份。这通常包括用户所知道的&#xff08;如密码&#xff09;、用户所拥有的&#xff08;如…

【Unity ShaderGraph实现流体效果之Function入门】

Unity ShaderGraph实现流体效果之Node入门&#xff08;一&#xff09; 前言Shader Graph NodePosition NodeSplit NodeSubtract NodeBranch Node 总结 前言 Unity 提供的Shader Graph在很大程度上简化了开发者对于编写Shader的工作&#xff0c;只需要拖拽即可完成一个视觉效果…

力扣—15.三数之和

15. 三数之和 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的三元…

Java项目实战II基于SpringBoot前后端分离的网吧管理系统(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、核心代码 五、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 随着互联网技术的不断发展…

【设计模式系列】责任链模式(十六)

一、什么是责任链模式 责任链模式&#xff08;Chain of Responsibility Pattern&#xff09;是一种行为型设计模式。其核心思想是将请求的发送者和接收者解耦&#xff0c;通过一个中介链来传递请求&#xff0c;使得多个对象都有可能接收请求&#xff0c;从而避免请求发送者和接…

算法学习笔记(十):位运算、数论等

一.位运算基础 集合与集合之间的位运算 集合和元素 常用函数 1.使两个整数相等的位更改次数 给你两个正帧数 n 和 k&#xff0c;你可以选择 n 的二进制表示 中任意一个值为 1 的位&#xff0c; 并将其改为0&#xff0c;返回使得 n 等于 k 所需要的更改次数&#xff0c;如无法实…

恋爱通信史之完整性

在前面的章节中&#xff0c;介绍了对通信消息的加密&#xff0c;可以保证保密性(机密性)。虽说中间人无法解密通信消息的内容&#xff0c;但是可以篡改通信的消息。在接受者视角来看&#xff0c;是无法识别通信消息是否被篡改。因此&#xff0c;必须引入一种机制&#xff0c;保…

数据结构第一讲

数据结构定义 算法的定义 什么是好算法&#xff1f; 空间复杂度 时间复杂度 例子1 打印1到N之间的正整数 有递归和循环两种方法实现。 但是在数字变大后&#xff0c;递归的方法会导致内存占用过多而崩溃。 而循环则不会 例子2 写程序给定多项式在X处的值 从里往外算的算…

安卓应用安装过程学习

声明&#xff1a;此文章来自http://shuwoom.com/?p60的学习记录 启动式安装 public static final IPackageManager main(Context context, Installer installer,boolean factoryTest, boolean onlyCore) {PackageManagerService m new PackageManagerService(context, inst…

输入/输出管理 III(磁盘和固态硬盘)

一、磁盘 【总结】&#xff1a; 磁盘&#xff08;Disk&#xff09;是由表面涂有磁性物质的物理盘片&#xff0c;通过一个称为磁头的导体线圈从磁盘存取数据。在读&#xff0f;写操作期间&#xff0c;磁头固定&#xff0c;磁盘在下面高速旋转。如下图所示&#xff1a; 磁盘盘面…

使用flink编写WordCount

1. env-准备环境 2. source-加载数据 3. transformation-数据处理转换 4. sink-数据输出 5. execute-执行 流程图&#xff1a; DataStream API开发 //nightlies.apache.org/flink/flink-docs-release-1.13/docs/dev/datastream/overview/ 添加依赖 <properties>&l…

# issue 4 进程控制函数

目录 一、进程控制函数一 二、进程控制函数二 启动进程&#xff1a;&#xff08;exec系列&#xff09; 创建新进程&#xff1a; 测试代码&#xff1a; 测试结果&#xff1a; 三、进程控制函数三 结束进程&#xff1a; 测试代码&#xff1a; 测试结果&#xff1a; 四、…