李文哲作者

机器学习中的MLE、MAP和贝叶斯估计

即使学过机器学习的人,对机器学习中的MLE(极大似然估计)、MAP(最大后验估计)以及贝叶斯估计(Bayesian)仍有可能一知半解。对于一个基础模型,通常都可以从这三个角度去建模,比如对于逻辑回归(Logistics Regression)来说:

MLE: Logistics Regression

MAP: Regularized Logistics Regression 

Bayesian: Bayesian Logistic Regression 

本文结合实际例子,以通俗易懂的方式去讲解这三者之间的本质区别,希望帮助读者扫清理解中的障碍。

先导知识点: 假设空间(Hypothesis Space)

什么叫假设空间呢?我们可以这样理解。机器学习包含很多种算法,比如线性回归、支持向量机、神经网络、决策树、GDBT等等。我们在建模的时候,第一步就是要选择一个特定的算法比如“支持向量机”。一旦选择了一个算法,就相当于我们选择了一个假设空间。在一个假设空间里,我们通常会有无数种不同的解(或者可以理解成模型),一个优化算法(比如梯度下降法)做的事情就是从中选择最好的一个解或者多个解/模型,当然优化过程要依赖于样本数据。举个例子,如果我们选择用支持向量机,那相当于我们可选的解/模型集中在上半部分(蓝色点)。

一个具体“toy”问题

“ 张三遇到了一个数学难题,想寻求别人帮助。通过一番思考之后发现自己的朋友在清华计算机系当老师。于是,他决定找清华计算机系学生帮忙。那张三用什么样的策略去寻求帮助呢?

在这里,“清华计算机系”是一个假设空间。在这个假设空间里,每一位学生可以看做是一个模型(的实例化)。

对于张三来说,他有三种不同的策略可以选择。

第一种策略 : MLE

第一种策略就是从系里选出过往成绩最好的学生,并让他去解答这个难题。比如我们可以选择过去三次考试中成绩最优秀的学生。

一般的学习流程分为“学习过程”和“预测过程”。第一种策略的方案可以用下面的图来表示。在这里,学习过程相当于从所有系的学生中挑选出成绩最好的学生。所以,这里的“学生过往成绩单”就是我们已知的训练数据 D, 选出成绩最好的学生(计算历史平均分数,并选出最高的),这个过程就是MLE。一旦我们找到了成绩最好的学生,就可以进入预测环节。在预测环节中,我们就可以让他回答张三手里的难题 x', 之后就可以得到他给出的解答 y'

第二种策略:MAP

跟第一种策略的不同点在于,第二种策略中我们听取了老师的建议,老师就是张三的朋友。这位老师给出了自己的观点:“小明和小花的成绩中可能存在一些水分”。当我们按照成绩的高低给学生排序,假设前两名依次为小明和小花,如果我们不考虑这位老师的评价,则我们肯定把小明作为目标对象。然而,既然老师已经对小明和小花做了一些负面的评价,那这个时候,我们很有可能最后选择的是班级里的第三名,而不是小明或者小花。

我们把第二种策略的过程也用一个图来描述。与上面的图相比,唯一的区别在于这里多出了老师的评价,我们称之为 Prior。 也就是说我们根据学生以往的成绩并结合老师评价,选择了一位我们认为最优秀的学生(可以看成是模型)。之后就可以让他去回答张老师的难题 x',并得到他的解答 y'。整个过程类似于MAP的估计以及预测。

到这里,有些读者可能会有一些疑惑:“老师的评价(Prior)跟学生过往的成绩(Observation)是怎么结合在一起的?”。 为了回答这个问题,我们不得不引出一个非常著名的定理,叫做贝叶斯定理,如下图所示。左边的项是MAP需要优化的部分,通过贝叶斯定理这个项可以分解成MLE(第一种策略)和Prior,也就是老师的评价。在这里,分母是常数项(Constant),所以不用考虑。

第三种策略 - Bayesian

最后,我们来介绍第三种策略。这种策略应该很多人也可以想象得到,其实就是让所有人都去参与回答张三的难题,但最后我们通过一些加权平均的方式获得最终的答案。比如有三个学生,而且我们对这三个学生情况没有任何了解。通过提问,第一个学生回答的答案是A,第二个学生回答的答案也是A,但第三个学生回答的是B。在这种情况下,我们基本可以把A作为标准答案。接着再考虑一个稍微复杂的情况,假设我们通过以往他们的表现得知第三个学生曾经多次获得过全国奥赛的金牌,那这个时候该怎么办? 很显然,在这种情况下,我们给予第三个学生的话语权肯定要高于其他两位学生

我们把上面的这种思路应用到张三的问题上,其实相当于我们让所有计算机系的学生参与回答这个问题,之后把他们的答案进行汇总并得出最终的答案。如果我们知道每一位学生的话语权(权重),这个汇总的过程是确定性(deterministic)。 但每一位学生的话语权(权重)怎么得到呢?这就是贝叶斯估计做的事情!

我们用下面的一幅图来讲述贝叶斯估计和预测的整个过程。跟MAP类似,我们已知每一位学生过去三次考试考试成绩(D)以及老师的评价(Prior)。 但跟MAP不同的是,我们这里的目标不再是- “选出最优秀的学生”,而是通过观测数据(D)去获得每一位学生的发言权(权重),而且这些权重全部加起来要等于1, 相当于是一个valid分布(distribution)。

总结起来,在第三种策略之下,给定过去考试成绩(D)和老师的评价(Prior), 我们的目标是估计学生权重的分布,也称之为Posterior Distribution。 那这个分布具体怎么去估计呢? 这部分就是贝叶斯估计做的事情,有很多种方法可以做这件事情,比如MCMC, Variational Method等等,但这并不是本文章的重点,所以不在这里进一步解释,有兴趣的读者可以关注之后关于贝叶斯的专栏文章。从直观的角度思考,因为我们知道每一位学生过往的成绩,所以我们很容易了解到他们的能力水平进而估计出每一位学生的话语权(权重)。

一旦我们获得了这个分布(也就是每一位学生的权重),接下来就可以通过类似于加权平均的方式做预测了,那些权重高的学生话语权自然就越大。

以上是对MLE, MAP以及贝叶斯估计的基本讲解。下面我们试图去回答两个常见的问题。

Q:  随着我们观测到越来越多的数据,MAP估计逐步逼近MLE,这句话怎么理解?

我们接着使用之前MAP(第二种策略)的例子。在这里,我们对原来的问题稍作改变。在之前的例子里我们假设能够得到每一位学生过去三次考试中的成绩。但在这里,我们进一步假定可以获得每一位学生过去100次考试中的成绩。

那这样的修改会带来什么样的变化呢? 如果仔细想一想,其实也很容易想得到。我们设想一下这样的两种场景。假设我们知道某一位学生过去三次的考试成绩比较优异,但老师却告诉我们这位学生能力其实不怎么样,那这时候我们很可能就去相信老师了,毕竟仅仅通过三次考试的成绩很难对一个学生有全面的了解。但相反,假设我们了解到这位学生在过去100次考试中全部获得了班里第一名,但同时老师又告诉我们这位学生的能力其实不怎么样,那这时候我们会有什么样的反应? 两三次考试或许可以算做是运气,但连续100次都是第一名这件事情很难再跟运气画等号吧? 我们甚至可能会去怀疑老师的品德,是不是故意污蔑人家?

这就是说,当我们观测到的数据越来越多的时候,我们从数据中获取的信息的置信度是越高的,相反老师提供的反馈(Prior)的重要性就会逐渐降低。理想情况下,当我们拥有无穷多的数据样本时,MAP会逼近MLE估计,道理都是一样的。

Q:  为什么贝叶斯估计会比MLE, MAP难?

回顾一下,MLE 和MAP都是在寻找一个最优秀的学生。贝叶斯估计则是在估计每一位学生的权重。第一种情况下,为了寻找最优秀的学生,我们只需知道学生之间的“相对”优秀程度。这个怎么理解呢? 比如一个班里有三个学生A,B,C,我们知道学生A比B优秀,同时知道B比C优秀,那这时候就可以推断出学生A是最优秀的,我们并不需要明确知道A的成绩是多少,B的成绩是多少.....

但在贝叶斯估计模式下,我们必须要知道每一个学生的绝对权重,因为最后我们获得的答案是所有学生给出的答案的加权平均,而且所有学生的权重加起来要保证等于1(任何一个分布的积分和必须要等于1)。 假设我们知道每一位学生的能力值,a1, a2,.... an,这个能作为权重吗? 显然不能。为了获得权重,有一种最简单的方法就是先求和,然后再求权重。比如先计算 a1+...+an = S,  再用a1/S 作为权重。这貌似看起来也不难啊,只不过多做了一个加法操作? 

我们很容易看出这个加法操作的时间复杂度是O(n),依赖于总体学生的数量。如果我们的假设空间只有几百名学生,这个是不成问题的。 但实际中,比如我们假设我们的模型用的是支持向量机,然后把假设空间里的每一个可行解比喻成学生,那这个假设空间里有多少个学生呢? 是无数个!!, 也就是说需要对无穷多个数做这种加法操作。 当然,这种加法操作会以积分(integeral)的方式存在,但问题是这种积分通常没有一个closed-form的解,你必须要去近似地估计才可以,这就是MCMC或者Variational方法做的事情,不在这里多做解释。

本文几点重要的Take-aways:

  • 每一个模型定义了一个假设空间,一般假设空间都包含无穷的可行解;

  • MLE不考虑先验(prior),MAP和贝叶斯估计则考虑先验(prior);

  • MLE、MAP是选择相对最好的一个模型(point estimation), 贝叶斯方法则是通过观测数据来估计后验分布(posterior distribution),并通过后验分布做群体决策,所以后者的目标并不是在去选择某一个最好的模型;

  • 当样本个数无穷多的时候,MAP理论上会逼近MLE;

  • 贝叶斯估计复杂度大,通常用MCMC等近似算法来近似;

最后贴一张总结的图:


贪心科技
贪心科技

贪心科技是国内首家AI和大数据课程为主的自适应学习平台。我们追求最精炼的AI教育内容和个人量身定制的课堂。我们鼓励大家拥有“贪心精神”:对知识不断的渴望,对现状不满希望进步的愿望。贪心科技,满足贪心的你。

入门贝叶斯估计最大后验估计极大似然估计机器学习
4
相关数据
来也机构

「来也」是国内领先的人工智能交互平台,由常春藤盟校(Ivy League)归国博士和MBA团队发起,核心技术涵盖自然语言处理(NLP)、多轮对话控制和个性化推荐系统等。公司已获得数十项专利和国家高新技术企业认证。 来也的愿景是通过AI赋能,让每个人拥有助理。C 端产品小来是智能化的在线助理,通过业内创新的AI+Hi模式,提供日程、打车、咖啡、差旅和个性化查询等三十余项技能(覆盖400w用户和数十万服务者),让用户用自然语言发起需求并得到高效的满足。B端品牌吾来输出知识型的交互机器人和智能客户沟通系统,帮助各领域企业客户打造行业助理。目前已经在母婴,商旅,金融和汽车等行业的标杆企业实现商业化落地。

https://www.laiye.com/
逻辑回归技术

逻辑回归(英语:Logistic regression 或logit regression),即逻辑模型(英语:Logit model,也译作“评定模型”、“分类评定模型”)是离散选择法模型之一,属于多重变量分析范畴,是社会学、生物统计学、临床、数量心理学、计量经济学、市场营销等统计实证分析的常用方法。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

时间复杂度技术

在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。这是一个代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。使用这种方式时,时间复杂度可被称为是渐近的,亦即考察输入值大小趋近无穷时的情况。例如,如果一个算法对于任何大小为 n (必须比 n0 大)的输入,它至多需要 5n3 + 3n 的时间运行完毕,那么它的渐近时间复杂度是 O(n3)。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

线性回归技术

在现实世界中,存在着大量这样的情况:两个变量例如X和Y有一些依赖关系。由X可以部分地决定Y的值,但这种决定往往不很确切。常常用来说明这种依赖关系的最简单、直观的例子是体重与身高,用Y表示他的体重。众所周知,一般说来,当X大时,Y也倾向于大,但由X不能严格地决定Y。又如,城市生活用电量Y与气温X有很大的关系。在夏天气温很高或冬天气温很低时,由于室内空调、冰箱等家用电器的使用,可能用电就高,相反,在春秋季节气温不高也不低,用电量就可能少。但我们不能由气温X准确地决定用电量Y。类似的例子还很多,变量之间的这种关系称为“相关关系”,回归模型就是研究相关关系的一个有力工具。

梯度下降技术

梯度下降是用于查找函数最小值的一阶迭代优化算法。 要使用梯度下降找到函数的局部最小值,可以采用与当前点的函数梯度(或近似梯度)的负值成比例的步骤。 如果采取的步骤与梯度的正值成比例,则接近该函数的局部最大值,被称为梯度上升。

逻辑技术

人工智能领域用逻辑来理解智能推理问题;它可以提供用于分析编程语言的技术,也可用作分析、表征知识或编程的工具。目前人们常用的逻辑分支有命题逻辑(Propositional Logic )以及一阶逻辑(FOL)等谓词逻辑。

支持向量机技术

在机器学习中,支持向量机是在分类与回归分析中分析数据的监督式学习模型与相关的学习算法。给定一组训练实例,每个训练实例被标记为属于两个类别中的一个或另一个,SVM训练算法创建一个将新的实例分配给两个类别之一的模型,使其成为非概率二元线性分类器。SVM模型是将实例表示为空间中的点,这样映射就使得单独类别的实例被尽可能宽的明显的间隔分开。然后,将新的实例映射到同一空间,并基于它们落在间隔的哪一侧来预测所属类别。

推荐文章
暂无评论
暂无评论~