机器学习中极大似然估计MLE和最大后验估计MAP


(机器学习必知必会)

最大似然估计(MLE)、最大后验概率估计(MAP)这两个概念在机器学习和深度学习中经常碰到。现代机器学习的终极问题都会转化为解目标函数的优化问题,MLE和MAP是生成这个函数的很基本的思想,因此我们对二者的认知是非常重要的。

在统计中最大似然估计(Maximum likelihood estimation, 简称MLE)和最大后验概率估计(Maximum a posteriori estimation, 简称MAP)是很常用的两种参数估计方法(根据观测到的数据去推测模型和参数),但很多人并不理解这两种方法的思路,本文将详细介绍他们的区别。

相关资料

一、概率和统计的区别

我们在大学里通常会学到《概率论与数理统计》这门课,那概率(probabilty)和统计(statistics)看似两个相近的概念,其实研究的问题刚好相反。

Lary Wasserman 在 All of Statistics 的序言里有说过概率论和统计推断的区别:

概率

The basic problem that we study in probability is:
Given a data generating process, what are the properities of the outcomes?

统计

The basic problem of statistical inference is the inverse of probability:
Given the outcomes, what can we say about the process that generated the data?

来自知乎的一张图:概率vs.统计

  • 概率是已知模型和参数,推数据(例如均值,方差,协方差等)
  • 统计是已知数据,推模型和参数(例如高斯分布、指数分布等)

显然,本文解释的MLE和MAP都是统计领域的问题。它们都是根据观测到的数据去推测模型和参数的方法。

二、概率函数和似然函数的区别 $P(x|\theta)$

对于函数$P(x|\theta)$,输入x表示某一个具体的数据,$\theta$表示模型的参数

  • 如果$\theta$是已经确定的,$x$是变量,那这个函数就叫做概率函数(probability function),它描述已知模型的情况下,不同的样本点x出现的概率是多少。
  • 如果$x$是已经确定的,$\theta$是变量,那这个函数就叫做似然函数(likelihood function),它描述对于不同的模型参数$\theta$,出现$x$这个样本点的概率是多少。

这种形式我们之前也见过,比如$f(x,y)=x^y$,如果x是已经确定的,如x=3,那么$f(3,y) = 3^y$是指数函数,而如果y是已经确定的,如y=2,那么$f(x,2)=x^2$是幂函数。同一个数学形式,从不同变量角度考虑,可以有不同的名字。

三、频率学派:极大似然估计 $\underset{\theta}{\operatorname{argmax}} P(x \mid \theta)$

关于极大似然估计的详细原理,可以看我的另一篇博客:【极大似然估计MLE】透彻理解机器学习中MLE的原理

假设有一个造币厂生产某种硬币,现在我们拿到了一枚这种硬币,想试试这硬币是不是均匀的?

这是一个统计问题,解决统计问题需要什么? 数据

所以我们拿这枚硬币抛了10次,得到的数据x=(反正正正正反正正正反)

假设正面朝上的概率是$\theta$,通过极大似然估计我们可以求出最有可能出现数据x的模型参数$\theta=0.7$,然后我们就认为这枚硬币不是均匀的,正面朝上的概率是0.7,这就是极大似然估计做的事情。


但有些会说,硬币一般都是均匀的啊,就算你实验发现结果是”反正正正正反正正正反”,我也不信$\theta=0.7$

这里就设计到贝叶斯学派的思想了,要考虑先验概率(即不同模型出现的概率也是不同的),为此,引入了最大后验概率。

四、贝叶斯学派:最大后验估计 $\underset{\theta}{\operatorname{argmax}} P(x \mid \theta) P(\theta)$

最大似然函数是在观测数据x已知的情况下,直接选择能使$P(x|\theta)$最大的模型(参数为$\theta$),而贝叶斯学派认为,每个模型(参数$\theta$)出现的概率是不一样的。在贝叶斯学派眼里,参数$\theta$也是随机变量, 它自身也有分布,。比如以抛硬币为例,根据常识(先验知识),模型($\theta=0.5$)出现的概率显然是最大的,因此我们还需要考虑先验概率,在现实世界中,不同模型出现的概率,有些模型即便$P(x|\theta)$很大,但可能它存在于现实世界的概率是0.001,综合考虑$P(x|\theta)P(\theta)$就会很小。

因此最大后验概率估计是想让$P(x|\theta)P(\theta)$最大。而极大似然估计时默认认为某个模型出现的概率是一样的,$P(\theta)$是常数,即极大似然估计只需要让$P(x|\theta)$最大

最大后验概率估计可以看作是正则化的最大似然估计,当然机器学习或深度学习中的正则项通常是加法,而在最大后验概率估计中采用的是乘法,$P(\theta)$是正则项


抛硬币实例

下面以抛硬币为例,来理解最大后验概率估计

投硬币时,我们认为(”先验地知道”)$\theta$取0.5的概率很大,取其他值的概率小一些。我们用一个高斯分布(当然你也可以认为先验分布是个Beta分布)来具体描述我们掌握的这个先验知识,例如假设$P(\theta)$为均值0.5,方差0.1的高斯函数,分布函数为$\frac{1}{\sqrt{2 \pi} \sigma} e^{-\frac{(\theta-\mu)^{2}}{2 \sigma^{2}}}=\frac{1}{10 \sqrt{2 \pi}} e^{-50(\theta-0.5)^{2}}$,如下图

每个模型(参数$\theta$)存在于现实世界的可能性不同,模型($\theta=0.5$出现的可能性最大)

似然函数 $P(x|\theta)=\theta^7(1-\theta)^3$,图像如下:

则 $P(x|\theta)P(\theta)$的函数如下图:

之前通过极大似然估计,我们得到$\theta=0.7$时,$P(x|\theta)$取到最大值,现在我们使用最大后验概率估计,$\theta=0.558$时,$P(x|\theta)P(\theta)$取到最大值。


那如何让贝叶斯学派的人相信极大似然估计的结果$\theta=0.7$呢?你得多做点实验。

如果做了1000次实验,其中700次都是正面朝上,此时的似然函数$P(x|\theta)=\theta^{700}(1-\theta)^{300}$,图像如下:

假设先验知识$P(\theta)$仍为均值0.5,方差0.1的高斯函数

则 $P(x|\theta)P(\theta)$的函数如下图:

现在我们使用最大后验概率估计,$\theta=0.696$时,$P(x|\theta)P(\theta)$取到最大值。这样就算是考虑了先验概率的贝叶斯学派的人,也不得不承认得把$\theta$估计在0.7附近了。

所以说随着试验次数的增加,我们的先验假设的作用被逐渐淡化,数据中体现的信息将会在估计中占据主导作用,因此当数据量足够大时,会发现两种估计方法会得到相近的结论。


顺便说一下为什么最大后验概率估计中有“后验概率”这个词,其实也很好理解,后验概率的定义是$P(\theta|X)$,其中X是已经确定的,$\theta$是变量,利用贝叶斯公式$p(\theta \mid X)=\frac{p(X \mid \theta) \cdot p(\theta)}{p(X)}$,在贝叶斯学派里面,$P(X)=\sum_\theta P(X|\theta)P(\theta)$是综合考虑所有不同模型后得到的结果,显然$P(X)$是固定的(你也可以理解为归一化项),选择不同的模型(参数$\theta$)会影响$p(\theta \mid X)$,但不会影响$P(X)$。

因此之前我们是$\underset{\theta}{\operatorname{argmax}} P(X \mid \theta) P(\theta)$,它和$\underset{\theta}{\operatorname{argmax}} P(\theta \mid X)$是等价的

证明:

$\underset{\theta}{\operatorname{argmax}} P(\theta \mid X)=\underset{\theta}{\operatorname{argmax}} \frac{P(X \mid \theta) P(\theta)}{P(X)} \propto \underset{\theta}{\operatorname{argmax}} P(X \mid \theta) P(\theta)=\underset{\theta}{\operatorname{argmax}} [\log P(X \mid \theta) + \log P(\theta)]$

五、 最大似然估计与最大后验估计的区别

频率学派和贝叶斯学派的争论

抽象一点来讲,频率学派和贝叶斯学派对世界的认知有本质不同:

  • 频率学派认为世界是确定的,有一个本体,这个本体的真值是不变的,即参数$\theta$是一个客观存在的固定值,我们的目标就是要找到这个真值或真值所在的范围。(世界上只有一个模型)

  • 贝叶斯学派认为世界是不确定的,人们对世界先有一个预判,而后通过观测数据对这个预判做调整,我们的目标是要找到最优的描述这个世界的概率分布。。换言之,模型参数$\theta$是一个随机变量,服从一个概率分布(世界上有多个模型,每个模型出现的概率不同),我们首先根据主观的经验假定$\theta$的概率分布式$P(\theta)$(先验分布,例如高斯分布、指数分布,往往并不准确),然后根据观察到的新信息(数据集$X$)其进行修正。

MLE和MAP的异同

在统计中最大似然估计(Maximum likelihood estimation, 简称MLE)和最大后验概率估计(Maximum a posteriori estimation, 简称MAP)是很常用的两种参数估计方法,他们都是根据观测到的数据x去推测模型和参数

  • 极大似然估计MLE是求让$P(x|\theta)$最大的模型(它认为不同模型出现的概率相同,即$P(\theta)$是一个常数或者说它认为世界上只有一个模型)
  • 最大后验概率估计MAP是求让$P(x|\theta)P(\theta)$最大的模型(它认为不同模型出现的概率不同)

随着数据量的增加,参数分布会越来越向数据靠拢,先验的影响力会越来越小

如果先验是uniform distribution,则贝叶斯方法等价于频率方法。因为直观上来讲,先验是uniform distribution本质上表示对事物没有任何预判

  • 高中数学有一个著名的概率问题,“一枚硬币连续投了五次都是正面,那么第六次投还是正面的概率是多少?”机智的高中生会想,这骗得了我?这是独立重复实验,概率还是0.5!(因为这个高中生有先验知识,根据常识硬币正面朝上的概率=0.5最常见
  • 可如果一枚硬币连续投了一百次都是正面呢?一亿次都是正面呢?是否还要坚信出现正面的概率是0.5?这个硬币会不会被人动了手脚,就只有正面呢?(说明在具体实验中,先验知识可能并不准确)
  • 当大量的事实摆在我们面前,随着数据越来越多,人应该越来越相信这个硬币有问题,越来越不相信硬币的概率是0.5,这才是最自然而然的感觉,这才是动态的看待问题,而不是机械僵化的看待问题,而这种直觉背后就是贝叶斯思想。(先验的影响越来越小

最大后验估计与L1 L2正则之间的关系

参考:https://zhuanlan.zhihu.com/p/342268982

MAP的奥妙之处在于我们可以通过先验的方式给模型灌输一些信息,比如模型的参数$\theta$可能服从高斯分布,这样我们可以假定先验就是高斯分布

$P(\theta) = \frac{1}{\sqrt{2 \pi} \sigma} e^{-\frac{(\theta-\mu)^{2}}{2 \sigma^{2}}}$,其中$\mu$和$\sigma^2$是先确定好的

在极大似然估计的基础上加了高斯的先验,这等同于我们在已有的代价函数上加了L2正则。


当我们把先验分布换成拉普拉斯分布时,会是什么情况呢?

知乎:拉普拉斯分布

$f(x \mid \mu, b)=\frac{1}{2 b} e^{-\frac{|x-\mu|}{b}}$,其中$\mu$和$b$是先确定好的


简单总结:

  • 假设参数的先验概率服从高斯分布,相当于原来损失函数加入了L2正则
  • 假设参数的先验概率服从拉普拉斯分布,相当于原来损失函数加入了L1正则

顺便说一下,我们经常说L1正则化比L2正则化易得稀疏解,其实从最大后验概率的角度也能解释这个现象。

回答:采用拉普拉斯分布先验的最大后验估计=极大似然估计+L1正则化项。观察高斯分布和拉普拉斯分布的概率密度函数图像可知,拉普拉斯分布更为稀疏,也即取到0的概率更大,所以其生成的参数$\omega$更为稀疏。

参考:https://sm1les.com/2019/01/07/l1-and-l2-regularization/

六、进阶知识

贝叶斯公式理解(图解)

之前我们都是从模型(参数)与数据的角度来理解$\theta$和X,下面从另一种角度理解贝叶斯公式:


贝叶斯公式:$p(\theta \mid X)=\frac{p(X \mid \theta) \cdot p(\theta)}{p(X)}$,即 $posterior =\frac{\text { likelihood } \cdot \text { prior }}{\text { evidence }}$

$X$(已经确定)是某件已经发生的事情,$\theta$(变量)是某个原因。有了前面的知识铺垫,应该很容易明白为什么上面$P(X|\theta)$是似然函数而不是概率函数了吧

举个例子:

  • X表示老板生气了
  • $\theta$是表示某种原因
    • 可能的原因1:员工迟到
    • 可能的原因2:昨晚和老婆吵架了
    • 可能的原因3:员工泄漏资料

从这个角度去理解贝叶斯公式:$P(\theta \mid X)$表示已知老板生气了,问是因为某种原因的概率有多大

$P(员工迟到 | 老板生气) =\frac{P(老板生气 | 员工迟到)P(员工迟到)}{P(老板生气)}= \frac{P(老板生气 | 员工迟到)P(员工迟到)}{P(老板生气 | 员工迟到)P(员工迟到) + P(老板生气 | 原因2)P(原因2) + P(老板生气 | 原因3)*P(原因3)}$

第一个等号是贝叶斯公式,第二个等号用了全概率公式

贝叶斯估计

贝叶斯估计是最大后验估计的进一步扩展,感兴趣的同学可以看这两篇博客:贝叶斯估计、最大似然估计、最大后验概率估计最大似然估计MLE、最大后验概率估计MAP及贝叶斯估计


Author: SHWEI
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint polocy. If reproduced, please indicate source SHWEI !
评论
 Previous
【NIPS 2016图神经网络论文解读】Variational Graph Auto-Encoders (VGAE) 基于VAE的图变分自编码器 【NIPS 2016图神经网络论文解读】Variational Graph Auto-Encoders (VGAE) 基于VAE的图变分自编码器
写在前面 论文题目:Variational Graph Auto-Encoders 论文作者:Thomas N. Kipf, Max Welling 论文组织:University of Amsterdam 论文会议:NIPS Works
2021-12-10
Next 
【ICLR 2018图神经网络论文解读】Graph Attention Networks (GAT) 图注意力模型 【ICLR 2018图神经网络论文解读】Graph Attention Networks (GAT) 图注意力模型
论文题目:Graph Attention Networks 论文地址:https://arxiv.org/pdf/1710.10903.pdf 论文代码:https://github.com/PetarV-/GAT 论文引用:Ve
2021-11-23
  TOC