说人话搞懂【极大似然估计】和【最大后验概率】的区别!

2022-05-11 16:49:32 浏览数 (3)

什么是先验/后验概率

我们先给出一些符号定义,令theta 表示模型参数,D 表示数据。

先验概率比较好理解,比如 p(D) 就表示数据的先验概率(prior probability)。

但是在之前我经常搞不明白 p(D|theta)p(theta|D) 哪个才是后验概率(posterior probability)。其实二者都可以看做是后验概率,只不过少了定语。具体来说 p(D|theta) 是数据 D 的后验概率,即已经告诉你模型参数 theta 了,要你求数据的概率,所以是后验概率。同理p(theta|D) 是告诉你数据后,让你求theta 的后验概率。所以,要根据语境去判断哪个才是后验概率。

似然概率

下面介绍一下贝叶斯公式这个老朋友了,或者说是熟悉的陌生人。

p(theta|D)=frac{p(D|theta)p(theta)}{p(D)} tag{1}

假设我们研究的对象是变量theta ,那么此时先验概率就是 p(theta) ,(theta 的) 后验概率是p(theta|D)

p(D|theta) 是什么呢?它就是本文的另一个主角:似然概率 (likelihood probability),顾名思义是给定参数theta ,求数据是D 的概率是多少。

一般来说 p(theta) 是不知道的或者说很难求解,但是我们可以知道后验概率和 (似然概率乘以先验概率)呈正相关关系,所以p(theta) 即使不知道也不影响对后验概率的求解。

极大似然估计 与 最大后验概率估计

极大似然估计 (Maximum Likelihood Estimate, MLE)和最大后验概率估计(Maximum A Posteriori (MAP) estimation)其实是两个不同学派的方法论。

MLE是频率学派模型参数估计的常用方法,它的目的是想最大化已经发生的事情的概率。我们在用神经网络训练分类器的时候其实就可以理解成是MLE。具体来说,假设数据D 由一组数据样本组成,即D={d_1,...,d_n} ,模型参数用theta 表示,我们假设每个样本预测彼此独立,所以MLE的求解方式如下:

begin{aligned} hat{theta}_{mathrm{MLE}} &=arg max P(D ; theta) \ &=arg max Pleft(d_{1} ; thetaright) Pleft(d_{2} ; thetaright) cdots Pleft(d_{n} ; thetaright) \ &=arg max log prod_{i=1}^{n} Pleft(d_{i} ; thetaright) \ &=arg max sum_{i=1}^{n} log Pleft(d_{i} ; thetaright) \ &=arg min -sum_{i=1}^{n} log Pleft(d_{i} ; thetaright) end{aligned} tag{2}

可以看到,上面其实就是我们常用的交叉熵损失函数。那么如何用MAP来优化模型参数呢?公式如下:

begin{aligned} hat{theta}_{mathrm{MAP}} &=arg max P(theta mid D) \ &=arg min -log P(theta mid D) \ &=arg min -log P(D mid theta)-log P(theta) log P(D) \ &=arg min -log P(D mid theta)-log P(theta) end{aligned} tag{3}

可以看到 log(MAP(theta))approx log({MAP(theta)}) log(theta) 。而p(theta) 其实就是常用的正则项,即对模型参数的约束。

0 人点赞