那些年被教科书绕晕的概率论基础

整理一下概率论的基础知识,通俗易懂的大白话,让你真正理解这些基础定义。

概率(probability)和似然(likelihood)

概率(probability)和似然(likelihood),都是指可能性,都可以被称为概率,但在统计应用中有所区别。 概率是给定某一参数值,求某一结果的可能性的函数。

例如,抛一枚匀质硬币,抛10次,6次正面向上的可能性多大?

解读:“匀质硬币”,表明参数值是0.5,“抛10次,六次正面向上”这是一个结果,概率(probability)是求这一结果的可能性。

似然是给定某一结果,求某一参数值的可能性的函数。

例如,抛一枚硬币,抛10次,结果是6次正面向上,其是匀质的可能性多大?

解读:“抛10次,结果是6次正面向上”,这是一个给定的结果,问“匀质”的可能性,即求参数值“匀质”=0.5的可能性。而最大似然估计就是似然最大时对应的参数“匀质=?”估计。

先验概率和后验概率

教科书上的解释总是太绕了。其实举个例子大家就明白这两个东西了。

假设我们出门堵车的可能因素有两个(就是假设而已,别当真):车辆太多和交通事故。

堵车的概率就是先验概率 。

那么如果我们出门之前我们听到新闻说今天路上出了个交通事故,那么我们想算一下堵车的概率,这个就叫做条件概率 。也就是P(堵车|交通事故)。这是有因求果。

如果我们已经出了门,然后遇到了堵车,那么我们想算一下堵车时由交通事故引起的概率有多大,

那这个就叫做后验概率 (也是条件概率,但是通常习惯这么说) 。也就是P(交通事故|堵车)。这是有果求因。

下面的定义摘自百度百科:

先验概率是指根据以往经验和分析得到的概率,如全概率公式,它往往作为”由因求果”问题中的”因”出现.

后验概率是指依据得到”结果”信息所计算出的最有可能是那种事件发生,如贝叶斯公式中的,是”执果寻因”问题中的”因”.

那么这两个概念有什么用呢?

最大似然估计

我们来看一个例子。

有一天,有个病人到医院看病。他告诉医生说自己头痛,然后医生根据自己的经验判断出他是感冒了,然后给他开了些药回去吃。

有人肯定要问了,这个例子看起来跟我们要讲的最大似然估计有啥关系啊。

关系可大了,事实上医生在不知不觉中就用到了最大似然估计(虽然有点牵强,但大家就勉为其难地接受吧。

怎么说呢?

大家知道,头痛的原因有很多种啊,比如感冒,中风,脑溢血…(脑残>_<这个我可不知道会不会头痛,还有那些看到难题就头痛的病人也不在讨论范围啊!)。

那么医生凭什么说那个病人就是感冒呢?哦,医生说这是我从医多年的经验啊。

咱们从概率的角度来研究一下这个问题。

其实医生的大脑是这么工作的,

他计算了一下

P(感冒|头痛)(头痛由感冒引起的概率,下面类似)

P(中风|头痛)

P(脑溢血|头痛)

然后这个计算机大脑发现,P(感冒|头痛)是最大的,因此就认为呢,病人是感冒了。看到了吗?这个就叫最大似然估计(Maximum likelihood estimation,MLE)。

似然函数与最大似然估计

下面给出似然函数跟最大似然估计的定义。
我们假设f是一个概率密度函数,那么
$$x\mapsto f(x|θ)$$
是一个条件概率密度函数(θ 是固定的)

而反过来,
$$\theta \mapsto f(x\mid\theta)$$
叫做似然函数 (x是固定的)。
一般把似然函数写成
$$L(\theta \mid x)=f(x\mid\theta)$$
$\theta$θ是因变量。
而最大似然估计 就是求在θ的定义域中,当似然函数取得最大值时θ的大小。

意思就是呢,当后验概率最大时θ的大小。也就是说要求最有可能的原因。

由于对数函数不会改变大小关系,通常会将似然函数求一下对数,将乘法变加法,方便计算。

最大似然估计和EM算法的关系是什么

EM算法可以看成是特殊情况下计算极大似然的一种算法。现实的数据经常有一些比较奇怪的问题,比如缺失数据、含有隐变量等问题。当这些问题出现的时候,计算极大似然函数通常是比较困难的,而EM算法可以解决这个问题。EM算法已经有很多应用,比如最经典的Hidden Markov模型等。
如果我们关心的参数为θ,观察到的数据为y,隐藏变量为z,那么根据全概率公式:$$P(y\mid\theta)=\int P(y\mid z,\theta)dz$$理论上,只要最大化这个密度函数的对数,就可以得到极大似然估计。然而问题是,对z进行积分很多情况下是非常困难的,特别是z的维数可能与样本量一样大,这个时候如果计算数值积分是非常恐怖的一件事情。而EM算法可以解决这个问题。

根据贝叶斯法则,我们可以得到:
$$h(z\mid y,\theta)=\frac{P(y\mid z,\theta)f(z\mid \theta)}{P(y\mid \theta)}$$EM算法的精髓就是使用这个公式处理z的维数问题。直觉上,EM算法就是一个猜测的过程:

给定一个猜测θ’,那么可以根据这个猜测θ’和现实的数据计算隐藏变量取各个值的概率。有了z的概率之后,再根据这个概率计算更有可能的θ。准确的来说,EM算法就是如下的迭代过程:

简单来说:EM算法分E步和M步,在这个迭代的算法中,每经历一次M步,实际上就做了一次MLE的估计,而本身EM可以看作是因为存在了隐变量而导致MLE无法直接使用,故而想出来的一种比较聪明算法,但其本质依然是MLE。

GMM的EM算法实现

所谓混合高斯模型(GMM)就是指对样本的概率密度分布进行估计,而估计采用的模型(训练模型)是几个高斯模型的加权和(具体是几个要在模型训练前建立好)。每个高斯模型就代表了一个类(一个Cluster)。对样本中的数据分别在几个高斯模型上投影,就会分别得到在各个类上的概率。然后我们可以选取概率最大的类所为判决结果。

高斯混合模型的终极理解

GMM的定义

这里引用李航老师《统计学习方法》上的定义,如下图:

那么,为什么GMM的各个高斯分量的系数之和必须为1呢?

其实答案很简单,我们所谓的GMM的定义本质上是一个概率密度函数。而概率密度函数在其作用域内的积分之和必然为1。GMM整体的概率密度函数是由若干个高斯分量的概率密度函数线性叠加而成的,而每一个高斯分量的概率密度函数的积分必然也是1,所以,要想GMM整体的概率密度积分为1,就必须对每一个高斯分量赋予一个其值不大于1的权重,并且权重之和为1。

参考资料

  1. 概率与似然
  2. 概率(probability)和似然(likelihood)的共同点和区别
  3. 高斯混合模型–GMM(Gaussian Mixture Model)