估计参数的方法:最大似然估计、贝叶斯推断

一、最大似然估计

假设有3个数据点,产生这3个数据点的过程可以通过高斯分布表达。这三个点分别是9、9.5、11。我们如何计算高斯分布的参数μ 、σ的最大似然估计?

我们想要计算的是观测到所有数据的全概率,即所有观测到的数据点的联合概率分布。为此我们需要计算一些条件概率,这可能会很困难。所以这里我们将做出我们的第一个假设。假设每个数据点的生成和其他点是独立的。这一假设让数学容易很多。如果事件(即生成数据的过程)是独立的,那么观测到所有数据的全概率是分别观测到每个数据点的概率的乘积(即边缘概率的乘积)。

观测到高斯分布生成的单个数据点x的(边缘)概率为:

P(x; μ, σ) 中的分号强调之后的符号代表概率分布的参数

在我们的例子中,观测到3个数据点的全(联合)概率为:

我们只需找出能最大化以上表达式的值的μ和σ的值。

我们可以通过微分找到函数的最大(最小)值。我们只需找到函数的导数,将导数设为零,重新整理等式,即可得到值。

对数似然

实际上,对上面的全概率表达式求导很麻烦。所以我们基本上总是通过取自然对数对其加以简化。由于自然对数是单调递增函数,所以这么做绝对没问题。单调递增函数意味着随着x轴的值增加,y轴的值也同样增加(见下图)。这很重要,因为这确保了当概率的对数达到最大值时,原概率函数同样达到最大值。因此我们可以操作简化了的对数似然,而不是原本的似然。

为什么要取log

乘法变成加法,从而减少了计算量;同时,如果概率中含有指数项,如高斯分布,能把指数项也化为求和形式,进一步减少计算量;另外,在对联合概率求导时,和的形式会比积的形式更方便。

但其实可能更重要的一点是,因为概率值都在[0,1]之间,因此,概率的连乘将会变成一个很小的值,可能会引起浮点数下溢,尤其是当数据集很大的时候,联合概率会趋向于0,非常不利于之后的计算。


取对数不影响单调性

因为相同的单调性,它确保了概率的最大对数值出现在与原始概率函数相同的点上。因此,可以用更简单的对数似然来代替原来的似然。

对原表达式取对数,我们得到:

据对数定律,上式可以简化为:

对以上表达式求导以找到最大值。在这个例子中,我们将寻找均值μ的MLE。为此,我们求函数关于μ的偏导数:

最后,我们将等式的左半部分设为0,据μ整理等式得到:

这样我们就得到了μ的最大似然估计。同理,我们可以求得σ的最大似然估计

为什么是最大似然,而不是最大概率?

这只是统计学家在卖弄学问(不过他们的理由很充分)。大部分人倾向于混用概率和似然,但是统计学家和概率论学者区分了两者。以下等式突显了两者之所以容易混淆的原因:

这两个表达式是相等的!所以这意味着什么?让我们先来定义P(data; μ, σ)。它的意思是“基于模型参数μ和σ观测到数据的概率”。值得注意的是,我们可以将其推广到任意数目的参数和任意分布。

另一方面,L(μ, σ; data)的意思是“我们已经观测到一组数据,参数μ和σ取特定值的似然”。

上面的等式意味着给定参数得到数据的概率等于给定数据得到参数的似然。然而,尽管两者相等,似然和概率根本上问的是不同的问题——一为数据,一为参数。这就是这一方法叫做最大似然而不是最大概率的原因。

二、贝叶斯推断

贝叶斯定理定义

贝叶斯定理如何允许我们纳入先验信念?

贝叶斯定理允许我们纳入先验信念,但是只看前文给出的等式,很难看出这是怎么办到的。所以让我们使用冰淇淋和天气的例子来说明。

A表示我们看到冰淇淋的事件,B表示天气事件。接着我们也许会问已知天气类型的前提下,销售冰淇淋的概率是多少?在数学上这写作P(A=冰淇淋销售 | B=天气类型),对应于贝叶斯定理等式的左侧。

等式右侧的P(A)被称为先验。在我们的例子中,这是P(A=冰淇淋销售),即不考虑天气类型的情况下,销售冰淇淋的(边缘)概率。P(A)被称为先验是因为我们可能已经知道冰淇淋销售的边缘概率。例如,我可能查看过数据,100个潜在顾客中,有30人在某处的某家店实际购买了冰淇淋。所以,在我知道任何关于天气的信息之前,P(A=冰淇淋销售) = 30/100 = 0.3。这样,贝叶斯定理让我们纳入了先验知识。

贝叶斯推断

首先,(在统计学上)推断是推理数据的种群分布或概率分布的性质的过程。上面说的最大似然其实就包含了这一过程。我们基于观察到的一组数据点决定均值的最大似然估计。

因此贝叶斯推断不过是使用贝叶斯定理推理数据的种群分布或概率分布的性质的过程。

将贝叶斯定理应用于分布

到目前为止,所有的例子中,贝叶斯定理的每一项的值都是单个数字。这意味着我们得到的答案也将是单个数字。然而,有时候单个数字可能不怎么合适。

在前文的冰淇淋的例子中,我们看到销售冰淇淋的先验概率是0.3。然而,如果0.3只是我的最佳猜测,我并不是非常确定,会怎么样?概率也可能是0.25或0.4。在这一情形下,用一个分布来表示我们的先验信念可能更加合适(见下图)。这一分布被称为先验分布

上图为表示任意一天冰淇淋销售的两个分布。蓝色曲线和金色曲线的峰值均位于0.3附近,如前所述,这是我们对冰淇淋销售的先验概率的最佳猜测。而f(x)在其他处的值并不为零,表明我们并不是完全确信0.3是冰淇淋销售的真实值。蓝色曲线显示它可能是0到0.5之间的任何值,而金色曲线显示它可能是0和1之间的任何值。相比蓝色曲线,金色曲线更为舒展,峰值更低,这意味着金色曲线表达的先验概率“不那么确定”。

基于类似的方法,我们可以用分布表示贝叶斯定理中的其他项。当我们处理模型的时候,大多数情况下我们都需要使用分布。

贝叶斯定理的模型形式

前文介绍贝叶斯定理的定义时,我使用A、B表示事件。但关于贝叶斯定理的模型形式的文献往往使用不同的符号。

我们通常使用Θ而不是A。Θ表示一组参数。所以如果我们尝试估计高斯分布的参数值,那么Θ表示均值μ和标准差σ(在数学上写作Θ = {μ, σ})。

我们通常使用data或者y = {y1, y2, ..., yn},而不是B。这代表数据,也就是我们的观测集合。我会在等式中显式地使用data,希望这能让等式看起来不那么晦涩。

因此,贝叶斯定理的模型形式:

P(Θ)为先验分布,表示我们关于参数的真值的信念,就像我们之前用分布表示我们关于冰淇淋销售的概率的信念。

等式左边的P(Θ|data)称为后验分布。它表示基于已经观测到的数据计算出等式右边的各项之后我们对参数的信念。

其实我们之间已经接触过P(data|Θ)。如果你读完了上面最大似然的内容,那么你会记得我们提到过L(data; μ, σ) 是(高斯分布的)似然分布。好,P(data|Θ) 正是这个,它是改头换面的似然分布。有时它写作ℒ(Θ; data),都是一回事。有时它被称为证据

因此,我们可以通过证据更新我们的先验信念来计算我们的参数的后验分布

这给了我们充足的信息来讨论使用贝叶斯推断来推断参数的一个例子。但是首先……

为什么我完全忽视了P(data)?

除了数据的边缘概率之外,P(data)并没有什么特别的名字。记住,我们关心的是参数值,而P(data)并没有提到参数。事实上,P(data)甚至不是一个分布。它只是一个数字。我们已经观测到了数据,因此我们计算出P(data)。一般而言,结果我们发现计算P(data)会非常困难

P(data)之所以重要,是因为它得出的数字是一个归一化常量。概率分布的一个必要条件是一个事件的所有可能性的概率之和为1(例如,投掷一枚6面骰得到1、2、3、4、5、6点的全概率等于1)。归一化常量通过确保分布之和(其实我应该说积分,因为通常我们碰到的是连续分布,不过目前这么说太过于卖弄学问了)等于1来确保所得的后验分布是真实概率分布。

在某些情况下,我们并不关心分布的这一性质。我们只关心分布的峰值何时出现,而不在乎分布是否归一化。在这一情况下,很多人把贝叶斯定理的模型形式写作

其中∝表示“成比例”。这显式地表明了真实后验分布不等于右边的式子,因为我们没有考虑归一化常量P(data)。

共轭分布

你会注意到,我们所有关于分布的例子中都使用了高斯分布。主要的一个原因是这大大简化了数学。但是在贝叶斯推断的例子中 ,我们得计算两个分布的乘积。我说过这很凌乱,所以我没有详细列出数学计算过程。但是即便我自己没有进行这些数学计算,我早就知道后验分布会是高斯分布。因为高斯分布具有一个特别的性质,使得高斯分布易于处理。高斯分布和自身的高斯似然函数是共轭的。这意味着,如果我将一个高斯先验分布乘以一个高斯似然函数,我将得到一个高斯后验函数。后验与先验来自同一分布家族(它们都是高斯分布)意味着它们是共轭分布。在这个例子中,先验分布是一个共轭先验

在很多推断的场景中,我们选择使所得分布共轭的似然和先验,因为这简化了数学。数据科学中的一个例子是隐含狄利克雷分布(LDA),这是一种在多个文档(语料库)中搜寻主题的无监督学习算法。

参考:

https://zhuanlan.zhihu.com/p/44520176

https://towardsdatascience.com/probability-concepts-explained-maximum-likelihood-estimation-c7b4342fdbb1

https://towardsdatascience.com/probability-concepts-explained-bayesian-inference-for-parameter-estimation-90e8930e5348

猜你喜欢

转载自blog.csdn.net/qq_33873431/article/details/103527405