本序言是对整体思想进行的一个概括。若没有任何了解,可以先跳过,最后回来看看;若已有了解,可以作为指导思想。
极大似然估计与贝叶斯估计是统计中两种对模型的参数确定的方法,两种参数估计方法使用不同的思想。前者来自于频率派,认为参数是固定的,我们要做的事情就是根据已经掌握的数据来估计这个参数;而后者属于贝叶斯派,认为参数也是服从某种概率分布的,已有的数据只是在这种参数的分布下产生的。所以,直观理解上,极大似然估计就是假设一个参数 θθ,然后根据数据来求出这个θθ. 而贝叶斯估计的难点在于p(θ)p(θ) 需要人为设定,之后再考虑结合MAPMAP (maximum a posterior)方法来求一个具体的θθ.
所以极大似然估计与贝叶斯估计最大的不同就在于是否考虑了先验,而两者适用范围也变成了:极大似然估计适用于数据大量,估计的参数能够较好的反映实际情况;而贝叶斯估计则在数据量较少或者比较稀疏的情况下,考虑先验来提升准确率。
为了更好的讨论,本节会先给出我们要解决的问题,然后给出一个实际的案例。这节不会具体涉及到极大似然估计和贝叶斯估计的细节,但是会提出问题和实例,便于后续方法理解。
首先,我们有一堆数据D={x1,x2,...,xn}D={x1,x2,...,xn},当然这些数据肯定不是随便产生的,我们就假设这些数据是以含有未知参数θθ 某种概率形式(如Bernoulli分布即0-1分布)分布的。我们的任务就是通过已有的数据,来估计这个未知参数θθ。估计这个参数的好处就在于,我们可以对外来的数据进行预测。
假设一个抛硬币实验,我们之前不知道这些硬币是不是正反均匀的,也许硬币正反不等,假设正面向上设为1的概率为ρρ,反面向上设为0为(1−ρ)(1−ρ). 我们进行了3次实验,得到两次正面,一次反面,即序列为′110′′110′。这里,D=(1,1,0)D=(1,1,0),θ=ρθ=ρ。
这里给出一些符号表示。可看到不理解时过来查看。
符号 | 含义 |
---|---|
D | 已有的数据(data) |
θθ | 要估计的参数(parameter) |
p(θ)p(θ) | 先验概率(prior) |
p(θ|D)p(θ|D) | 后验概率(posterior) |
p(D)p(D) | 数据分布(evidence) |
p(D|θ)p(D|θ) | 似然函数(likelihood of θθ w.r.t. DD) |
p(x,θ|D)p(x,θ|D) | 已知数据条件下的x,θx,θ概率 |
这一节将会详细阐明极大似然估计和贝叶斯估计,要注意到两种方法在面对未知参数θθ 时采用的不同态度。
极大似然估计法认为参数是固有的,但是可能由于一些外界噪声的干扰,使数据看起来不是完全由参数决定的。没关系,数学家们觉得,虽然有误差存在,但只要让在这个数据给定的情况下,找到一个概率最大的参数就可以了。那问题其实就变成了一个条件概率最大的求解,即求使得p(θ|D)p(θ|D) 最大的参数θθ,形式化表达为求解
为了便于理解,我们以之前的抛硬币实验作为实例。
回到当时我们一开始抛硬币实验,D=(1,1,0)D=(1,1,0) , θ=ρθ=ρ 的话,我们可以得到
考虑到这节对先验概率(prior)这个概念用的次数比较多,我们首先先介绍先验与后验概率是什么,怎么得到;其次会介绍贝叶斯估计模型的推导过程;最后会举一个例子来加深理解。
先验概率(prior)与后验概率(posterior)简称为先验和后验。这两个概念其实是来自于贝叶斯定理,相信学过概率论的一定有所了解。在此试作简单介绍。
之前提到的先验概率到底是什么呢?,毫无疑问必须得与放在一起来介绍。一个先一个后,我们肯定是针对同一个事物才有先后之分,如果针对两个事物,先后不是没有意义了么?那这个共同的对象,就是我们的参数θθ。后验概率是指掌握了一定量的数据后我们的参数分布是怎么样的,表示为p(θ|D)p(θ|D);那先验就是在没有掌握数据后我们的参数怎么分布。
看到这里,你可能会问:如果连数据都没有,我怎么知道我的参数是怎么分布的?你提出这个问题,就说明你是一个赤裸裸的频率派学家,你需要通过数据来得到你的参数!而这并不是贝叶斯派的考虑,贝叶斯估计最重要的就是那个先验的获得。虽然你这次的一组数据,比如说扔三次硬币产生的序列是(110)这样分布的,但是其实我根据我历史的经验来看,一枚硬币正反面其实很有可能是按照均匀分布来的,只不过可能因为你抛得次数少了所以产生了不是均匀分布的效果。所以我要考虑我以往的经验在里面。
你可能又会问:那你这个均匀分布不就是完全猜来的嘛,你怎么知道我这次是不是一样的硬币呢?没错!就是“猜来的”。先验在很多时候完全是假设,然后去验证有的数据是否吻合先验猜想,所以这里的猜很重要。还要注意,先验一定是与数据无关的,你不能看到了数据再做这些猜想,一定是没有任何数据之前你就猜了一个参数的先验概率。
有个这部分知识,我们可以开始推导贝叶斯估计模型了。
还是继续上面的模型,注意公式(2)(2) 其实是一个很概括的模型,既没有对概率形式以及概率参数进行定义,也没有运用到参数固定与否的思想,所以公式(2)(2) 同样适用于贝叶斯模型,我们仍然想对该式进行处理得出我们的贝叶斯估计方法。照抄下来(2)(2) 式为
至此,我们就完成了对贝叶斯估计模型的推到过程。有人会问,怎么就完成了?还有那么长一段公式,我们怎么计算啊?其实仔细看看(7)(7)式,其实这些符号我们都是知道的,我们就通过下面的实例来详述。
式(7)(7)中的符号有先验,根据之前对先验的介绍,这是在没有数据之前我们就已经知道的函数了。知道是什么意思?不妨还是在那个抛硬币试验中,我们假设这个θ(ρ)θ(ρ)的先验概率是服从
但是,其实做到这一步,我们会发现虽然解决了问题,但是又会带来新的问题,因为在解决这一类贝叶斯估计的问题的时候,我们让参数以某种概率密度函数分布,就会导致在计算过程中不可避免的高复杂度,人们为了计算上的方便,就提出不再是把所有的后验概率p(θ|D)p(θ|D)都找出来,而是仍然采用类似于极大似然估计的思想,来极大后验概率(Maximum A Posterior),得到这种简单有效的叫做MAP(前面英文的首字母)的算法。下面我们再一步步介绍一下MAP。
虽然本节独自成为一节,但是其实是隶属于贝叶斯估计的,属于贝叶斯估计里面的一个trick,放弃一点的准确性,来极大提升算法性能。所以,这个部分不能算是模型,只能算是算法。
MAP(Maximum A Posterior)的理论依据是绝大部分情况下,参数值最有可能出现在概率最大点附近。为了说清楚MAP的来龙去脉,本节将首先介绍如何利用贝叶斯估计的参数进行预测,然后分析直接使用之前得到的后验概率有什么不好,最后介绍MAP算法做的工作。
前一节中,我们通过贝叶斯估计得到了后验概率p(θ|D)p(θ|D)。那么这个后验概率能用来做什么呢?当然,就比如我们一直在说的那个例子,得到了数据D=(110)D=(110),还想预测第四次得到的结果什么是什么怎么办?我们当然就需要计算p(1|D)p(1|D)和p(0|D)p(0|D)看看谁大谁小,哪个更有可能发生。这里,为了泛化,我们将问题再次形式化一下为
已知数据D=(x1,x2,...,xn)D=(x1,x2,...,xn),预测新的数据xx的值。
这个问题还有很多细节,比如先验概率,后验概率,数据分布等一些细节,因为前面已经介绍过了,这里为了突出重点,不再重复。在此需要关注的是,所谓预测新的数据的值,其实就是能够在已知数据DD的情况下,找到数据的数学期望2。即求
还是回到(12)(12)式,这里面的困难是参数是随机分布的,我们需要考虑到每一个可能的参数情况然后积分,这种数学上的简单形式,其实想要计算出来需要大量的运算。那我们不妨退而求其次,我找一个跟你差不多效果的后验概率,然后就只计算这个后验带入计算。那么什么样的后验概率和对所有可能的θθ积分情况差不多呢?想法就是,找一个θθ能够最大化后验概率,怎么才能最大化后验概率呢?
其实最大化后验概率还是老一套,最大化(7)(7)式,对(7)式观察发现,其实分母只是一个归一化的因子,并不是θθ的函数。真正有效的其实就是要最大化我们的分子,于是使用
全文对比分析了极大似然估计和贝叶斯估计,在进行参数估计的过程中,极大似然估计是想让似然函数极大化,而考虑了MAP算法的贝叶斯估计,其实是想让后验概率极大化。主要区别在于估计参数中,一个考虑了先验一个没有考虑先验,主要区别看(3)(3),(13)(13)式。