先验、后验、似然
先验分布、后验分布和似然函数
本节转自:先验分布、后验分布、似然估计这几个概念是什么意思,它们之间的关系是什么?
通俗解释
-
先验分布:根据一般的经验认为随机变量应该满足的分布。先验分布是你瞎猜参数服从啥分布。
-
后验分布:通过当前训练数据修正的随机变量的分布,比先验分布更符合当前数据。后验分布是你学习经验后有根据地瞎猜参数服从啥分布。
-
似然估计:已知训练数据,给定了模型,通过让似然性极大化估计模型参数的一种方法。似然估计是你猜参数是多少,才最能解释某些实验结果。
举例
这几个概念可以用“原因的可能性”和“结果的可能性”的“先后顺序”及“条件关系”来理解。
下面举例:隔壁老王要去10公里外的一个地方办事,他可以选择走路,骑自行车或者开车,并花费了一定时间到达目的地。在这个事件中,可以把交通方式(走路、骑车或开车)认为是原因,花费的时间认为是结果。
后验概率
若老王花了一个小时的时间完成了10公里的距离,那么很大可能是骑车过去的,当然也有较小可能老王是个健身达人跑步过去的,或者开车过去但是堵车很严重。若老王一共用了两个小时的时间完成了10公里的距离,那么很有可能他是走路过去的。若老王只用了二十分钟,那么很有可能是开车。这种先知道结果,然后由结果估计原因的概率分布,p(交通方式|时间),就是后验概率。
先验概率
老王早上起床的时候觉得精神不错,想锻炼下身体,决定跑步过去;也可能老王想做个文艺青年试试最近流行的共享单车,决定骑车过去;也可能老王想炫个富,决定开车过去。老王的选择与到达目的地的时间无关。先于结果,确定原因的概率分布,p(交通方式),就是先验概率。
似然函数
老王决定步行过去,那么很大可能10公里的距离大约需要两个小时;较小可能是老王平时坚持锻炼,跑步过去用了一个小时;更小可能是老王是个猛人,40分钟就到了。老王决定骑车过去,很可能一个小时就能到;较小可能是老王那天精神不错加上单双号限行交通很通畅,40分钟就到了;还有一种较小可能是老王运气很差,连着坏了好几辆共享单车,花了一个半小时才到。老王决定开车过去,很大可能是20分钟就到了,较小可能是那天堵车很严重,磨磨唧唧花了一个小时才到。这种先确定原因,根据原因来估计结果的概率分布,p(时间|交通方式),就是似然估计。
evidence
老王去那个地方好几趟,不管是什么交通方式,得到了一组关于时间的概率分布。这种不考虑原因,只看结果的概率分布,p(时间),也有一个名词:evidence(不清楚合适的中文名是什么)。
最后,甩出著名的贝叶斯公式:
p(θ∣x)=p(x∣θ)p(θ)p(x)p(\theta|x)=\frac{p(x|\theta)p(\theta)}{p(x)} p(θ∣x)=p(x)p(x∣θ)p(θ)
xxx:观察得到的数据(结果)
θ\thetaθ:决定数据分布的参数(原因)
p(θ∣x)p(\theta|x)p(θ∣x):posterior
p(θ)p(\theta)p(θ):prior
p(x∣θ)p(x|\theta)p(x∣θ):likelihood
p(x)p(x)p(x):evidence
最大似然估计MLE和最大后验估计MAP
本节转自:https://zhuanlan.zhihu.com/p/32480810
- 频率学派 - Frequentist - Maximum Likelihood Estimation (MLE,最大似然估计)
- 贝叶斯学派 - Bayesian - Maximum A Posteriori (MAP,最大后验估计)
概述
有时候和别人聊天,对方会说自己有很多机器学习经验,深入一聊发现,对方竟然对MLE和MAP一知半解,至少在我看来,这位同学的机器学习基础并不扎实。难道在这个深度学习盛行的年代,不少同学都只注重调参数?
现代机器学习的终极问题都会转化为解目标函数的优化问题,MLE和MAP是生成这个函数的很基本的思想,因此我们对二者的认知是非常重要的。这次就和大家认真聊一聊MLE和MAP这两种estimator。
两大学派的争论
抽象一点来讲,频率学派和贝叶斯学派对世界的认知有本质不同:频率学派认为世界是确定的,有一个本体,这个本体的真值是不变的,我们的目标就是要找到这个真值或真值所在的范围;而贝叶斯学派认为世界是不确定的,人们对世界先有一个预判,而后通过观测数据对这个预判做调整,我们的目标是要找到最优的描述这个世界的概率分布。
在对事物建模时,用 θ 表示模型的参数,**请注意,解决问题的本质就是求 θ\thetaθ **。那么:
(1) 频率学派:存在唯一真值 θ\thetaθ。举一个简单直观的例子–抛硬币,我们用 P(head)P(head)P(head) 来表示硬币的bias。抛一枚硬币100次,有20次正面朝上,要估计抛硬币正面朝上的 bias P(head)=θP(head)=\thetaP(head)=θ 。在频率学派来看,θ=20/100=0.2\theta = 20 / 100 = 0.2θ=20/100=0.2,很直观。当数据量趋于无穷时,这种方法能给出精准的估计;然而缺乏数据时则可能产生严重的偏差。例如,对于一枚均匀硬币,即 θ=0.5\theta = 0.5θ=0.5,抛掷5次,出现5次正面 (这种情况出现的概率是1/2^5=3.125%),频率学派会直接估计这枚硬币 θ=1\theta = 1θ=1,出现严重错误。
(2) 贝叶斯学派: θ\thetaθ 是一个随机变量,符合一定的概率分布。在贝叶斯学派里有两大输入和一大输出,输入是先验 (prior)和似然 (likelihood),输出是后验 (posterior)。先验,即 P(θ)P(\theta)P(θ) ,指的是在没有观测到任何数据时对 θ\thetaθ 的预先判断,例如给我一个硬币,一种可行的先验是认为这个硬币有很大的概率是均匀的,有较小的概率是是不均匀的;似然,即 P(X∣θ)P(X|\theta)P(X∣θ) ,是假设 θ\thetaθ 已知后我们观察到的数据应该是什么样子的;后验,即 P(θ∣X)P(\theta|X)P(θ∣X) ,是最终的参数分布。贝叶斯估计的基础是贝叶斯公式,如下:
P(θ∣X)=P(X∣θ)P(θ)P(X)P(\theta|X)=\frac{P(X|\theta)P(\theta)}{P(X)} P(θ∣X)=P(X)P(X∣θ)P(θ)
同样是抛硬币的例子,对一枚均匀硬币抛5次得到5次正面,如果先验认为大概率下这个硬币是均匀的 (例如最大值取在0.5处的Beta分布),那么 P(head)P(head)P(head) ,即 P(θ∣X)P(\theta|X)P(θ∣X) ,是一个distribution,最大值会介于0.5~1之间,而不是武断的 θ=1\theta = 1θ=1。
这里有两点值得注意的地方:
- 随着数据量的增加,参数分布会越来越向数据靠拢,先验的影响力会越来越小
- 如果先验是uniform distribution,则贝叶斯方法等价于频率方法。因为直观上来讲,先验是uniform distribution本质上表示对事物没有任何预判
MLE - 最大似然估计
Maximum Likelihood Estimation, MLE是频率学派常用的估计方法!
假设数据 x1,x2,...,xnx_1,x_2,...,x_nx1,x2,...,xn 是 i.i.d.的一组抽样,X=(x1,x2,...,xn)X=(x_1,x_2,...,x_n)X=(x1,x2,...,xn) 。其中i.i.d.表示Independent and identical distribution,独立同分布。那么MLE对 θ\thetaθ 的估计方法可以如下推导:
θ^MLE=argmaxP(X;θ)=argmaxP(x1;θ)P(x2;θ)…P(xn;θ)=argmaxlog∏i=1nP(xi;θ)=argmax∑i=1nlogP(xi;θ)=argmin−∑i=1nlogP(xi;θ)\begin{align} \hat{\theta}_{MLE}&=argmax\ P(X;\theta)\\ &=argmax\ P(x_1;\theta)P(x_2;\theta)\dots P(x_n;\theta)\\ &=argmax\ \log\prod_{i=1}^nP(x_i;\theta)\\ &=argmax\ \sum_{i=1}^n\log P(x_i;\theta)\\ &=argmin\ -\sum_{i=1}^n\log P(x_i;\theta) \end{align} θ^MLE=argmax P(X;θ)=argmax P(x1;θ)P(x2;θ)…P(xn;θ)=argmax logi=1∏nP(xi;θ)=argmax i=1∑nlogP(xi;θ)=argmin −i=1∑nlogP(xi;θ)
最后这一行所优化的函数被称为 Negative Log Likelihood (NLL),这个概念和上面的推导是非常重要的!
我们经常在不经意间使用MLE,例如
- 上文中关于频率学派求硬币概率的例子,其方法其实本质是由优化NLL得出。本文末尾附录中给出了具体的原因 😃
- 给定一些数据,求对应的高斯分布时,我们经常会算这些数据点的均值和方差然后带入到高斯分布的公式,其理论依据是优化NLL
- 深度学习做分类任务时所用的cross entropy loss,其本质也是MLE
MAP - 最大后验估计
Maximum A Posteriori, MAP是贝叶斯学派常用的估计方法!
同样的,假设数据 x1,x2,…,xnx_1,x_2,\dots,x_nx1,x2,…,xn 是i.i.d.的一组抽样,X=(x1,x2,…,xn)X=(x_1,x_2,\dots,x_n)X=(x1,x2,…,xn) 。那么MAP对 θ\thetaθ 的估计方法可以如下推导:
θ^MAP=argmaxP(θ∣X)=argmin−logP(θ∣X)=argmin−logP(X∣θ)P(θ)P(X)=argmin−logP(X∣θ)−logP(θ)+logP(X)=argmin−logP(X∣θ)−logP(θ)\begin{align} \hat{\theta}_{MAP}&=argmax\ P(\theta|X)\\ &=argmin\ -\log P(\theta|X)\\ &=argmin\ -\log\frac{P(X|\theta)P(\theta)}{P(X)}\\ &=argmin\ -\log P(X|\theta)-\log P(\theta)+\log P(X)\\ &=argmin\ -\log P(X|\theta)-\log P(\theta) \end{align} θ^MAP=argmax P(θ∣X)=argmin −logP(θ∣X)=argmin −logP(X)P(X∣θ)P(θ)=argmin −logP(X∣θ)−logP(θ)+logP(X)=argmin −logP(X∣θ)−logP(θ)
其中,第二行到第三行使用了贝叶斯定理,第四行到第五行 P(X)P(X)P(X) 可以丢掉因为与 θ\thetaθ 无关。注意 −logP(X∣θ)−logP(X|\theta)−logP(X∣θ) 其实就是NLL,所以MLE和MAP在优化时的不同就是在于先验项 −logP(θ)−logP(\theta)−logP(θ) 。好的,那现在我们来研究一下这个先验项,假定先验是一个高斯分布,即
P(θ)=constant×e−θ22σ2P(\theta)=constant\times e^{-\frac{\theta^2}{2\sigma^2}} P(θ)=constant×e−2σ2θ2
那么, −logP(θ)=constant+θ22σ2-\log P(\theta)=constant+\frac{\theta^2}{2\sigma^2}−logP(θ)=constant+2σ2θ2 。至此,一件神奇的事情发生了 – 在MAP中使用一个高斯分布的先验等价于在MLE中采用L2的regularizaton!
再稍微补充几点:
- 我们不少同学大学里学习概率论时,最主要的还是频率学派的思想,其实贝叶斯学派思想也非常流行,而且实战性很强
- CMU的很多老师都喜欢用贝叶斯思想解决问题;THU朱军老师也在做贝叶斯深度学习的工作,有兴趣可以关注一下。
后记
有的同学说:“了解这些没用,现在大家都不用了。”这种想法是不对的,因为这是大家常年在用的知识,是推导优化函数的核心,而优化函数又是机器学习 (包含深度学习) 的核心之一。这位同学有这样的看法,说明对机器学习的本质并没有足够的认识,而让我吃惊的是,竟然有不少其他同学为这种看法点赞。内心感到有点儿悲凉,也引发了我写这篇文章的动力,希望能帮到一些朋友 😃
Ref
- 先验分布、后验分布、似然估计这几个概念是什么意思,它们之间的关系是什么?
- Agenter的回答
- 机器学习的数学——雷明
- 聊一聊机器学习的MLE和MAP:最大似然估计和最大后验估计
- Bayesian Method Lecture, UT Dallas.
- MLE, MAP, Bayes classification Lecture, CMU.