【补充知识】生成模型(generative model)和判别模型(discriminative model)、贝叶斯学派和概率学派

本文主要是介绍【补充知识】生成模型(generative model)和判别模型(discriminative model)、贝叶斯学派和概率学派,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

看到过好几次“生成模型”这个词了,一直不太懂,这次买了李航老师的《统计学习方法》看一下。

统计学习分类:

基本分类:

监督学习(supervised learning):从标注数据中学习预测模型的机器学习问题

概念:输入空间、输出空间、特征空间(有时候不区分于输入空间),联合概率分布(P(X,Y)),假设空间(X→Y的映射集合)

无监督学习(unsupervised learning):从(大量)无标注数据中学习预测模型的机器学习问题

强化学习(reinforcement learning):智能系统在与环境的连续互动中学习最优行为策略的机器学习问题。

半监督学习(semi-supervised learning):利用标注数据和未标注数据学习预测模型的机器学习问题。旨在利用未标注数据的信息辅助标注数据进行监督学习,以较低成本达到较好效果。

主动学习(active learning):机器不断主动给出实例让教师进行标注;“被动学习”日常给出的标记数据往往是随机得到。

半监督和主动学习更接近监督学习。

模型分类:

1.

概率模型(probabilistic model):目标函数是P(y|x)

【实例】决策树、朴素贝叶斯、隐马尔可夫模型、条件随机场、概率潜在语义分析、潜在迪利克雷分配、高斯混合模型

确定性模型(deterministic  model):目标函数是y=f(x)

 【实例】感知机、支持向量机、K近邻、AdaBoost、k均值、潜在语义分析、神经网络

相互转换: 条件概率分布最大化后可得到函数,函数归一化后得到条件概率分布。因此,区别不在于映射关系而在于内在结构,概率模型一定可以表示为联合概率分布的形式(变量可为输入、输出、隐变量甚至参数),而确定性模型不一定表示为联合概率分布。

2.

参数化模型(parametric model):假设模型参数维数固定,模型可以由有限维参数完全刻画

 【实例】感知机、朴素贝叶斯、逻辑斯蒂回归、k均值、高斯混合模型

非参数化模型(non-parametric model):假设模型参数维数不固定或者无穷大,随着训练增加不断增大。

 【实例】决策树、SVM、AdaBoost、k近邻、潜在语义分析、概率潜在语义分析、潜在迪利克雷分配

参数化模型适合问题简单,非参数化应用广

按算法分类

在线学习(online learning)/批量学习(batch learning)

有些应用必须在线,比如数据依次达到无法存储,需要及时处理,数据规模大不能一次处理,数据模式随时间动态变化、需快速适应(不满足OOD)。

按技巧分类

贝叶斯方法(Bayesian method)【朴素贝叶斯、潜在迪利克雷分配】/核方法(kernel method)【SVM、核PCA、核k均值】

统计学习方法三要素

模型+策略+算法

模型 

在监督学习里,模型就是要学习的条件概率分布或者决策函数。

假设空间(hypothesis space)包含所有可能的条件概率分布或者决策函数。

假设空间\mathcal{F}=\{ f|Y=f(X)\},这时候\mathcal{F}通常是由一个参数向量决定的函数族

\mathcal{F}=\{ f|Y=f_\theta(X), \theta \in \mathbb{R}^n\}

假设空间\mathcal{F}=\{ P|P(Y|X)\},这时候\mathcal{F}通常是由一个参数向量决定的条件概率分布族

\mathcal{F}=\{ P|P_\theta(Y|X), \theta \in \mathbb{R}^n\}

 策略

损失函数和风险函数(略) 

算法

具体计算方法,归结为优化问题。

模型评估与模型选择

训练误差与测试误差

过拟合与模型选择

正则化与交叉验证

正则化

regularization,限制模型的复杂度,符合奥卡姆刺刀原理

交叉验证

cross validation,训练集-验证集-测试集重复使用反复切分。

泛化能力

虽然我们现在做的OOD泛化,但是这个实在苍白,留一下定理吧。

 生成模型和判别模型

 监督学习方法的一种分类

 生成方法(generative approach )

由数据学习联合概率分布P(X,Y),然后求出条件概率分布P(Y|X)作为预测的模型,即生成模型

P(Y|X)=\frac{P(X,Y)}{P(X)}

之所以称为生成方法,是因为模型表示了给定输入X产生输出Y的生成关系。【朴素贝叶斯法和隐马尔可夫模型】

判别方法(discriminative approach)

由数据直接学习决策函数Y=f(X)或者条件概率分布P(Y|X)。判别方法关心的是对于给定的输入X,应该预测什么样的Y(简单粗暴,不考虑具体分布了)。【k近邻法、感知机、决策树、逻辑斯蒂回归模型、最大熵模型、支持向量机、提升方法、条件随机场等、

特点:

生成方法:可以还原出联合概率分布(判别方法不行),收敛速度更快(当样本容量增加,学到模型可以更快收敛于真实模型),存在隐变量的时候仍然可用。

判别方法:直接面对预测准确率更高,直接学习时候可以对数据进行各种程度上的抽象、定义特征并使用特征,因此可以简化学习问题。

【补充】贝叶斯学派和概率学派

主要看的这篇博文 

统计学里频率学派(Frequentist)与贝叶斯(Bayesian)学派的区别和在机器学习中的应用 - 知乎

频率学派与贝叶斯学派的最主要区别:是否允许先验概率分布的使用

  • 概率学派不假设任何的先验知识,不参照过去的经验,只按照当前已有的数据进行概率推断
  • 贝叶斯学派会假设先验知识的存在,然后再用采样逐渐修改先验知识并逼近真实知识

因此贝叶斯推论中前一次得到的后验概率分布可以作为后一次的先验概率。但实际上,在数据量趋近无穷时,频率学派和贝叶斯学派得到的结果是一样的,也就是说频率方法是贝叶斯方法的极限。【关系】

考虑的试验次数非常少的时候,贝叶斯方法的解释非常有用。此外,贝叶斯理论将我们对于随机过程的先验知识纳入考虑,当我们获得的数据越来越多的时候,这个先验的概率分布就会被更新到后验分布中。

频率论和贝叶斯方法各有其优劣

频率派的优点则是没有假设一个先验分布,因此更加客观,也更加无偏,在一些保守的领域比如制药业、法律比贝叶斯方法更受到信任。并且频率论方法比贝叶斯方法更容易实施,然而却更难解释。【概率更值得信任,但是难解释】

贝叶斯派因为所有的参数都是随机变量,都有分布,因此可以使用一些基于采样的方法如MCMC方法(Markov Chain Monte Carlo))使得我们更容易构建复杂模型。【更容易使用(面对复杂情况)】

 

这篇关于【补充知识】生成模型(generative model)和判别模型(discriminative model)、贝叶斯学派和概率学派的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/257623

相关文章

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

java中使用POI生成Excel并导出过程

《java中使用POI生成Excel并导出过程》:本文主要介绍java中使用POI生成Excel并导出过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求说明及实现方式需求完成通用代码版本1版本2结果展示type参数为atype参数为b总结注:本文章中代码均为

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

在java中如何将inputStream对象转换为File对象(不生成本地文件)

《在java中如何将inputStream对象转换为File对象(不生成本地文件)》:本文主要介绍在java中如何将inputStream对象转换为File对象(不生成本地文件),具有很好的参考价... 目录需求说明问题解决总结需求说明在后端中通过POI生成Excel文件流,将输出流(outputStre

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

GORM中Model和Table的区别及使用

《GORM中Model和Table的区别及使用》Model和Table是两种与数据库表交互的核心方法,但它们的用途和行为存在著差异,本文主要介绍了GORM中Model和Table的区别及使用,具有一... 目录1. Model 的作用与特点1.1 核心用途1.2 行为特点1.3 示例China编程代码2. Tab

C/C++随机数生成的五种方法

《C/C++随机数生成的五种方法》C++作为一种古老的编程语言,其随机数生成的方法已经经历了多次的变革,早期的C++版本使用的是rand()函数和RAND_MAX常量,这种方法虽然简单,但并不总是提供... 目录C/C++ 随机数生成方法1. 使用 rand() 和 srand()2. 使用 <random

Flask 验证码自动生成的实现示例

《Flask验证码自动生成的实现示例》本文主要介绍了Flask验证码自动生成的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习... 目录生成图片以及结果处理验证码蓝图html页面展示想必验证码大家都有所了解,但是可以自己定义图片验证码

Python如何在Word中生成多种不同类型的图表

《Python如何在Word中生成多种不同类型的图表》Word文档中插入图表不仅能直观呈现数据,还能提升文档的可读性和专业性,本文将介绍如何使用Python在Word文档中创建和自定义各种图表,需要的... 目录在Word中创建柱形图在Word中创建条形图在Word中创建折线图在Word中创建饼图在Word