机器学习的MLE和MAP:最大似然估计和最大后验估计

https://zhuanlan.zhihu.com/p/32480810

TLDR (or the take away)

  • 频率学派 - Frequentist - Maximum Likelihood Estimation (MLE,最大似然估计)
  • 贝叶斯学派 - Bayesian - Maximum A Posteriori (MAP,最大后验估计)

概述

有时候和别人聊天,对方会说自己有很多机器学习经验,深入一聊发现,对方竟然对MLE和MAP一知半解,至少在我看来,这位同学的机器学习基础并不扎实。难道在这个深度学习盛行的年代,不少同学都只注重调参数?

现代机器学习的终极问题都会转化为解目标函数的优化问题,MLE和MAP是生成这个函数的很基本的思想,因此我们对二者的认知是非常重要的。这次就和大家认真聊一聊MLE和MAP这两种estimator。

两大学派的争论

抽象一点来讲,频率学派和贝叶斯学派对世界的认知有本质不同:频率学派认为世界是确定的,有一个本体,这个本体的真值是不变的,我们的目标就是要找到这个真值或真值所在的范围;而贝叶斯学派认为世界是不确定的,人们对世界先有一个预判,而后通过观测数据对这个预判做调整,我们的目标是要找到最优的描述这个世界的概率分布。

 

在对事物建模时,用 	heta  表示模型的参数,请注意,解决问题的本质就是求 	heta 。那么:

(1) 频率学派:存在唯一真值 	heta  。举一个简单直观的例子--抛硬币,我们用 P(head) 来表示硬币的bias。抛一枚硬币100次,有20次正面朝上,要估计抛硬币正面朝上的bias P(head)=	heta。在频率学派来看,	heta = 20 / 100 = 0.2,很直观。当数据量趋于无穷时,这种方法能给出精准的估计;然而缺乏数据时则可能产生严重的偏差。例如,对于一枚均匀硬币,即 	heta = 0.5,抛掷5次,出现5次正面 (这种情况出现的概率是1/2^5=3.125%),频率学派会直接估计这枚硬币 	heta = 1,出现严重错误。

(2) 贝叶斯学派: 	heta 是一个随机变量,符合一定的概率分布。在贝叶斯学派里有两大输入和一大输出,输入是先验 (prior)和似然 (likelihood),输出是后验 (posterior)。先验,即 P(	heta) ,指的是在没有观测到任何数据时对 	heta 的预先判断,例如给我一个硬币,一种可行的先验是认为这个硬币有很大的概率是均匀的,有较小的概率是是不均匀的;似然,即 P(X|	heta) ,是假设 	heta 已知后我们观察到的数据应该是什么样子的;后验,即 P(	heta|X) ,是最终的参数分布。贝叶斯估计的基础是贝叶斯公式,如下:

P(	heta|X)=frac{P(X|	heta) 	imes P(	heta)}{P(X)}

同样是抛硬币的例子,对一枚均匀硬币抛5次得到5次正面,如果先验认为大概率下这个硬币是均匀的 (例如最大值取在0.5处的Beta分布),那么 P(head) ,即 P(	heta|X) ,是一个distribution,最大值会介于0.5~1之间,而不是武断的 	heta = 1。

这里有两点值得注意的地方:

  • 随着数据量的增加,参数分布会越来越向数据靠拢,先验的影响力会越来越小
  • 如果先验是uniform distribution,则贝叶斯方法等价于频率方法。因为直观上来讲,先验是uniform distribution本质上表示对事物没有任何预判

MLE - 最大似然估计

Maximum Likelihood Estimation, MLE是频率学派常用的估计方法!

假设数据 x_1, x_2, ..., x_n  是i.i.d.的一组抽样,X = (x_1, x_2, ..., x_n) 。其中i.i.d.表示Independent and identical distribution,独立同分布。那么MLE对 	heta 的估计方法可以如下推导:

egin{align*} hat{	heta}_	ext{MLE} &= arg max P(X; 	heta) \ &= arg max P(x_1; 	heta) P(x_2; 	heta) cdotcdotcdotcdot P(x_n;	heta) \ & = arg maxlog prod_{i=1}^{n} P(x_i; 	heta) \ &= arg max sum_{i=1}^{n} log P(x_i; 	heta) \ &= arg min - sum_{i=1}^{n} log P(x_i; 	heta) end{align*}

最后这一行所优化的函数被称为Negative Log Likelihood (NLL),这个概念和上面的推导是非常重要的!

我们经常在不经意间使用MLE,例如

  • 上文中关于频率学派求硬币概率的例子,其方法其实本质是由优化NLL得出。本文末尾附录中给出了具体的原因 :-)
  • 给定一些数据,求对应的高斯分布时,我们经常会算这些数据点的均值和方差然后带入到高斯分布的公式,其理论依据是优化NLL
  • 深度学习做分类任务时所用的cross entropy loss,其本质也是MLE

MAP - 最大后验估计

Maximum A Posteriori, MAP是贝叶斯学派常用的估计方法!

同样的,假设数据 x_1, x_2, ..., x_n  是i.i.d.的一组抽样,X = (x_1, x_2, ..., x_n) 。那么MAP对 	heta 的估计方法可以如下推导:

egin{align*} hat{	heta}_	ext{MAP} &= arg max P(	heta | X) \ &= arg min -log P(	heta | X) \ & = arg min -log P(X|	heta) - log P(	heta) + log P(X) \ &= arg min -log P(X|	heta ) - log P(	heta) end{align*}

其中,第二行到第三行使用了贝叶斯定理,第三行到第四行P(X) 可以丢掉因为与 	heta 无关。注意 -log P(X|	heta ) 其实就是NLL,所以MLE和MAP在优化时的不同就是在于先验项 - log P(	heta) 。好的,那现在我们来研究一下这个先验项,假定先验是一个高斯分布,即

P(	heta) = 	ext{constant} 	imes e^{-frac{	heta^2}{2sigma^2}}

那么, -log P(	heta) = 	ext{constant} + frac{	heta^2}{2sigma^2} 。至此,一件神奇的事情发生了 -- 在MAP中使用一个高斯分布的先验等价于在MLE中采用L2的regularizaton!

 

再稍微补充几点:

  • 我们不少同学大学里学习概率论时,最主要的还是频率学派的思想,其实贝叶斯学派思想也非常流行,而且实战性很强
  • CMU的很多老师都喜欢用贝叶斯思想解决问题;我本科时的导师朱军老师也在做贝叶斯深度学习的工作,有兴趣可以关注一下。

后记

有的同学说:“了解这些没用,现在大家都不用了。”这种想法是不对的,因为这是大家常年在用的知识,是推导优化函数的核心,而优化函数又是机器学习 (包含深度学习) 的核心之一。这位同学有这样的看法,说明对机器学习的本质并没有足够的认识,而让我吃惊的是,竟然有不少其他同学为这种看法点赞。内心感到有点儿悲凉,也引发了我写这篇文章的动力,希望能帮到一些朋友 :-)

参考资料

[1] Bayesian Method Lecture, UT Dallas.

[2] MLE, MAP, Bayes classification Lecture, CMU.

附录

为什么说频率学派求硬币概率的算法本质是在优化NLL?

因为抛硬币可以表示为参数为 	heta  的Bernoulli分布,即

P(x_i; 	heta) =left{ egin{array}{ll} 	heta & x_i = 1 \ 1 - 	heta & x_i = 0 \ end{array} 
ight.  = 	heta^{x_i} (1- 	heta)^{1-x_i}

其中 x_i = 1 表示第 i 次抛出正面。那么,

	ext{NLL} = -sum_{i=1}^n log P(x_i; 	heta) = -sum_{i=1}^n log 	heta^{x_i} (1- 	heta)^{1-x_i}

求导数并使其等于零,得到

	ext{NLL}' = -sum_{i=1}^nBig(frac{x_i}{	heta} + (1-x_i)frac{-1}{1-	heta}Big) = 0

即 hat{	heta} = frac{sum_{i=1}^n x_i}{n} ,也就是出现正面的次数除以总共的抛掷次数。

原文地址:https://www.cnblogs.com/sddai/p/10313301.html