zoukankan      html  css  js  c++  java
  • MLE & MAP

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

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

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

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

    假设用A表示检测结果为阳性,B表示患病,那么可以很轻松的计算出:

    [P(B|A)=cfrac{P(A|B)P(B)}{P(A)}=cfrac{P(A|B)P(B)}{P(A|B)P(B)+P(A|ar B)P(ar B)}=cfrac{0.9*0.01}{0.9*0.01+0.1*0.99}=0.083 \ P(ar 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,ar B))检测结果呈阳性但是没有患病,(P(A,B)+P(A,ar B)=P(A)),我们要求的(P(B|A))即检测呈阳性的人中患病的人所占的比例(cfrac{P(A,B)}{P(A)})

    更加一般的贝叶斯公式:

    如果参数( heta)的分布是离散的:

    [pi( heta_i|x)=cfrac{pi( heta_i)f(x| heta_i)}{sum_{i}pi( heta_i)f(x| heta_i)} ]

    如果参数( heta)的分布是连续的:

    [pi( heta|x)=cfrac{pi( heta)f(x| heta)}{int_{Theta}pi( heta)f(x| heta)d heta} ]

    后验概率密度表示在已知x的前提下关于参数( heta)的一个概率密度函数,即( heta)是一个分布,而不是一个固定的值,这是贝叶斯学派与传统学派最大的不同。

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

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

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

    但是很多时候先验分布是很难获得的,如果硬币材质不均匀,我们的先验又应当是什么分布呢?此时就引入了课程上讲的无信息先验,当我们对事件没有了解的时候,认为参数所有取值的概率都是相等的,在硬币实验中,我们认为( heta)是服从(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( heta|x))与先验分布(pi( heta))是同一种类型的分布,就称先验分布(pi( heta))(f(x| heta))的共轭先验分布。这样我们在计算后验分布时,就无需计算复杂的积分,只要调整先验分布的参数即可确定后验分布。可以证明:(eta)分布是二项分布(B(n,p))中参数(p)的共轭先验分布。即如果总体(X| hetasim B(N, heta)),从中采样n个样本,样本分布即似然函数(f(x| heta))服从(eta)分布,假设先验( hetasimeta(a,b)),那么后验分布( heta|xsimeta(a+sum x_i,b+nN-sum x_i))

    证明:
    总体(X| hetasim B(N, heta)),先验( hetasimeta(a,b))(X=(X_1,...,X_n)^T)是来自总体的n个样本,则样本分布为:

    [p(x| heta)=L( heta)=prod_{i=1}^{n} binom{N}{x_i} heta^{x_i}(1- heta)^{N-x_i}propto heta^{sum_{i=1}^{n}x_i}(1- heta)^{nN-sum_{i=1}^{n}x_i} ]

    可以看到:似然函数(L( heta))具有(eta)分布的核,先验的核为( heta^{a-1}(1- heta)^{b-1}),所以后验为:

    [pi( heta|x)propto heta^{a-1+sum_{i=1}^{n}x_i}(1- heta)^{b-1+nN-sum_{i=1}^{n}x_i},0< heta<1 ]

    显然后验分布的核与(eta)分布的核是同种类型,即( heta|xsimeta(a+sum x_i,b+nN-sum x_i)),所以(eta)分布是二项分布(B(n,p))中参数(p)的共轭先验分布。

  • 相关阅读:
    学习dubbo
    【Spring】SpringMVC配置文件
    Mac下git配置
    【Spring】入门HelloWorld
    【MySql】启动/停止
    Javaweb 编解码流程
    TensorFlow学习笔记1
    Nginx 代理配置
    【转】RPC介绍
    【dubbo】dubbo控制台搭建
  • 原文地址:https://www.cnblogs.com/EIMadrigal/p/14285925.html
Copyright © 2011-2022 走看看