贝叶斯思想——李文哲老师听课笔记

ML-最大似然估计

MAP-最大后验估计

贝叶斯估计

三者的关系及区别

一。机器学习

  核心思想是从past experience中学习出规则,从而对新的事物进行预测。对于监督学习来说,有用的样本数目越多,训练越准确。

用下图来表示机器学习的过程及包含的知识:

简单来说就是:

  1. 首先要定义我们的假设空间(Model assumption):如线性分类,线性回归,逻辑回归,SVM,深度学习网络等。
  2. 如何衡量我们学出来的模型的好坏?定义损失函数(目标函数),lost function,如square loss
  3. 如何对假设的模型做优化,及optimization过程。简单说,就是选择一种算法(如:梯度下降,牛顿法等),对目标函数进行优化,最终得到最优解;
    1. 不同的模型使用不同的算法,如逻辑回归通常用梯度下降法解决,神经网络用反向推导解决,贝叶斯模型则用MCMC来解决。
    2. 机器学习 = 模型 + 优化(不同算法)
  4. 还有一个问题,模型的复杂度怎么衡量?因为复杂的模型容易出现过拟合(overfitting)。解决过拟合的方就是加入正则项(regularization)
  5. 以上问题都解决之后,我们怎么判断这个解就是真的好的呢?用交叉验证来验证一下。

二。ML vs MAP vs Bayesian

  1. ML(最大似然估计):就是给定一个模型的参数,然后试着最大化p(D|参数)。即给定参数的情况下,看到样本集的概率。目标是找到使前面概率最大的参数。

    1. 逻辑回归都是基于ML做的;
    2. 缺点:不会把我们的先验知识加入模型中。
  2. MAP(最大后验估计):最大化p(参数|D)。
  3. Bayesian:我们的预测是考虑了所有可能的参数,即所有的参数空间(参数的分布)。
  • ML和MAP都属于同一个范畴,称为(freqentist),最后的目标都是一样的:找到一个最优解,然后用最优解做预测。

三。ML

我们需要去最大化p(D|\theta),这部分优化我们通常可以用把导数设置为0的方式去得到。然而,ML估计不会把先验知识考虑进去,而且很容易造成过拟合现象。

举个例子,比如对癌症的针对,一个医生一天可能接到了100名患者,但最终被诊断出癌症的患者为5个人,在ML估计的模式下我们得到的得到癌症的概率为0.05。

这显然是不太切合实际的,因为我们根据已有的经验,我们知道这种概率会低很多。然而ML估计并没有把这种知识融入到模型里。

四。MAP

通过上面的推导我们可以发现,MAP与ML最大的不同在于p(参数)项,所以可以说MAP是正好可以解决ML缺乏先验知识的缺点,将先验知识加入后,优化损失函数。

其实p(参数)项正好起到了正则化的作用。如:如果假设p(参数)服从高斯分布,则相当于加了一个l2 norm;如果假设p(参数)服从拉普拉斯分布,则相当于加了一个l1 norm。

五。Bayesian

再次强调一下: ML和MAP只会给出一个最优的解, 然而贝叶斯模型会给出对参数的一个分布,比如对模型的参数, 假定参数空间里有参数1,参数2, 参数3,...参数N,贝叶斯模型学出来的就是这些参数的重要性(也就是分布),然后当我们对新的样本预测的时候,就会让所有的模型一起去预测,但每个模型会有自己的权重(权重就是学出来的分布)。最终的决策由所有的估计根据其权重做出决策。

模型的ensemble的却大的优点为它可以reduce variance, 这根投资很类似,比如我们投资多种不同类型的股票,总比投资某一个股票时的风险会低。

六。上面提到了frequentist和bayesian,两者之间的区别是什么?

用一个简答的例子来再总结一下(因为这部分是今天的重点)。 比如你是班里的班长,你有个问题想知道答案,你可以问所有的班里的学生。 一种方案是,问一个学习最好的同学。 另一种方案是,问所有的同学,然后把答案综合起来,但综合的时候,会按照每个同学的成绩好坏来做个权重。 第一种方案的思想类似于ML,MAP,第二种方案类似于贝叶斯模型。

七。Bayesian的难点

所以整个贝叶斯领域的核心技术就是要近似的计算 p(\theta|D),我们称之为bayesian inference,说白了,这里的核心问题就是要近似这个复杂的积分(integral), 一种解决方案就是使用蒙特卡洛算法。比如我想计算一个公司所有员工的平均身高,这个时候最简答粗暴的方法就是让行政去一个一个去测量,然后计算平均值。但想计算所有中国人的平均身高,怎么做?(显然一个个测量是不可能的)

即采样。我们随机的选取一些人测量他们的审稿,然后根据他们的身高来估计全国人民的审稿。当然采样的数目越多越准确,采样的数据越有代表性越准确。这就是蒙特卡洛算法的管家思想。

再例:

假设我们不知道π,但是想计算圆的面积。也可以通过采样的方法近似得到。随机再下图所示的正方形中撒入一些点,记落入红色区域的点的个数为n1,落入白色区域的个数为n2,则四分之一圆的面积就为n1/(n1+n2).——蒙特卡洛思想

那么,如何对连续函数估计呢?采样n多个数据,逼近最后的积分值。

假设我们要计算 f(x)的期望值, 我们也有p(x)这种分布,这个时候我们就可以不断的从p(x)这个分布里做一些采样,比如 x1,x2,...xn, 然后用这些采样的值去算f(x),  所以最后得到的结果就是 (f(x1) + f(x2),, + f(xn))/ n

然鹅,上面例子中提到的采样都是独立的。也就是每个样本跟其他的样本都是独立的,不影响彼此之间的采样。然而,在现实问题上,有些时候我们想加快有效样本的采样速度。这个问题讨论的就是怎么优化采样过程了,也是机器学习里一个比较大的话题了。

重申一下,用上面提到的采样方式我们可以去近似估计复杂的积分,也可以计算圆的面积,也可以计算全国人口的平均身高。但这个采样方式是独立的,有些时候,我们希望我们用更少的样本去更准确的近似某一个目标,所以就出现了sampling这种一个领域的研究,就是在研究以什么样的方式优化整个采样过程,使得过程更加高效。

MCMC这种采样方法,全称为markov chain monte carlo采样方法,就是每个采样的样本都是互相有关联性的。

但是MCMC算法需要在整个数据集上计算。也就是说为了得到一个样本,需要用所有的数据做迭代。这样当N很大时,显然不适用。而且限制了贝叶斯方法发展的主要原因就是计算复杂度太高。因此现在贝爷第领域人们最关心的问题是:怎么去优化采样,让它能够在大数据环境下学习出贝叶斯模型?

降低迭代复杂度的一个实例:

对于逻辑回归,使用梯度下降法更新参数时,有批量梯度下降法(即使用整个数据集去更新参数),为了降低计算复杂度,人们使用了随机梯度下降法,即随机从数据集中选取样本来更新参数。

所以,能否将此思想用于MCMC采样中呢?

Yes!langevin dynamic(MCMC算法中的一种),和stochastic optimizaiton(比如随机梯度下降法)可以结合在一起用。这样,我们就可以通过少量的样本去做采样,这个时候采样的效率就不在依赖于N了,而是依赖于m, m是远远小于N。

(未完待续)

时间: 2024-12-18 12:32:45

贝叶斯思想——李文哲老师听课笔记的相关文章

朴素贝叶斯-Machine Learining In Action学习笔记

优点:在数据较少的情况下仍然有效,可以处理多类别问题. 缺点:对于输入数据的准备方式较为敏感. 适用数据类型:标称型数据. 条件概率:p(x,y|c?) 需要先验知识和逻辑推理 频数概率:从数据本身获得结论,并不考虑逻辑推理及先验知识 朴素贝叶斯的一般过程: 1. 收集数据:可以使用任何方法. 2. 准备数据:需要数值型或者布尔型数据 3. 分析数据:有大量特征时,绘制特征作用不大,此时使用直方图效果更好. 4. 训练算法:计算不同的独立特征的条件概率. 5. 测试算法:计算错误率. 6. 使用

挖掘算法(1)朴素贝叶斯算法

原文:http://www.blogchong.com/post/NaiveBayes.html 1 文档说明 该文档为朴素贝叶斯算法的介绍和分析文档,并且结合应用实例进行了详细的讲解. 其实朴素贝叶斯的概念以及流程都被写烂了,之所以写这些是方便做个整理,记录备忘.而实例部分进行了详细的描述,网络上该实例比较简单,没有过程. 至于最后部分,则是对朴素贝叶斯的一个扩展了,当然只是简单的描述了一下过程,其中涉及到的中文分词以及TFIDF算法,有时间再具体补上. 2 算法介绍 2.1 贝叶斯定理 (1

Stanford大学机器学习公开课(六):朴素贝叶斯多项式模型、神经网络、SVM初步

(一)朴素贝叶斯多项式事件模型 在上篇笔记中,那个最基本的NB模型被称为多元伯努利事件模型(Multivariate Bernoulli Event Model,以下简称 NB-MBEM).该模型有多种扩展,一种是在上一篇笔记中已经提到的每个分量的多值化,即将p(xi|y)由伯努利分布扩展到多项式分布:还有一种在上一篇笔记中也已经提到,即将连续变量值离散化.本文将要介绍一种与多元伯努利事件模型有较大区别的NB模型,即多项式事件模型(Multinomial Event Model,一下简称NB-M

PGM:贝叶斯网络与朴素贝叶斯网络

http://blog.csdn.net/pipisorry/article/details/51471222 贝叶斯与频率派思想 频率派思想 长久以来,人们对一件事情发生或不发生,只有固定的0和1,即要么发生,要么不发生,从来不会去考虑某件事情发生的概率有多大,不发生的概率又是多大.而且事情发生或不发生的概率虽然未知,但最起码是一个确定的值. 比如如果问那时的人们一个问题:"有一个袋子,里面装着若干个白球和黑球,请问从袋子中取得白球的概率是多少?"他们会立马告诉你,取出白球的概率就是

概率图模型:贝叶斯网络与朴素贝叶斯网络

http://blog.csdn.net/pipisorry/article/details/51471222 贝叶斯与频率派思想 频率派思想 长久以来,人们对一件事情发生或不发生,只有固定的0和1,即要么发生,要么不发生,从来不会去考虑某件事情发生的概率有多大,不发生的概率又是多大.而且事情发生或不发生的概率虽然未知,但最起码是一个确定的值. 比如如果问那时的人们一个问题:"有一个袋子,里面装着若干个白球和黑球,请问从袋子中取得白球的概率是多少?"他们会立马告诉你,取出白球的概率就是

机器学习算法总结(十)——朴素贝叶斯

1.模型的定义 朴素贝叶斯是基于贝叶斯定理与特征条件独立假设的分裂方法.首先我们来了解下贝叶斯定理和所要建立的模型.对于给定的数据集 假定输出的类别yi ∈ {c1, c2, ...., ck},朴素贝叶斯通过训练数据集的来学习联合概率分布P(x|y).但是直接求联合概率分布P(x|y)一般比较难,因此在这里我们近视的求先验概率分布和条件概率分布来替代它.先验概率分布如下 对于先验概率的求解,可以根据大数定理认为就是该类别在总体样本中的比例.条件概率分布如下 通过先验概率和条件概率的求解就可以学

贝叶斯推断 && 概率编程初探

1. 写在之前的话 0x1:贝叶斯推断的思想 我们从一个例子开始我们本文的讨论.小明是一个编程老手,但是依然坚信bug仍有可能在代码中存在.于是,在实现了一段特别难的算法之后,他开始决定先来一个简单的测试用例,这个用例通过了.接着,他用了一个稍微复杂的测试用例,再次通过了.接下来更难的测试用例也通过了,这时,小明开始觉得这段代码出现bug的可能性大大大大降低了.... 上面这段白话文中,已经包含了最质朴的贝叶斯思想了!简单来说,贝叶斯推断是通过新得到的证据不断地更新我们的信念. 贝叶斯推断很少会

机器学习笔记 贝叶斯学习(上)

机器学习笔记(一) 今天正式开始机器学习的学习了,为了激励自己学习,也为了分享心得,决定把自己的学习的经验发到网上来让大家一起分享. 贝叶斯学习 先说一个在著名的MLPP上看到的例子,来自于Josh Tenenbaum 的博士论文,名字叫做数字游戏. 用我自己的话叙述就是:为了决定谁洗碗,小明和老婆决定玩一个游戏.小明老婆首先确定一种数的性质C,比如说质数或者尾数为3:然后给出一系列此类数在1至100中的实例D= {x1,...,xN} :最后给出任意一个数x请小明来预测x是否在D中.如果小明猜

mahou之朴素贝叶斯算法思想

贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类 对于分类问题,其实谁都不会陌生,每个人生活中无时不刻的在进行着分类.例如,走在大马路上看到女孩子,你会下意识的将她分为漂亮和不漂亮(漂亮当然就多看几眼啦).在比如,在路上遇到一只狗,你会根据这只狗的毛发脏不脏,然后想到这是一只流浪狗还是家养的宠物狗.这些其实都是生活中的分类操作. 而贝叶斯分类是在生活中分类的基础上加以概率数学来规定定义的一种分类方式 其基本概率公式为: 怎么理解这个公式呢,这里假设你没有概率数学的