机器学习基础 | 大话生成模型与判别模型

本文通过生动的故事引入了监督学习中的生成模型和判别模型概念,对比了两者的分类方法,详细解析了包括支持向量机、朴素贝叶斯、逻辑斯蒂回归、隐马尔科夫模型和条件随机场在内的多种模型。

监督学习包含了两类构建机器学习模型的方法——判别模型和生成模型,我们以一篇生动的故事来引出这两类模型的概念。

故事:

有一个父亲有两个孩子,孩子A有能够深入学习一切事物的特殊才能,孩子B有能够学习他所看到事物之间区别的能力。

一天,父亲带两个孩子去动物园,这个动物园很小且只有两类动物——狮子和大象。他们离开动物园后,父亲指向一只动物并问他们:这只动物是狮子还是大象?

孩子A根据自己在动物园里看到狮子和大象的特征,马上在一张纸上画出了狮子和大象,然后他将这两幅图像与站在他面前的动物进行了比较,并根据与动物最接近的图像匹配作出了回答:“这只动物是狮子”。

孩子B根据学习到的可以区分大象和狮子的特征,作出了回答:“这只动物是狮子”。

在这里,他们的任务都是对眼前的动物进行分类,但是学习和寻找答案的方式是完全不同的,在机器学习中,我们通常把孩子A称为生成模型,孩子B称为判别模型。

生成模型学习联合概率分布p(x,y),然后根据贝叶斯理论预测条件概率p(y|x),推导公式为:

判别模型直接学习条件概率分布P(y|x)或学习决策函数y=f(x)预测输出。

由(1)式可知生成模型可以得到判别模型,但判别模型得不到生成模型。

如何用生成模型和判别模型进行分类?我们知道生成模型和判别模型的分类方法都是基于条件概率分布p(y|x)进行的,对于K分类,我们选择条件概率最大时的类为预测类,即:

再次回顾(1)式,我们发现p(x)是一个常数,因此p(y|x)与p(x,y)是成正比的关系,即:

下面举一个简单的例子来解释生成模型和判别模型的构建过程以及如何用该模型去进行分类:

假设我们进行二分类,训练数据的特征x有两个取值——1和2,输出y有两类——0或1,有如下的训练样本(1,0) 、(1,0) 、(1,1) 、(2,1)

由训练样本学习到的生成模型的联合概率分布如下:

而学习到的判别模型的条件概率分布如下:

若测试数据的输入特征x为1,根据(2)式(3)式,判别模型和生成模型的预测类别都是0。

下面来盘点下常见机器学习方法的模型分类:

1.判别式分类模型:支持向量机

支持向量机的算法思想是寻找最大化不同类的函数间隔的超平面,如下图根据训练数据求解二分类的最优超平面:

判别函数f(x)为:

给定一个测试数据x0(上图方框表示),代入判别函数f(x):

因此测试数据标记为正样本。

2.生成式分类模型:朴素贝叶斯分类器

假设M维输入特征向量,目标向量 y。给定训练数据,我们构建联合概率分布p(x,y)。

由条件独立性假设可得:

对上式积分可得:

由贝叶斯理论可得后验概率:

因此对于测试数据,分类结果为后验概率最大的输出y。

3.判别式分类模型:逻辑斯蒂回归

对于特征向量x的二分类(C1类和C2类)任务,逻辑斯蒂回归的核心是预测输入特征x的所属类的后验概率,可写为:

其中:

,则判断该输入特征属于C1类,否则输入C2类;

如下图:

逻辑斯蒂回归模型是直接预测条件概率p(y|x)的分布,因此逻辑斯蒂回归是判别式分类模型。

4.逻辑斯蒂回归模型与贝叶斯分类器的比较

上一节介绍逻辑斯蒂回归算法直接预测条件概率p(y|x)的分布,给出分类结果。

下面看看贝叶斯是如何计算条件概率:

其中:

比较式(3.1)和(4.1)式,可知两种模型参数a的求解方法不同:

逻辑斯蒂回归模型:a是输入特征x的线性方程,即:

贝叶斯模型:我们首先估计模型的类条件概率,然后由(4.1)式计算得到参数a;

5. 生成模型:隐马尔科夫模型(HMM)

给定观测数据序列,如何预测生成观测数据的状态序列,观测数据序列和状态序列的关系如下图:

HMM通过构建联合概率分布P(X,Y)来预测状态序列Y,联合概率分布为:

然后通过EM算法求解模型参数,预测状态序列。

(5.1)式成立时的两个假设条件:

  • 过去与未来的状态相互独立,即t时刻的状态只依赖于其前一时刻的状态,与其他时刻的状态无关;

  • 各状态的观测数据是相互独立的;

隐马尔可夫模型是通过联合概率分布P(X,Y)来预测状态序列,因此隐马尔可夫模型是生成模型。

6. 判别模型:条件随机场(CRF)

为了便于理解,本节只讨论线性链条件随机场,且假设观测序列和状态序列有相同的结构,如下图:

CRF是通过构建条件概率分布p(Y|X)预测状态序列,条件概率分布为:

其中是全局特征方程,是对应的权值。

Z(X)是标准化方程,即:

然后通过极大化训练数据的对数似然函数求解模型参数,预测状态序列。

7. 生成模型与判别模型的特点比较

生成模型是学习联合概率分布,然后利用贝叶斯理论去预测条件概率分布。生成模型明确的反映了数据集的分布情况,根据数据集的分布情况去预测测试数据的分类情况,当数据量较少时,学习到的联合概率分布与真实的联合概率分布差异较大,因此生成模型适合在数据量很大的情况,当模型需要考虑隐变量时,仍可用生成模型方法,此判别方法不能用。

判别模型是直接学习判别函数f(x)或条件概率分布p(y|x),它是根据训练数据不同类别之间的特征差异来学习决策边界,如支持向量机,逻辑斯蒂回归等模型。因此在数据量不多的情况下判别模型的分类结果要好于生成模型,但是判别模型不能反应数据集的真实分布情况。

8. 总结

生成模型和判别模型一般处理监督学习的问题,这两类模型都是通过预测条件概率分布p(y|x)进行分类(判别模型也可通过决策函数分类),只是方式不同:

生成模型思想:

1)学习联合概率分布p(x,y);

2)贝叶斯理论计算条件概率p(y|x);

判别模型思想:

1)直接通过训练数据估计条件概率分布P(y|x)或决策函数f(x);

生成模型的分类器:

朴素贝叶斯

贝叶斯网络

马尔科夫随机场

隐马尔可夫模型

判别模型的分类器:

逻辑斯蒂回归

支持向量机

最近邻算法

条件随机场

推荐阅读

520 页机器学习笔记!图文并茂可能更适合你,文末附下载方法

李航老师《统计学习方法》(第2版)课件分享,文末附下载

Github | 吴恩达新书《Machine Learning Yearning》完整中文版开源

经典好书 | 141页的《Deep Learning with PyTorch》开源书籍

欢迎扫码关注,一起学习进步:

源码下载地址: https://pan.quark.cn/s/a4b39357ea24 在信息技术领域中,UML(统一建模语言)被视为一种通用的建模手段,其主要功能在于对软件开发过程中的各种概念进行可视化呈现,从而使得复杂系统结构的理解、设计及沟通变得更加便捷。以"个人通讯录系统uml图"为例,本案例将详细阐述如何运用UML图,尤其是ER图(实体关系图),来构建一个个人通讯录系统的数据模型。 首先,让我们对UML图的基本分类有所认识。UML图涵盖了多种类型,包括但不限于用例图、类图、序列图、协作图、状态图、活动图、组件图以及部署图。就本项目的实际情况而言,用例图(用于描述用户系统的互动过程)、类图(界定对象类之间的关联性)以及ER图(揭示数据库中实体及其相互联系)将是最为关键的应用。 用例图通过展现系统的主要参者(users)及其能够执行的操作(use cases),并明确这些操作之间的相互联系,来描绘系统的核心功能。在个人通讯录系统的应用场景中,参者可能涵盖普通用户,而用例则可能涉及添加联系人、搜索联系人、修改联系人信息以及删除联系人等操作。 类图则着重于展示类的组织结构,其中包括类名、属性和方法。在个人通讯录系统的构建过程中,可以设立一个"Contact"类来代表单个联系人,该类将包含诸如姓名、电话、邮箱等属性。同时,还可以设计一个"AddressBook"类来负责管理多个联系人,此类将集成添加、删除和查找联系人的功能。 ER图作为数据库设计的核心工具,主要用于表达实体、属性以及实体间的关联关系。在个人通讯录系统的设计中,实体可能包含"User"(用户)和"Contact"(联系人)。"User"实体可能具备用户名、密码等属性,而"Contact"实...
已经博主授权,源码转载自 https://pan.quark.cn/s/a4b39357ea24 标题中所提及的“PB9转换utf-8例子”具体描述了在PowerBuilder 9(PB9)环境中,将数据从非UTF-8编码格式转变为UTF-8编码格式的一种具体方案。鉴于PB9本身并不具备直接进行此类编码转换的功能,开发人员通常需要借助外部库或者特定的编程策略来达成这一功能。在此例中,采用了ADODB.Stream对象,该对象是Microsoft ActiveX Data Objects (ADO)框架内的一部分,它能够支持多种类型流数据的处理,其中包括文本数据的编码变更。 描述部分指出,由于PowerBuilder 9及其以下版本未内建直接的字符编码转换机制,因此需要借助ADODB.Stream。这个对象提供了一种途径,通过读取原始编码的文本,并将其写入到新的以UTF-8编码的流中,从而实现转换。这一过程一般包括启动一个流对象,设定其编码类型,读取原始数据,然后以目标编码(此处为UTF-8)写入到新流,最终保存结果。 标签“pb9 utf-8”清晰地表明了讨论的主题是关于PowerBuilder 9UTF-8编码相关的问题。UTF-8是一种应用广泛的Unicode字符编码,能够表示Unicode字符集中几乎所有字符,涵盖了全球多种语言文字。 在压缩包内的文件清单中,包含了四个PowerBuilder相关的文件(utf-8.pbl、utf-8.pbt、utf-8.pbw)以及三个文本文件(aaa.txt、www.txt、bbb.txt)。这四个PB文件或许包含了示例代码、项目配置和工作区信息,用于展示如何运用ADODB.Stream进行编码转换。而aaa.txt、www...
内容概要:本文提出了一种基于粒子群算法(PSO)融合动态窗口法(DWA)的无人机三维动态避障路径规划方法,旨在解决无人机在复杂、动态环境中安全高效飞行的路径规划难题。该方法通过Matlab代码实现,有效结合了PSO算法的全局寻优能力DWA算法的局部实时避障优势,能够在存在移动障碍物的三维空间中规划出平滑、安全且优化的飞行路径。研究内容涵盖算法原理设计、融合机制构建、仿真环境搭建、路径规划性能测试分析,充分验证了该融合策略在应对动态障碍物、提升避障实时性路径质量方面的优越性。; 适合人群:具备一定编程基础和无人系统相关知识的科研人员,特别适用于从事无人机自主导航、智能优化算法、机器人路径规划等领域研究的研究生、高校教师及工程技术人员。; 使用场景及目标:①应用于城市、森林、灾害救援等复杂动态环境下的无人机自主飞行实时避障;②为智能交通、物流配送、电力巡检、安防监控等领域的移动机器人路径规划提供先进的算法参考和技术解决方案;③作为智能优化算法机器人技术融合教学科研实验的重要案例。; 阅读建议:建议读者结合提供的Matlab代码进行仿真实验,深入理解PSODWA的融合逻辑、关键参数的敏感性分析及避障效果的评价指标,鼓励在掌握核心思想的基础上进行算法改进创新应用。
下载代码方式:https://pan.quark.cn/s/083848db8d95 I2C 数据交互过程 I2C 数据交互过程是指经由 I2C 总线完成的数据通信环节,此环节涵盖了主设备从设备间的数据互换。在 I2C 数据交互过程中,主设备承担着启动并管理整个通信环节的任务,而从设备则负责对主设备的指令做出响应并进行数据传输。 在 I2C 数据交互过程中,主设备需首先发出起始信号(Start),随后传输从设备的地址信息,其中最低位为读写控制位(0 代表写入,1 代表读取),高位则为从设备地址编码。随后,从设备发出应答信号(Ack),表明已准确接收地址信息。 在数据读取或写入环节中,主设备能够对从设备执行读取或写入操作。若为读取操作,主设备将发送读取指令和地址信息,从设备则反馈所读取的数据。而在写入操作时,主设备会发送写入指令及需写入的数据,从设备将其存储到指定地址。 在整个 I2C 数据交互过程中,必须遵循 I2C 总线的时序规范,例如,在时钟线(SCL)维持高电平期间,数据线(SDA)不得发生电平变动,以免被误识别为起始或终止信号。 在电可擦除只读存储器(EEPROM)设备中,I2C 数据交互过程可用于执行对 EEPROM 的读取和写入操作。EEPROM 是一种可电擦除的只读存储装置,用于保存产品的固定参数。EEPROM 允许精确访问每个字节,支持单字节写入、分页写入、随机单字节读取、当前指针单字节读取等多种数据交互方式。 在 EEPROM 设备上,能够运用包括单字节写入、分页写入、随机单字节读取、当前指针单字节读取在内的多种数据交互模式。单字节写入是指将一个字节的数据记录到 EEPROM 中,分页写入是指将一页的数据记录到 EEPROM 中。随机单字节...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值