支持向量机(Support Vector Machines)(需要优化)

1.优化目标

一个更加强大的算法广泛的应用于工业界和学术界,它被称为支持向量机(Support Vector
Machine)。与逻辑回归和神经网络相比,支持向量机,或者简称 SVM,在学习复杂的非线性方程时提供了一种更为清晰,更加强大的方式。
在这里插入图片描述
如果有一个 𝑦 = 1的样本,我的意思是不管是在
训练集中或是在测试集中,又或者在交叉验证集中,总之是 𝑦 = 1,现在我们希望ℎ𝜃(𝑥) 趋近 1。因为我们想要正确地将此样本分类,这就意味着当 ℎ𝜃
(𝑥)趋近于 1 时,𝜃𝑇𝑥 应当远大于 0,这里的>>意思是远远大于 0。这是因为由于 𝑧 表示 𝜃𝑇𝑥,当 𝑧远大于 0 时,即到了该图的右边,你不难发现此时逻辑回归的输出将趋近于 1。相反地,如果我们有另一个样本,即𝑦 = 0。我们希望假设函数的输出值将趋近于 0,这对应于𝜃𝑇𝑥,或者就是 𝑧 会远小于 0,因为对应的假设函数的输出值趋近 0。
在这里插入图片描述
考虑两种情况:
一种是𝑦等于 1 的情况;另一种是 𝑦 等于 0 的情况。
在第一种情况中,假设 𝑦 = 1 ,此时在目标函数中只需有第一项起作用,因为𝑦 = 1时,(1 − 𝑦)项将等于 0。因此,当在 𝑦 = 1 的样本中时,即在 (𝑥, 𝑦)中 ,我们得到 𝑦 = 1在这里插入图片描述
用 𝑧 表示𝜃𝑇𝑥,即: 𝑧 = 𝜃𝑇𝑥。当𝑧 增大时,也就是相
当于𝜃𝑇𝑥增大时,𝑧 对应的值会变的非常小。对整个代价函数而言,影响也非常小。这也就解释了,为什么逻辑回归在观察到正样本𝑦 = 1时,试图将𝜃
𝑇𝑥设置得非常大。因为,在代价函数中的这一项会变的非常小。
现在开始建立支持向量机,我们从这里开始:
在这里插入图片描述
另外一种情况是当𝑦 = 0时,此时如果你仔细观察代价函数只留下了第二项,因为第一项被消除了。如果当𝑦 = 0时,那么这一项也就是 0 了。
支持向量机是一种监督学习算法,用于二分类和多分类问题。其目标是找到一个最优的超平面(或者说决策边界),将不同类别的样本分开,并最大化样本与超平面之间的间隔。

具体而言,支持向量机的优化目标是最小化模型的结构风险,也就是最小化模型的经验风险和结构风险之和。其中,经验风险是指模型在训练集上的分类误差,而结构风险则是为了防止过拟合而引入的正则化项。

支持向量机的经验风险由两部分组成:边界误差和惩罚项。边界误差是指样本被错误分类的程度,而惩罚项是为了避免模型过于复杂而引入的惩罚因子。支持向量机通过最小化经验风险来寻找最优的超平面。

在最小化经验风险的同时,支持向量机还引入了结构风险,通过正则化项来控制模型的复杂度。正则化项的选择可以是L1正则化(Lasso)或L2正则化(Ridge),用于约束模型的参数。

通过最小化经验风险和结构风险的组合,支持向量机能够找到一个最优的超平面,使得样本分类误差最小化,并且具有较好的泛化能力。

总结来说,吴恩达介绍的支持向量机的优化目标是最小化模型的经验风险和结构风险之和,通过最大化间隔来实现样本的有效分类,并控制模型的复杂度以避免过拟合。

2.大边界的直观理解

在这里插入图片描述
如果你有一个正样本,𝑦 = 1,则只有在𝑧 >= 1时,代价函数cos𝑡1(𝑧)才等于 0。换句话说,如果你有一个正样本,我们会希望𝜃𝑇𝑥>=1,反之,如果𝑦 = 0,我们观察一下,函数cos𝑡0(𝑧),它只有在𝑧 <= −1的区间里函数值为 0。这是支持向量机的一个有趣性质。事实上,如果你有一个正样本𝑦 = 1,则其实我们仅仅要求𝜃𝑇𝑥大于等于 0,就能将该样本恰当分出,这是因为如果𝜃𝑇𝑥>0 大的话,我们的模型代价函数值为 0,类似地,如果你有一个负样本,则仅需要𝜃𝑇𝑥<=0 就会将负例正确分离,但是,支持向量机的要求更高,不仅要能正确分开输入的样本,即不仅仅要求𝜃𝑇𝑥>0,我们需要的是比 0 值大很多,比如大于等于 1,我也想这个比 0 小很多,比如我希望它小于等于-1,这就相当于在支持向量机中嵌入了一个额外的安全因子,或者说安全的间距因子。
在这里插入图片描述
如果 𝐶非常大,则最小化代价函数的时候,我们将会很希望找到一个使第一项为 0 的最优解。遵从以下的约束:𝜃𝑇𝑥(𝑖) >= 1,如果 𝑦(𝑖)是等于 1 的,𝜃𝑇𝑥(𝑖) <= −1。
在这里插入图片描述
存在一条直线把正负样本分开。当然有多条不同的直线,
可以把正样本和负样本完全分开。
在这里插入图片描述
黑色这条线在分离正样本和负样本上它显得的更好,这条黑线有更大的距离,这个距离叫做间距(margin)。
在这里插入图片描述
当画出这两条额外的蓝线,我们看到黑色的决策界和训练样本之间有更大的最短距离。然而粉线和蓝线离训练样本就非常近,在分离样本的时候就会比黑线表现差。因此,这个距
离叫做支持向量机的间距,而这是支持向量机具有鲁棒性的原因,因为它努力用一个最大间距来分离样本。因此支持向量机有时被称为大间距分类器,
回顾 𝐶 = 1/𝜆,因此:
𝐶 较大时,相当于 𝜆 较小,可能会导致过拟合,高方差。
𝐶 较小时,相当于 𝜆 较大,可能会导致低拟合,高偏差。

在吴恩达的机器学习课程中,他也提到了大边界(large margin)的直观理解,并将其作为支持向量机(Support Vector Machine,SVM)算法的核心概念之一。

吴恩达通过一个简单的二维数据集的例子来解释大边界的直观理解。假设我们有一个二分类问题,其中包含两类不同的数据点。吴恩达指出,支持向量机的目标是找到一个决策边界,使得这个边界在两类数据点之间有尽可能大的间隔。

直观地理解,大边界可以类比为一个街道,而支持向量机的目标是要找到一个决策边界,使得两类数据点在这条街道的两侧。这样的决策边界能够为新的未见过的数据点提供一个相对宽阔的间隔,使得其能够被正确分类。

吴恩达解释说,大边界的直观理解有助于提高模型的泛化能力。当我们遇到新的未见过的数据时,这个大边界可以提供更多的空间,使得模型在分类时更有自信,并减少错误分类的可能性。此外,大边界还能够提高模型对于数据噪声和异常点的鲁棒性,因为它们很可能在这个宽阔的间隔之外。

通过最大化间隔来实现大边界的直观理解是支持向量机算法的关键。支持向量机通过选择最优的支持向量(位于间隔边界上的样本点),来定义决策边界的位置和间隔的宽度。最终,支持向量机的目标是找到一个最优的超平面,使得间隔最大化。

总结来说,吴恩达在他的机器学习课程中强调了大边界的直观理解,并解释了其在支持向量机算法中的重要性。大边界可以提高模型的泛化能力和鲁棒性,使得模型能够更好地应对新的未见过的数据,并减少错误分类的风险。

3. 核函数

支持向量机也可以不使用核函数,不使用核函数又称为线性核函数(linear kernel),当我们不采用非常复杂的函数,或者我们的训练集特征非常多而实例非常少的时候,可以采用这种不带核函数的支持向量机。
下面是支持向量机的两个参数𝐶和𝜎的影响:
𝐶 = 1/𝜆
𝐶 较大时,相当于𝜆较小,可能会导致过拟合,高方差;
𝐶 较小时,相当于𝜆较大,可能会导致低拟合,高偏差;
𝜎较大时,可能会导致低方差,高偏差;
𝜎较小时,可能会导致低偏差,高方差。

在吴恩达的机器学习课程中,核函数(kernel function)是支持向量机(Support Vector Machine,SVM)算法中的一个重要概念。

核函数的作用是将输入的数据映射到更高维度的特征空间,以便在该特征空间中更容易找到线性可分的决策边界。通过引入核函数,支持向量机可以在高维特征空间中进行非线性的分类。

吴恩达在课程中介绍了两种常用的核函数:线性核函数和高斯核函数(也称为径向基函数)。

线性核函数:线性核函数是最简单的核函数,它直接计算输入数据的内积。在特征空间中,线性核函数对应着一个线性的决策边界。当数据在原始特征空间中是线性可分的时候,线性核函数可以得到很好的分类结果。

高斯核函数:高斯核函数是一种常用的非线性核函数。它通过计算输入数据与参考点之间的距离的指数函数来进行映射。高斯核函数对应着一个非线性的决策边界,可以处理非线性可分的数据。高斯核函数的参数决定了不同数据点之间的相似度,从而影响了决策边界的形状。

除了线性核函数和高斯核函数,还有其他的核函数可供选择,如多项式核函数、sigmoid核函数等。不同的核函数适用于不同的数据集和问题类型,需要根据具体情况进行选择。

通过使用核函数,支持向量机可以将低维的非线性问题转化为高维的线性问题,从而能够更好地处理复杂的分类任务。

总结来说,吴恩达的机器学习课程介绍了核函数的概念,并重点介绍了线性核函数和高斯核函数。核函数的作用是将数据映射到更高维度的特征空间,以便在该空间中寻找线性可分的决策边界。核函数是支持向量机算法中非常重要的一部分,可以处理非线性可分的数据。

4.使用支持向量机

在高斯核函数之外我们还有其他一些选择,如:
多项式核函数(Polynomial Kernel)
字符串核函数(String kernel)
卡方核函数( chi-square kernel)
直方图交集核函数(histogram intersection kernel)
这些核函数的目标也都是根据训练集和地标之间的距离来构建新特征,这些核函数需要
满足 Mercer’s 定理,才能被支持向量机的优化软件正确处理。
多类分类问题
假设我们利用之前介绍的一对多方法来解决一个多类分类问题。如果一共有𝑘个类,则我们需要𝑘个模型,以及𝑘个参数向量𝜃。我们同样也可以训练𝑘个支持向量机来解决多类分类问题。但是大多数支持向量机软件包都有内置的多类分类能,我们只要直接使用即可。
尽管你不去写你自己的 SVM 的优化软件,但是你也需要做几件事:
1、是提出参数𝐶的选择。我们在之前的视频中讨论过误差/方差在这方面的性质。
2、你也需要选择内核参数或你想要使用的相似函数,其中一个选择是:我们选择不需要任何内核参数,没有内核参数的理念,也叫线性核函数。因此,如果有人说他使用了线性核的 SVM(支持向量机),这就意味这他使用了不带有核函数的 SVM(支持向量机)。
从逻辑回归模型,我们得到了支持向量机模型,在两者之间,我们应该如何选择呢?
下面是一些普遍使用的准则:
𝑛为特征数,𝑚为训练样本数。
(1)如果相较于𝑚而言,𝑛要大许多,即训练集数据量不够支持我们训练一个复杂的非线
性模型,我们选用逻辑回归模型或者不带核函数的支持向量机。
(2)如果𝑛较小,而且𝑚大小中等,例如𝑛在 1-1000 之间,而𝑚在 10-10000 之间,使用高
斯核函数的支持向量机。
(3)如果𝑛较小,而𝑚较大,例如𝑛在 1-1000 之间,而𝑚大于 50000,则使用支持向量机会非常慢,解决方案是创造、增加更多的特征,然后使用逻辑回归或不带核函数的支持向量机。
值得一提的是,神经网络在以上三种情况下都可能会有较好的表现,但是训练神经网络可能非常慢,选择支持向量机的原因主要在于它的代价函数是凸函数,不存在局部最小值。
今天的 SVM 包会工作得很好,但是它们仍然会有一些慢。当你有非常非常大的训练集,且用高斯核函数是在这种情况下,我经常会做的是尝试手动地创建,拥有更多的特征变量,然后用逻辑回归或者不带核函数的支持向量机。如果你看到这个幻灯片,看到了逻辑回归,或者不带核函数的支持向量机。在这个两个地方,我把它们放在一起是有原因的。原因是:
逻辑回归和不带核函数的支持向量机它们都是非常相似的算法,不管是逻辑回归还是不带核函数的 SVM,通常都会做相似的事情,并给出相似的结果。但是根据你实现的情况,其中一个可能会比另一个更加有效。但是在其中一个算法应用的地方,逻辑回归或不带核函数的SVM 另一个也很有可能很有效。但是随着 SVM 的复杂度增加,当你使用不同的内核函数来学习复杂的非线性函数时,这个体系,你知道的,当你有多达 1 万(10,000)的样本时,也可能是 5 万(50,000),你的特征变量的数量这是相当大的。那是一个非常常见的体系,也许在这个体系里,不带核函数的支持向量机就会表现得相当突出。你可以做比这困难得多需要逻辑回归的事情。

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

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

相关文章

css 中 flex 布局最后一行实现左对齐

问题 flex 布局最后一行没有进行左对齐显示&#xff1a; <div classparent><div classchild></div><div classchild></div><div classchild></div><div classchild></div><div classchild></div><div…

2022年至2023年广东省职业院校技能大赛高职组“信息安全管理与评估”赛项样题

2022 年至 2023 年广东省职业院校技能大赛高职组“信息安全管理与评估”赛项样题 一、 第一阶段竞赛项目试题 本文件为信息安全管理与评估项目竞赛第一阶段试题&#xff0c;第一阶段内容包 括&#xff1a;网络平台搭建、网络安全设备配置与防护。 本阶段比赛时间为 180 分钟…

华为数通方向HCIP-DataCom H12-831题库(判断题:121-140)

第121题 BGP/MPLS IP VPN内层采用MP-BGP分配的标签区分不同的VPN实例,外层可采用多种隧道类型,例如GRE隧道。 正确 错误 答案: 错误 解析: VPN业务的转发需要隧道来承载,隧道类型包括GRE隧道、LSP隧道、TE隧道(即CR-LSP)。 如果网络边缘的PE设备具备MPLS功能,但骨干网核…

林浩然与Hadoop的奇幻数据之旅

林浩然与Hadoop的奇幻数据之旅 Lin Haoran and the Enchanting Data Journey with Hadoop 在一个名为“比特村”的地方&#xff0c;住着一位名叫林浩然的程序员大侠。他并非江湖上常见的武艺高强之人&#xff0c;而是凭借一把键盘、一支鼠标&#xff0c;纵横在大数据的海洋里。…

UI跟随物体的关键是什么?重要吗?

引言 UI的跟随效果 在游戏开发中&#xff0c;UI的跟随效果是提高用户体验和交互性的重要组成部分。 本文将深入介绍如何创建一个高效且可定制的UI跟随目标组件&#xff0c;并分享一些最佳实践。 本文源工程在文末获取&#xff0c;小伙伴们自行前往。 UI跟随物体的关键 UI…

MQ回顾之kafka速通

不定期更新 官网概念自查 官网&#xff1a;Apache Kafka kafka结构 和kafka相关的关键名词有&#xff1a;Producer、Broker、Topic、Partition、Replication、Message、Consumer、Consumer Group、Zookeeper。 各名词解释已经泛滥&#xff0c;如果你想看点不一样的&#xf…

A 股承担着一个什么功能?

​A 股&#xff1a;中国资本市场的核心角色 A 股&#xff0c;即人民币普通股票&#xff0c;在中国资本市场中扮演着至关重要的角色。它不仅是投资者买卖交易的场所&#xff0c;更是中国经济发展的重要引擎。 首先&#xff0c;A 股为中国的企业提供了融资平台。中国有着庞大的…

从Elasticsearch来看分布式系统架构设计

从Elasticsearch来看分布式系统架构设计 - 知乎 分布式系统类型多&#xff0c;涉及面非常广&#xff0c;不同类型的系统有不同的特点&#xff0c;批量计算和实时计算就差别非常大。这篇文章中&#xff0c;重点会讨论下分布式数据系统的设计&#xff0c;比如分布式存储系统&…

Zookeeper3.5.7源码分析

文章目录 一、Zookeeper算法一致性1、Paxos 算法1.1 概述1.2 算法流程1.3 算法缺陷 2、ZAB 协议2.1 概述2.2 Zab 协议内容 3、CAP理论 二、源码详解1、辅助源码1.1 持久化源码(了解)1.2 序列化源码 2、ZK 服务端初始化源码解析2.1 启用脚本分析2.2 ZK 服务端启动入口2.3 解析参…

鸿蒙入门学习的一些总结

前言 刚开始接触鸿蒙是从2023年开始的&#xff0c;当时公司在调研鸿蒙开发板能否在实际项目中使用。我们当时使用的是OpenHarmony的&#xff0c;基于DAYU/rk3568开发板&#xff0c;最开始系统是3.2的&#xff0c;API最高是API9&#xff0c;DevecoStudio 版本3.1的。 鸿…

excel统计分析——Duncan法多重比较

参考资料&#xff1a;生物统计学 Duncan法又称新复极差检验法&#xff0c;是对S-N-K法的改进&#xff0c;根据秩次距m对临界值的显著水平α进行调整&#xff0c;是最常用的多重比较方法。最小显著极差表示如下&#xff1a; 其中&#xff0c;m为秩次距&#xff0c;df为方差分析中…

【软件测试】学习笔记-制定一份有效的性能测试方案

什么是性能测试方案&#xff1f; 性能测试方案&#xff0c;通俗一点说就是指导你进行性能测试的文档&#xff0c;包含测试目的、测试方法、测试场景、环境配置、测试排期、测试资源、风险分析等内容。一份详细的性能测试方案可以帮助项目成员明确测试计划和手段&#xff0c;更…

第二集《闻法仪轨》

请大家打开讲义第三面&#xff0c;甲二、于法、法师发起承事。 我们身为一个大乘的佛弟子&#xff0c;我们这一念明了的心&#xff0c;在一生当中&#xff0c;会遇到很多很多的佛法&#xff0c;也会遇到很多很多的法师&#xff0c;但不是所有的法师跟佛法对我们都是帮助的&…

Prometheus插件安装kafka_exporter

下载地址 https://github.com/danielqsj/kafka_exporter/releases 解压 tar -zxvf kafka_exporter-1.7.0.linux-amd64.tar.gzmv kafka_exporter-1.7.0.linux-amd64 kafka_exporter服务配置 cd /usr/lib/systemd/systemvi kafka_exporter.service内容如下 [Unit] Descript…

概念性——数据库简介

前些天发现了一个人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;最重要的屌图甚多&#xff0c;忍不住分享一下给大家。点击跳转到网站。 概念性——数据库简介 介绍 数据对于当今许多应用程序和网站的运行至关重要。对热门视频的评论、多人游戏中分…

centos手动下载配置redis并自启动

有些服务器不能自动安装配置redis&#xff0c;仓库找不到之类的问题&#xff0c;就需要手动下载配置redis&#xff0c;记录下&#xff0c;方便以后使用&#xff08;ps&#xff0c;如果报错可能是gcc缺失&#xff09; 1、下载 Redis 源码包&#xff1a;访问 Redis 官网或可信的…

基于时空模型的视频异常检测

假设存在一个运动区域&#xff0c;规则要求只能进行特定的运动项目。 出于安全原因或因为业主不喜欢而禁止进行任何其他活动:)。 我们要解决的问题是&#xff1a;如果我们知道正确行为的列表&#xff0c;我们是否可以创建一个视频监控系统&#xff0c;在出现不常见的行为发出通…

37、Flink 的CDC 格式:debezium部署以及mysql示例(1)-debezium的部署与示例

Flink 系列文章 一、Flink 专栏 Flink 专栏系统介绍某一知识点&#xff0c;并辅以具体的示例进行说明。 1、Flink 部署系列 本部分介绍Flink的部署、配置相关基础内容。 2、Flink基础系列 本部分介绍Flink 的基础部分&#xff0c;比如术语、架构、编程模型、编程指南、基本的…

UE5 Chaos系统 学习笔记

记得开插件&#xff1a; 1、锚点场 在锚点场范围内的物体静止且不被其他力场损坏 2、ClusterStrain 破裂效果的力 3、DisableField chaos破裂后的模拟物理在绿色范围内禁止模拟物理 4、ForceAndStrain 破裂效果的力 5、ForceAndStrainFallOff 破裂效果的力&#xff0c;但是…

浅析Redis②:命令处理之epoll实现(中)

写在前面 Redis作为我们日常工作中最常使用的缓存数据库&#xff0c;其重要性不言而喻&#xff0c;作为普通开发者&#xff0c;我们在日常开发中使用Redis&#xff0c;主要聚焦于Redis的基层数据结构的命令使用&#xff0c;很少会有人对Redis的内部实现机制进行了解&#xff0c…