数学 举个简单例子说明 MAP 和 MLE 的区别

waytohigh · 2018年05月12日 · 最后由 liprais 回复于 2018年05月13日 · 7770 次阅读

用一个最简单,又能充分体现二者区别的例子来说明,数学公式和图表都不会,所以解释效果可能不好😂 。而且我不保证我说得对😅 ,可能需要后续改动

首先他们都是针对一个未知量 X,求一个 X 可取的常数值,来最大化一个函数argmax(function () {})

如果我们手里有一个硬币,它是个 fair coin,还是一个 biased coin,heads(H)/tails(T) 是 50/50 还是 30/70,这是我们感兴趣的未知量,这个未知量可以取的确定值是一个概率分布,50/50,30/70 这都是概率分布

频度派的观点是这个未知量是一个 unknown constant,bayesian 的观点是这是个 random variable。

MLE 里的 L 是 likelihood,当条件概率 P(A|B) 中,B 取确定常数值,A 不确定,P(A|B) 称为概率;当 A 取常数值,B 不确定 P(A|B) 称为 likelihood

假设抛了 n 次硬币,HHH 全是 H,对 MLE 来说 Likelihood = P(HHH|X), 要找个 X = 常数值来最大化这个函数 P,显然 X = 100/0 能最大化它,频度派的做法就认定了 100/0 是我们未知的 constant

  1. 我们可不可以问 P(X|HHH)?可以的,但因为 X 是 unknown constant 所以只有一个 X = 常数值的 P = 1,其余全部为 0
  2. likelihood 还是一个条件概率的形式,已经发生的抛掷结果是在 X=常数值的前提下产生的,X: H=x/T=(1-x), 则 P(HHH|X) = x^3
  3. X 虽然是 P(HHH|X) 的自变量,但不是随机变量,只是说它的取值会改变 P(HHH|X) 的值

bayesian 的随机变量的观点是,这次你打开篮子里是个香蕉,过 5 分钟再打开可能是个苹果

bayesian 要最大化的函数是 P(X|HHH), 我们称 P(X), 也就是没有任何抛掷数据前的 X 取各个值的概率函数,为 prior, 我们要最大化的是 posteriori,也就是 MAP 里的 P 了。所以 bayes 是有一个先验假设的,会根据后续的去更新假设,posteriori 是更新后,prior 是更新前。

抛硬币这个例子里,怎么决定 prior?不知道,但这不妨碍我们理解 MLE 和 MAP 的区别。就假设 prior:P(X: 50/50) = 1/3, P(X: 70/30) = 1/3, P(X: 100/0) = 1/3

因为抛出了 HHH 所以更新后的 posteriori 里 P(X: 100/0) 一定是最大的,所以这里最大化 P(X|HHH) 还是 100/0

那区别在哪里?

  1. 如果你的 prior 是 P(X: 50/50) = 4/5, P(X: 70/30) = 1/10, P(X: 100/0) = 1/10,那么 HHH 的结果可能不足以修正你的后验分布使最大化 P(X|HHH) 的 X = 100/0
  2. 当你要预测下一次硬币抛掷结果时,由于 MLE 看到的是 HHH 他会预测每次都是 H;MAP 虽然修正了,但其他分布的可能不是 0,如果 posteriori 是 P(X: 50/50) = 1/10, P(X: 70/30) = 1/10, P(X: 100/0) = 4/5,MAP 预测下次结果是 P(heads) = 0.5 * 0.1 + 0.7 * 0.1 + 1.0 * 0.8 = 0.92
  3. 由 2 可以看出,MAP 的计算量更大,而且它需要 prior

这里用了最简单最容易分析的 X“我们感兴趣的未知量”, 我觉得对于解决问题来讲,如何选取这个未知量直接关系到问题的解决

比如你有个火星探测车,火星在刮沙尘暴,你的感知器传给你探测车的坐标读数(不准,有噪音),你知道探测车的位置直觉上是个 unknown constant,为了知道真实的位置,这里合适的解决办法是 MLE 吗?现实中解决这个问题的办法是基于 Bayes 和 MAP 的 Kalman Filter, 选取的 X 也不是 “探测车的精确位置”。

MAP => 最大后验概率 MLE => 最大似然估计 Kalman Filter => 卡尔曼滤波器

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册