MLE 与 MAP 简介

最近看到一篇关于 MLE (Maximum Likelihood Estimation) 和 MAP(Maximum A Posteriori) 的文章,写的很好,非常值得一看,文章链接为 聊一聊机器学习的 MLE 和 MAP:最大似然估计和最大后验估计,本文几乎不加修改地转载了文章,侵删。

概述

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

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

两大学派的争论

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

在对事物建模时,用 \(\theta\) 表示模型的参数,解决问题的本质就是求 \(\theta\) 。那么频率学派和贝叶斯学派的区别在于:

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

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

\[\begin{align} P(\theta|X)=\frac{P(X|\theta) \times P(\theta)}{P(X)} \end{align}\]

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

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

  1. 随着数据量的增加,参数分布会越来越向数据靠拢,先验的影响力会越来越小
  2. 如果先验是 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 对 \(\theta\) 的估计方法可以如下推导:

\[\begin{align} \hat{\theta}_\text{MLE} &= \arg \max P(X; \theta) \\\ &= \arg \max P(x_1; \theta) P(x_2; \theta) \cdot\cdot\cdot\cdot P(x_n;\theta) \\\ & = \arg \max\log \prod_{i=1}^{n} P(x_i; \theta) \\\ &= \arg \max \sum_{i=1}^{n} \log P(x_i; \theta) \\\ &= \arg \min - \sum_{i=1}^{n} \log P(x_i; \theta) \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 对 \(\theta\) 的估计方法可以如下推导:

\[\begin{align} \hat{\theta}_\text{MAP} &= \arg \max P(\theta | X) \\\ &= \arg \min -\log P(\theta | X) \\\ & = \arg \min -\log P(X|\theta) - \log P(\theta) + \log P(X) \\\ &= \arg \min -\log P(X|\theta ) - \log P(\theta) \end{align}\]

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

\[\begin{align} P(\theta) = \text{constant} \times e^{-\frac{\theta^2}{2\sigma^2}} \end{align}\]

那么, \(-\log P(\theta) = \text{constant} + \frac{\theta^2}{2\sigma^2}\) 。至此,一件神奇的事情发生了:

在 MAP 中使用一个高斯分布的先验等价于在 MLE 中采用 L2 的 regularizaton!


参考:

  • Bayesian Methods
  • MLE, MAP, Bayes classification