机器学习之监督学习

       整理一下机器学习中监督学习相关内容,争取梳理出一条易于理解和掌握的脉络。下面会有很多相关参考博客和文章,先放到一起,最后再做个整体的梳理。持续更新中。。。。。。

监督学习作为机器学习的核心分支,其理论体系与实践应用都非常丰富。从几个通用视角出发,我们可以对经典监督学习模型进行分类和概述:

1. 判别模型 vs 生成模型
- 判别模型**直接关注从输入到输出的映射关系,即学习条件概率 \(P(y|x)\),旨在最大化预测准确性,不涉及数据生成过程。例如:
  - 逻辑斯特回归:用于二元分类问题,直接学习将输入映射到类别的边界。
  - 支持向量机:通过最大化间隔来找到分类超平面,同样关注直接分类边界。
  - 感知机:是最简单的线性分类器,也是支持向量机的前身,直接划分数据空间。
  - 神经网络:可以处理复杂的非线性分类问题,通过多层结构学习输入到输出的复杂映射。
  - k近邻:基于实例的学习方法,通过计算测试样本与训练集中样本的距离来预测类别,也是一种判别模型。

- 生成模型则试图学习数据的联合分布 \(P(x,y)\),之后利用贝叶斯规则得到条件概率 \(P(y|x)\)。例如:
  - 朴素贝叶斯:假设特征间相互独立,直接从统计角度计算给定输入特征条件下类别的概率。
  - 高斯判别分析(GDA):是一种生成模型,假设数据属于不同类别时遵循不同的正态分布,通过这些分布来预测类别。

 2. 非概率模型 vs 概率模型
- 非概率模型不提供预测的置信度或概率分布,仅给出确定性的预测结果。例如:
  - 感知机、k近邻在标准实现中通常是非概率的,只给出最可能的类别标签。
  
- **概率模型**能够提供预测的概率或置信度,如:
  - **逻辑斯特回归**虽然主要用于分类,但通过调整可以给出预测类别的概率。
  - **朴素贝叶斯**直接基于概率推断进行分类。
  - **高斯判别分析**也属于概率框架,因为它基于概率密度函数来区分不同类别的数据。

### 3. 参数模型 vs 非参数模型
- **参数模型**假设数据符合特定的参数化分布,学习过程主要是估计这些参数。例如:
  - **逻辑斯特回归**、**线性回归**、**朴素贝叶斯**都是参数模型,它们的复杂度不随数据量增加而显著变化。
  
- **非参数模型**不对数据分布做严格假设,模型的复杂度可以随数据量增加而增长。例如:
  - **支持向量机**和**神经网络**在理论上可以视为非参数模型,因为它们的边界或决策面可以随着训练数据的增加而变得更复杂。
  - **k近邻**也是一种典型的非参数模型,因为它的预测基于训练集中的实例,而不是固定的参数。

这些模型各有优势和适用场景,选择合适的模型需要考虑数据的特性、任务需求以及对模型可解释性的要求。计算学习理论,特别是VC维、PAC学习和PAC-Bayes理论等,为这些模型的泛化能力提供了理论保障,帮助我们理解在什么条件下可以期望模型在未见数据上表现良好。

下面内容主要来自 监督学习分类,

链接:https://blog.csdn.net/qq_39521554/article/details/79134274

机器学习是一个有着多分支的学科。其中,监督学习是其中发展最为成熟的分支。这不仅是由于在监督学习框架下面有各种各样的学习模型,如逻辑斯回归、朴素贝叶斯、支持向量机等,更是因为这个框架有着坚实的理论支撑,机器学习中的计算学习理论就是主要为监督学习服务的:这套理论以概率的方式回答了哪些问题是可学习的,学习成功的概率有多大等问题,其中比较常见的理论有VC理论、PAC理论、PAC-Bayes理论等。为了尽可能理清监督学习的框架,本文尝试从几个比较通用的视角来看待这些经典的监督学习模型,并对它们进行分类。其中,几个通用的视角具体是指:判别模型 VS 生成模型、 非概率模型 VS 概率模型、参数模型 VS 非参数模型,而本文涉及到的经典的监督学习模型包括感知机、逻辑斯特回归、高斯判别分析、朴素贝叶斯、支持向量机、神经网络、k近邻。

问题设定:

假设输入空间(特征空间)为欧几里得空间X,维数是d,我们主要考虑二分类问题,所以输出空间设定为Y(Y={-1,1})。x代表输入空间中的一个随机向量,y代表输出空间中的一个随机变量。P(x,y)是x与y的联合分布,我们并不知道这个联合分布的形式,但由这个分布产生了m个样例,构成我们的训练集D,

1 判别模型 VS 生成模型

1.1 判别模型

按照文献[1]与[2]给出的解释,判别模型分为两种:(1)直接对输入空间到输出空间的映射进行建模,也就是学习函数 h,

(2)对条件概率P(y|x)进行建模,然后根据贝叶斯风险最小化的准则进行分类:

感知机、逻辑斯特回归、支持向量机、神经网络、k近邻都属于判别学习模型。

1.2 生成模型

生成模型是间接地,先对P(x,y)进行建模,再根据贝叶斯公式

算出P(y|x),最后根据(I)来做分类 (由(I)可知,实际上不需要对P(x)进行建模)。<<Statistical learning theory>> 的作者Vapnik有句名言: "one should solve the [classification] problem directly and never solve a more general problem as an intermediate step[such as modeling P(x|y)]." 按照他这样说,我们只需对P(y|x)直接进行建模就行了,没必要间接地先对P(x,y)进行建模。但是对P(x,y)进行建模从而达到判别的目的也有它自身的一些优势,这一点文献[1]中给出了解释。高斯判别分析、朴素贝叶斯属于生成学习模型。

2 非概率模型 VS 概率模型

2.1 非概率模型

非概率模型指的是直接学习输入空间到输出空间的映射h,学习的过程中基本不涉及概率密度的估计,概率密度的积分等操作,问题的关键在于最优化问题的求解。通常,为了学习假设h(x),我们会先根据一些先验知识(prior knowledge) 来选择一个特定的假设空间H(函数空间),例如一个由所有线性函数构成的空间,然后在这个空间中找出泛化误差最小的假设出来,

其中l(h(x),y)是我们选取的损失函数,选择不同的损失函数,得到假设的泛化误差就会不一样。由于我们并不知道P(x,y),所以即使我们选好了损失函数,也无法计算出假设的泛化误差,更别提找到那个给出最小泛化误差的假设。于是,我们转而去找那个使得经验误差最小的假设,

这种学习的策略叫经验误差最小化(ERM),理论依据是大数定律:当训练样例无穷多的时候,假设的经验误差会依概率收敛到假设的泛化误差。要想成功地学习一个问题,必须在学习的过程中注入先验知识[3]。前面,我们根据先验知识来选择假设空间,其实,在选定了假设空间后,先验知识还可以继续发挥作用,这一点体现在为我们的优化问题(IV)加上正则化项上,例如常用的L1正则化,L2正则化等。

正则化项一般是对模型的复杂度进行惩罚,例如我们的先验知识告诉我们模型应当是稀疏的,这时我们会选择L1范数。当然,加正则化项的另一种解释是为了防止对有限样例的过拟合,但这种解释本质上还是根据先验知识认为模型本身不会太复杂。在经验误差的基础上加上正则化项,同时最小化这两者,这种学习的策略叫做结构风险最小化(SRM)。最后,学习算法A根据训练数据集D,从假设空间中挑出一个假设g,作为我们将来做预测的时候可以用。具体来说,学习算法A其实是一个映射,对于每一个给定的数据集D,对于选定的学习策略(ERM or SRM),都有确定的假设与D对应

感知机、支持向量机、神经网络、k近邻都属于非概率模型。线性支持向量机可以显式地写出损失函数——hinge损失。神经网络也可以显式地写出损失函数——平方损失。

时下流行的迁移学习,其中有一种迁移方式是基于样本的迁移。这种方式最后要解决的问题就是求解一个加权的经验误差最小化问题,而权重就是目标域与源域的边际密度之比。所以,线性支持向量机在迁移学习的环境下可以进行直接的推广。

2.2 概率模型

概率模型指出了学习的目的是学出P(x,y)或P(y|x),但最后都是根据(I)来做判别归类。对于P(x,y)的估计,一般是根据乘法公式P(x,y) = P(x|y)P(y)将其拆解成P(x|y),P(y)分别进行估计。无论是对P(x|y),P(y)还是P(y|x)的估计,都是会先假设分布的形式,例如逻辑斯特回归就假设了Y|X服从伯努利分布。分布形式固定以后,剩下的就是分布参数的估计问题。常用的估计有极大似然估计(MLE)和极大后验概率估计(MAP)等。其中,极大后验概率估计涉及到分布参数的先验概率,这为我们注入先验知识提供了途径。逻辑斯特回归、高斯判别分析、朴素贝叶斯都属于概率模型。

在一定的条件下,非概率模型与概率模型有以下对应关系

3 参数模型 VS 非参数模型

3.1 参数模型

如果我们对所要学习的问题有足够的认识,具备一定的先验知识,此时我们一般会假定要学习的目标函数f(x)或分布P(y|x)的具体形式。然后,通过训练数据集,基于ERM、SRM、MLE、MAP等学习策略,可以估计出f(x)或P(y|x)中含有的未知参数。一旦未知参数估计完毕,训练数据一般来说,就失去其作用了,因为这些估计出来的参数就是训练数据的浓缩。通过这种方式建立起来的模型就是参数模型。参数模型的一个很重要的特点是,如果对于模型的假设正确,那么只需要很少的训练数据就可以从假设空间中学出一个很好的模型。但是,如果模型的假设错误,那么无论训练的数据量有多大,甚至趋于无穷大,学出的模型都会与实际模型出现不可磨灭的偏差。感知机、逻辑斯特回归、高斯判别分析、朴素贝叶斯、线性支持向量机都属于参数模型。对于神经网络来说,当固定了隐层的数目以及每一层神经元的个数,它也属于参数模型。但由于隐层数目与每一层神经元个数的不确定性,很多时候,神经网络都被归类为半参数模型。

3.2 非参数模型

当我们对所要学习的问题知之甚少,此时我们一般不会对潜在的模型做过多的假设。在面对预测任务的时候,我们通常会用上所有的训练数据。例如简单的核密度估计(KDE)的表达式中,就带有所有训练数据的信息。通过这种方式建立的模型就是非参数模型。非参数模型的一个很重要的特点就是:let the data speak for itself. 正因为如此,非参数模型的存储开销、计算开销都会比参数模型大的多。但是,由于不存在模型的错误假定问题,可以证明,当训练数据量趋于无穷大的时候,非参数模型可以逼近任意复杂的真实模型。这正是非参数模型诱人的一点。另外需要说明的一点是,非参数模型之所以叫做非参数,并不是因为模型中没有参数。实际上,非参数模型中一般会含有一个或多个超参数,外加无穷多个普通的参数。k近邻就是典型的非参数模型。

时下流行的深度学习,其本质是一个半参数模型的神经网络。通过加大网络的深度(加大隐层数目)以及宽度(增加每一层神经元的个数),使假设空间的复杂度得到极大的提高。复杂的假设空间有极强的表达能力,当训练数据量很大的时候,不会陷入过拟合。所以,深度学习的成功,从理论上讲,一方面来源于海量的训练数据,另一方面来源于其复杂的网络结构。

参考文献

[1] On Discriminative vs. Generative classifiers: A comparison of logistic regression and naive Bayes. nips2002

[2] 《统计学习方法》 李航

[3] Label-Free Supervision of Neural Networks with Physics and Domain Knowledge. AAAI2016

[4] 监督学习分类:https://blog.csdn.net/qq_39521554/article/details/79134274
————————————————

                    
                        
 

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

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

相关文章

C# 警告 warning MSB3884: 无法找到规则集文件“MinimumRecommendedRules.ruleset”

警告 warning MSB3884: 无法找到规则集文件“MinimumRecommendedRules.ruleset” C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\amd64\Microsoft.CSharp.CurrentVersion.targets(129,9): warning MSB3884: 无法找到规则集文件“MinimumRe…

竞赛选题 python的搜索引擎系统设计与实现

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; python的搜索引擎系统设计与实现 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;3分工作量&#xff1a;5分创新点&#xff1a;3分 该项目较为新颖&#xff…

正则表达式在Java中的应用与实例

正则表达式在Java中的应用与实例 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 正则表达式是一种强大的工具&#xff0c;用于模式匹配和字符串处理。在Java中…

武汉星起航:成功挂牌上股交,引领跨境电商行业进入全新发展阶段

2023年10月30日&#xff0c;武汉星起航电子商务有限公司在上海股权托管交易中心成功挂牌展示&#xff0c;这一里程碑式的事件标志着武汉星起航正式登陆资本市场&#xff0c;开启了公司发展的新篇章。作为亚马逊跨境电商领域的领军企业之一&#xff0c;武汉星起航此次挂牌不仅是…

文件操作详解(C语言)

1.为什么要用到文件&#xff1f;怎样数据才能持久化&#xff1f; 保存在内存中的数不安全&#xff08;一次断电&#xff0c;忘记保存&#xff0c;不用了还给系统&#xff09; 持久化&#xff1a;保存在硬盘上&#xff08;放在文件中&#xff09; 什么是文件&#xff1f;文件…

Hadoop-08-HDFS集群 基础知识 命令行上机实操 hadoop fs 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件

章节内容 上一节完成&#xff1a; HDFS的简介内容HDFS基础原理HDFS读文件流程HDFS写文件流程 背景介绍 这里是三台公网云服务器&#xff0c;每台 2C4G&#xff0c;搭建一个Hadoop的学习环境&#xff0c;供我学习。 之前已经在 VM 虚拟机上搭建过一次&#xff0c;但是没留下…

SpringSecurity的执行原理

SpringSecurity的执行原理&#xff1a;当我们服务端接收到请求后&#xff0c;首先通过DelegatingFilterProxy代理对象交互&#xff0c;转发给springsecurity的执行链&#xff0c;由于他自带的执行链有16条&#xff0c;我们将不用的过滤器进行了排除&#xff0c;同时加入了我们自…

如何保护应用?可快速部署的WAF服务器分享

Web应用攻击是安全事件和数据泄露的主要原因。相关统计表明&#xff0c;超过四分之三的网络犯罪直指应用及其漏洞。为保护数量日益增长的应用安全&#xff0c;Web应用防火墙(WAF)因此而生。本文则聚焦于WAF服务器&#xff0c;了解它的性能与具体的实践应用。   新加坡网络安全…

《单片机》期末考试复习-学习笔记总结

题型 问答题(15分)编程题(65分)编程题1(20分)编程题2(45分)设计题(20分)一、问答题 1.1.单片机概念和特点 1.2. 51单片机的中断结构 1.3.主从式多机通讯的概念及其工作原理 多机通信是指两台以上计算机之间的数据传输,主从式多机通信是多机通信系统中最简单的一种,…

PHP电商系统开发指南最佳实践

电子商务系统开发的最佳实践包括&#xff1a;数据库设计&#xff1a;选择适合关系型数据库&#xff0c;优化数据结构&#xff0c;考虑表分区&#xff1b;安全&#xff1a;加密数据&#xff0c;防止 sql 注入&#xff0c;处理会话管理&#xff1b;用户界面&#xff1a;遵循 ux 原…

vue3长列表优化,使用vue-virtual-scroller实现直播间弹幕列表虚拟滚动效果

使用的组件库是&#xff1a;https://github.com/Akryum/vue-virtual-scroller 官方文档&#xff1a;vue-virtual-scroller 安装依赖 npm install --save vue-virtual-scrollernextpnpm install --save vue-virtual-scrollernextyarn add vue-virtual-scrollernext 组件导入…

如何用文章改写ai软件进行改写?5个软件教你快速进行修改文章

如何用文章改写ai软件进行改写&#xff1f;5个软件教你快速进行修改文章 使用AI改写软件可以帮助你快速重写文章&#xff0c;使其更加流畅、符合要求或避免重复。以下是五款优质的AI改写软件&#xff0c;它们能够帮助你快速进行文章修改&#xff1a; 聪明灵犀 这是一款非常简…

数据结构_1.0

一、数据结构概述 1.1 概念 在计算机科学中&#xff0c;数据结构是一种数据组织、管理和存储的格式 。它是相互之间存在一种或多种特定关系的数据元素的集合。通常情况下&#xff0c;精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技…

【开源合规】开源许可证基础知识与风险场景引入

文章目录 什么是开源许可证(License)?开源许可证有什么用?开源许可证分类开源许可证分类及描述公共代码 (Public Domain)CC0无License宽松型许可证 (Permissive)MITApache 2.0BSD弱互惠型许可证 (Weak Copyleft)LGPLMPLEPL互惠型许可证 (Reciprocal)GPLEUPL强互惠许可证 (Str…

读-改-写操作

1 什么是读-改-写操作 “读-改-写”&#xff08;Read-Modify-Write&#xff0c;简称RMW&#xff09;是一种常见的操作模式&#xff0c;它通常用于需要更新数据的场景。 这个模式包含三个基本步骤&#xff1a; 1.读&#xff08;Read&#xff09;&#xff1a;首先读取当前的数据…

从0开始学习pyspark--pyspark的数据分析方式[第2节]

PySpark是Apache Spark的Python API&#xff0c;能够在分布式计算环境中处理大规模数据。本文将详细介绍PySpark中不同的数据分析方式&#xff0c;包括它们的使用场景、操作解释以及示例代码。 1. RDD&#xff08;Resilient Distributed Dataset&#xff09;API 概述 RDD是Sp…

Linux——查找文件-find(详细)

查找文件-find 作用 - 按照文件名、大小、时间、权限、类型、所属者、所属组来搜索文件 格式 find 查找路径 查找条件 具体条件 操作 注意 - find命令默认的操作是print输出 - find是检索文件的&#xff0c;grep是过滤文件中字符串 参数 参数 …

简述Vue中的数据双向绑定原理

Vue中的数据双向绑定原理是Vue框架的核心特性之一&#xff0c;它通过数据劫持结合发布者-订阅者模式来实现。下面将详细阐述Vue中数据双向绑定的原理&#xff0c;并尽量按照清晰的结构进行归纳&#xff1a; 一、数据劫持 使用Object.defineProperty()&#xff1a; Vue在组件…

Mojo模板引擎:释放Web开发的无限潜能

&#x1f680; Mojo模板引擎&#xff1a;释放Web开发的无限潜能 Mojolicious是一个基于Perl的现代化、高性能的Web开发框架&#xff0c;它内置了一个功能强大的模板引擎&#xff0c;专门用于快速构建Web应用程序。Mojo的模板引擎不仅简洁易用&#xff0c;而且具备多种高级特性…

《每天5分钟用Flask搭建一个管理系统》第11章:测试与部署

第11章&#xff1a;测试与部署 11.1 测试的重要性 测试是确保应用质量和可靠性的关键步骤。它帮助开发者发现和修复错误&#xff0c;验证功能按预期工作。 11.2 Flask测试客户端的使用 Flask提供了一个测试客户端&#xff0c;可以在开发过程中模拟请求并测试应用的响应。 …