最大似然估计(MLE)和最大后验估计(MAP)

最大似然估计(MLE)和最大后验估计(MAP)

频率学派 - Frequentist - Maximum Likelihood Estimation (MLE,最大似然估计)

贝叶斯学派 - Bayesian - Maximum A Posteriori (MAP,最大后验估计)

现代机器学习的终极问题都会转化为解目标函数的优化问题,MLE和MAP是生成这个函数的很基本的思想.

两大学派的争论

抽象

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

建模

在对事物建模时,用$\theta$表示模型的参数,解决问题的本质就是求$\theta$那么

(1) 频率学派:

存在唯一真值$\theta$

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

(2) 贝叶斯学派:

$\theta$是一个随机变量,符合一定的概率分布

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

$P(\theta|X)=\frac{P(X|\theta) \times P(\theta)}{P(X)} $

同样是抛硬币的例子,对一枚均匀硬币抛$5$次得到$5$次正面,如果先验认为大概率下这个硬币是均匀的 (例如最大值取在0.5处的$Beta$分布),那么 $P(head)$ ,即 $P(\theta|X)$ ,是一个$distribution$,最大值会介于0.5~1之间,而不是武断的 $\theta = 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$对 $\theta$ 的估计方法可以如下推导:

$$\hat{\theta}_{MLE}=arg maxP(X;\theta)$$

$$\hat{\theta}_{MLE}=arg max log^{P(X;\theta)}$$

$$\hat{\theta}_{MLE}=arg max log^{\prod^{n}_{i=1} P(x_i;\theta)}$$

$$\hat{\theta}_{MLE}=arg max \sum^{n}_{i=1}log^{ P(x_i;\theta)}$$

$$\hat{\theta}_{MLE}=arg min -\sum^{n}_{i=1}log^{ P(x_i;\theta)}$$

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

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

上文中关于频率学派求硬币概率的例子,其方法其实本质是由优化NLL得出。

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

$P(x_i; \theta) =\left\{ \begin{array}{ll} \theta & x_i = 1 \ 1 - \theta & x_i = 0 \ \end{array} \right. = \theta^{x_i} (1- \theta)^{1-x_i} $

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

$$\text{NLL} = -\sum_{i=1}^n \log P(x_i; \theta) = -\sum_{i=1}^n \log \theta^{x_i} (1- \theta)^{1-x_i}$$

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

$$\text{NLL}’ = -\sum_{i=1}^n\Big(\frac{x_i}{\theta} + (1-x_i)\frac{-1}{1-\theta}\Big) = 0 $$

$$\hat{\theta} = \frac{\sum^{n}_{i=1} x_i}{n} $$

也就是出现正面的次数除以总共的抛掷次数。

给定一些数据,求对应的高斯分布时,我们经常会算这些数据点的均值和方差然后带入到高斯分布的公式,其理论依据是优化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$的估计方法如下推导

$\hat{\theta}_{MAP}=arg maxP(\theta|X)$

$=arg min- P(\theta|X)$

$=arg min- log^{P(\theta|X)}$

由贝叶斯公式可知

$P(\theta|X)=\frac{P(X|\theta)×P(\theta)}{P(X)}$

带入得:

$=arg min- log^{P(X|\theta)} - log^{P(\theta)} + log^{P(X)}$

$P(X)$可以丢掉因为与$\theta$无关

$=arg min- log^{P(X|\theta)} - log^{P(\theta)}$

注意 $-\log P(X|\theta )$其实就是NLL,所以MLE和MAP在优化时的不同就是在于先验项 $- \log P(\theta) $好的,那现在我们来研究一下这个先验项,假定先验是一个高斯分布,即

$P(\theta) = \text{constant} \times e^{-\frac{\theta^2}{2\sigma^2}} $

那么, $-\log P(\theta) = \text{constant} + \frac{\theta^2}{2\sigma^2} $

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

参考

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