高斯分布的最大似然估计

目录

1 原理

给定一个数据集X=(x1,,xN)T。假设{xn}是多变量高斯分布的一个独立的观察。我们可以通过最大似然估计来估计高斯分布的参数。对数似然函数是:

lnp(X|μ,Σ)=ND2ln(2π)N2ln|Σ|12Nn=1(xnμ)TΣ1(xnμ)

对上式化简,我们发现似然函数对数据集合的依赖体现在Nn=1xnNn=1xnxTn两个量上。这两个量叫做高斯分布的充分统计量(sufficient statistics)。不同的分布有不同的充分统计量,这个我们用到的时候在详谈,此处不展开。

在式 (1)中,对μ求导,有:

μlnp(X|μ,Σ)=Nn=1Nn=1Σ1(xnμ)

令上式为零,则我们得到了关于高斯分布均值的最大似然解:

μML=1NNn=1xn

显然,这个最大似然解是观测数据集合的均值。

对 (1)的Σ求导,有:

ΣML=1NNn=1(xnμML)(xnμML)T

式~(4)中出现了μML,这是联合优化μΣ的结果。另外注意到μMLΣML无关,所以我们可以先得到μML,然后求ΣML

基于μMLΣML,我们求高斯分布的期望和方差:

E[μML]=μE[ΣML]=N1NΣ

我们发现最大似然估计的均值等于真实的均值,最大似然估计的方差总是小于真实值,因此这个估计是有偏的(biased).我们可以定义一个不同的估计:

˜Σ=1N1Nn=1(xnμML)(xnμML)T

显然˜Σ的期望与Σ相等。

2 应用

以上讨论高斯分布参数的最大似然估计,这个过程为我们进行序贯估计(sequential estimation)提供了方便。序贯算法允许数据在线处理。所谓在线处理(on-line process)是指一次处理一个数据点然后丢点这个数据点。在线处理的优势是相对于离线处理(off-line)在线处理可以不用一次性保存并处理大量的数据。

考虑式 (3),对高斯分布均值的最大似然估计,如果我们把式(3)写成递推的形式,则有:

μ(N)ML=1NNn=1xn=1NxN+1NN1n=1xn=1NxN+N1Nμ(N1)ML=μ(N1)ML+1N(xNμ(N1)ML)

这个结果提供了一个递推的求解高斯分布均值的方法。接收到第N1个数据之后,我们对μ的估计μ(N1)ML。我们现在观察到了xN,那么我们基于xNμ(N1)ML得到一个更新的μ(N1)ML。仔细观察这个结果,我们发现相对于μ(N1)ML,更新的μ(N)ML在原来的基础上更新了一个很小的量1N(xNμ(N1)ML)

式 (8)和式(3)在本质上是相同的,提供了一种迭代计算均值的方法。但是在实际中我们却较少使用这种方法,我们更general的序贯学习方法。Robbins-Monro算法就是比较general的算法。考虑一对随机变量θz,其联合概率分布是p(z,θ).那么,给定θz的条件期望确定了f(θ)

f(θ)=E[z|θ]=zp(z|θ)dz

式 (12) 的结果可以用图1来表示。

20170616figure2dot10.png

Figure 1: Robbins-Monro算法

通过式~(12)定义的函数叫做回归函数(regression functions). 定义了式 (12)之后,我们的目标是找到θ使得f(θ)=0。对于zθ,如果我们有一个较大的数据集。我们可以直接获得回归函数,并估计它的零点。

假设我们观测到了z的一个样本,然后我们期望得到对应的θ的序贯估计。Robbins-Monro提供了一个过程。假设:

E[(zf)2|θ]<

另外,不失一般性,我们认为f(θ)>0,θ>θ, 且f(θ)<0,θ<θ, 就像图1所示的那样。Robbins=Monro过程定义了估计θ的一个递推式:

θ(N)=θ(N1)+aN1z(θ(N1))

其中z(θ(N))是当θ取值θ(N)z的一个观测值。系数{aN}代表一系列正数,满足:

limNaN=0N=1aN=N=1a2N<

Robbins和Monro证明了式 (14)给出序贯估计的确可以以概率1收敛到θ

现在让我们仔细考虑使用Robbins-Monro算法如何可以让一个广义的最大似然估计问题收敛。我们知道,一句定义最大似然估计解θML是对数似然函数的一个静态点,满足:

θ{1NNn=1lnp(xn|θ)}|θML=0

交换积分和求导顺序,令N,我们有:

limN1NNn=1θlnp(xn|θ)=E[θlnp(x|θ)]

因此我们看到找到最大似然解相当于找到回归函数的根。