0%

MLE & MAP

自从贝叶斯理论诞生以后,频率学派和贝叶斯学派的争论一直没有停歇,平时的学习太注重公式计算,故在此谈谈自己对贝叶斯理论的一些认识。

频率学派认为概率是基于大量实验所得的定值(大数定理),比如抛掷一枚材质均匀的硬币10000次,出现正面的次数有4995次,反面的次数有5005次,大致认为出现正反面的概率都是50%。然而现实生活中很多事情是无法做大量实验的,比如某人得心脏病的概率是5%,显然我们无法通过多次实验来计算出这个概率值。回到硬币的例子,如果只允许你抛5次,5次的结果都是正面,那么出现正面的概率是100%了吗?显然这是存在弊端的。

再来看一个非常经典的医学上的例子:有一种很稀有的病,得病的人检测结果呈阳性的概率是0.9,没得病的人检测结果呈阴性的概率也是0.9,人们患这种病的概率是0.01。如果某人的检测结果呈阳性,那么他患这种病的概率是多少?

直观上看:患病的人检测呈阳性的概率是0.9,这个人被检测为阳性,那么有很大概率这个人是患病的。不妨试着算算:

假设用A表示检测结果为阳性,B表示患病,那么可以很轻松的计算出: \[ P(B|A)=\frac{P(A|B)P(B)}{P(A)}=\frac{P(A|B)P(B)}{P(A|B)P(B)+P(A|\bar B)P(\bar B)}=\frac{0.9*0.01}{0.9*0.01+0.1*0.99}=0.083 \\ P(\bar B|A)=1-P(B|A)=0.917 \] 可以看到:即使检测结果呈阳性,患病的概率仍然只有8.3%,和我们的直观认识并不相同。

上面的计算其实就用了贝叶斯公式:后验概率\(P(B|A)\)等于条件概率\(P(A|B)\)(似然函数)乘以先验概率\(P(B)\),再除以一个常数因子。我们在已知先验概率的前提下,通过新的观测值\(P(A|B)\)(检测结果是否阳性)来预测患病的概率。

关于常数因子\(P(A)\)可以这样理解:分子\(P(A,B)\)表示检测结果呈阳性并且患病的概率,那么还有一部分人\(P(A,\bar B)\)检测结果呈阳性但是没有患病,\(P(A,B)+P(A,\bar B)=P(A)\),我们要求的\(P(B|A)\)即检测呈阳性的人中患病的人所占的比例\(\frac{P(A,B)}{P(A)}\)

更加一般的贝叶斯公式:

如果参数\(\theta\)的分布是离散的: \[ \pi(\theta_i|x)=\cfrac{\pi(\theta_i)f(x|\theta_i)}{\sum_{i}\pi(\theta_i)f(x|\theta_i)} \] 如果参数\(\theta\)的分布是连续的: \[ \pi(\theta|x)=\cfrac{\pi(\theta)f(x|\theta)}{\int_{\Theta}\pi(\theta)f(x|\theta)d\theta} \] 后验概率密度表示在已知x的前提下关于参数\(\theta\)的一个概率密度函数,即\(\theta\)是一个分布,而不是一个固定的值,这是贝叶斯学派与传统学派最大的不同。

似然函数\(f(x|\theta)\)可以这么理解:每个事件的背后都有一个分布,这个分布里是含有参数的,并且传统学派认为这个参数\(\theta\)是固定的,我们做了大量的实验,用很多样本x就是为了求出这个参数的值,观测到的样本x是以参数\(\theta\)为前提的一个分布。为了估计\(\theta\),我们用到了矩估计极大似然估计,本质上都是一样的,我们在参数\(\theta\)的前提下,从总体X中采样n个样本,用样本的性质来大致替代总体的参数\(\theta\)。具体到极大似然:通过找到使似然函数\(\prod_{i=1}^{n}f(x_i|\theta)\)最大的参数当作\(\theta\),其实就是选择一个\(\theta\)使得样本出现的概率最大,本质上仍然是在拟合样本数据。

从上面的分析可以看出:我们的未知参数\(\theta\)是从样本中计算得到的,必然和总体中原本的参数值存在误差,并且只能求得一个固定的参数值。贝叶斯理论认为:参数\(\theta\)不应该是一个单独的值,更加合理的解释应该是参数\(\theta\)有很多取值,并且每个取值都有相应的概率,即参数是服从某种分布的。概率最大的那个参数值即最大后验估计,参数取值的中位数即后验中位数估计,参数取值的均值即后验期望估计。为什么仍然叫估计呢?因为我们的后验分布是从似然计算得到的,我们无法采样所有的总体中的样本,所以也就无法计算出参数\(\theta\)的精确分布。

最后来看看先验分布\(\pi(\theta)\),即在获得实验观测值之前对未知参数分布的一个主观认识,这也是贝叶斯学派一直被攻击的一点,客观的统计学中竟然引入了主观的因素!比如对于材质均匀的硬币,在抛掷之前,我们脑海中就会认为出现正反面的概率各是0.5。

但是很多时候先验分布是很难获得的,如果硬币材质不均匀,我们的先验又应当是什么分布呢?此时就引入了课程上讲的无信息先验,当我们对事件没有了解的时候,认为参数所有取值的概率都是相等的,在硬币实验中,我们认为\(\theta\)是服从(0,1)的均匀分布。接着我们来做实验,看看后验分布会怎么变化(图源:Cameron Davidson-Pilon, Probabilistic Programming and Bayesian Methods for Hackers, 2016):

img
img

从图中可以看出:起初是均匀分布,连续抛掷了2次正面,此时认为该硬币正面向上的概率为1的可能性是最大的,但注意:正面向上的概率取0.6,0.4的可能也不是没有,不过这种可能性更小罢了。如果我们用极大似然去估计,就会得到该硬币正面向上的概率是1,正面向上的概率取0.6,0.4的可能为0,这显然与现实不符!接着抛了一次反面,正面向上的概率分布又进行了修正,不断通过观测值修正我们的后验,最终得到一个稳定的后验分布。

均匀分布\(U(a,b)\)作为先验看起来很好用,但是他本质上还是有倾向性的,即认为在区间(a,b)内是有取值的,在区间外是没有取值的可能的,更加合理的无信息先验可以选取一个大方差的高斯分布。

选择高斯分布作为先验带来的一个问题是计算上的复杂性骤然提高,所以引入了共轭先验分布:即后验分布\(\pi(\theta|x)\)与先验分布\(\pi(\theta)\)是同一种类型的分布,就称先验分布\(\pi(\theta)\)\(f(x|\theta)\)的共轭先验分布。这样我们在计算后验分布时,就无需计算复杂的积分,只要调整先验分布的参数即可确定后验分布。可以证明:\(\beta\)分布是二项分布\(B(n,p)\)中参数\(p\)的共轭先验分布。即如果总体\(X|\theta\sim B(N,\theta)\),从中采样n个样本,样本分布即似然函数\(f(x|\theta)\)服从\(\beta\)分布,假设先验\(\theta\sim\beta(a,b)\),那么后验分布\(\theta|x\sim\beta(a+\sum x_i,b+nN-\sum x_i)\)

证明: 总体\(X|\theta\sim B(N,\theta)\),先验\(\theta\sim\beta(a,b)\)\(X=(X_1,...,X_n)^T\)是来自总体的n个样本,则样本分布为: \[ p(x|\theta)=L(\theta)=\prod_{i=1}^{n}\tbinom{N}{x_i}\theta^{x_i}(1-\theta)^{N-x_i}\propto\theta^{\sum_{i=1}^{n}x_i}(1-\theta)^{nN-\sum_{i=1}^{n}x_i} \] 可以看到:似然函数\(L(\theta)\)具有\(\beta\)分布的核,先验的核为\(\theta^{a-1}(1-\theta)^{b-1}\),所以后验为: \[ \pi(\theta|x)\propto\theta^{a-1+\sum_{i=1}^{n}x_i}(1-\theta)^{b-1+nN-\sum_{i=1}^{n}x_i},0<\theta<1 \] 显然后验分布的核与\(\beta\)分布的核是同种类型,即\(\theta|x\sim\beta(a+\sum x_i,b+nN-\sum x_i)\),所以\(\beta\)分布是二项分布\(B(n,p)\)中参数\(p\)的共轭先验分布。