高斯分布的最大似然估计
1 原理
给定一个数据集X=(x1,…,xN)T。假设{xn}是多变量高斯分布的一个独立的观察。我们可以通过最大似然估计来估计高斯分布的参数。对数似然函数是:
lnp(X|μ,Σ)=−ND2ln(2π)−N2ln|Σ|−12N∑n=1(xn−μ)TΣ−1(xn−μ)对上式化简,我们发现似然函数对数据集合的依赖体现在∑Nn=1xn和∑Nn=1xnxTn两个量上。这两个量叫做高斯分布的充分统计量(sufficient statistics)。不同的分布有不同的充分统计量,这个我们用到的时候在详谈,此处不展开。
在式 (1)中,对μ求导,有:
∂∂μlnp(X|μ,Σ)=N∑n=1N∑n=1Σ−1(xn−μ)令上式为零,则我们得到了关于高斯分布均值的最大似然解:
μML=1NN∑n=1xn显然,这个最大似然解是观测数据集合的均值。
对 (1)的Σ求导,有:
ΣML=1NN∑n=1(xn−μML)(xn−μML)T式~(4)中出现了μML,这是联合优化μ和Σ的结果。另外注意到μML与ΣML无关,所以我们可以先得到μML,然后求ΣML。
基于μML和ΣML,我们求高斯分布的期望和方差:
E[μML]=μE[ΣML]=N−1NΣ我们发现最大似然估计的均值等于真实的均值,最大似然估计的方差总是小于真实值,因此这个估计是有偏的(biased).我们可以定义一个不同的估计:
˜Σ=1N−1N∑n=1(xn−μML)(xn−μML)T显然˜Σ的期望与Σ相等。
2 应用
以上讨论高斯分布参数的最大似然估计,这个过程为我们进行序贯估计(sequential estimation)提供了方便。序贯算法允许数据在线处理。所谓在线处理(on-line process)是指一次处理一个数据点然后丢点这个数据点。在线处理的优势是相对于离线处理(off-line)在线处理可以不用一次性保存并处理大量的数据。
考虑式 (3),对高斯分布均值的最大似然估计,如果我们把式(3)写成递推的形式,则有:
μ(N)ML=1NN∑n=1xn=1NxN+1NN−1∑n=1xn=1NxN+N−1Nμ(N−1)ML=μ(N−1)ML+1N(xN−μ(N−1)ML)这个结果提供了一个递推的求解高斯分布均值的方法。接收到第N−1个数据之后,我们对μ的估计μ(N−1)ML。我们现在观察到了xN,那么我们基于xN和μ(N−1)ML得到一个更新的μ(N−1)ML。仔细观察这个结果,我们发现相对于μ(N−1)ML,更新的μ(N)ML在原来的基础上更新了一个很小的量1N(xN−μ(N−1)ML)。
式 (8)和式(3)在本质上是相同的,提供了一种迭代计算均值的方法。但是在实际中我们却较少使用这种方法,我们更general的序贯学习方法。Robbins-Monro算法就是比较general的算法。考虑一对随机变量θ和z,其联合概率分布是p(z,θ).那么,给定θ求z的条件期望确定了f(θ):
f(θ)=E[z|θ]=∫zp(z|θ)dz式 (12) 的结果可以用图1来表示。
Figure 1: Robbins-Monro算法
通过式~(12)定义的函数叫做回归函数(regression functions). 定义了式 (12)之后,我们的目标是找到θ∗使得f(θ∗)=0。对于z和θ,如果我们有一个较大的数据集。我们可以直接获得回归函数,并估计它的零点。
假设我们观测到了z的一个样本,然后我们期望得到对应的θ∗的序贯估计。Robbins-Monro提供了一个过程。假设:
E[(z−f)2|θ]<∞另外,不失一般性,我们认为f(θ)>0,θ>θ∗, 且f(θ)<0,θ<θ∗, 就像图1所示的那样。Robbins=Monro过程定义了估计θ∗的一个递推式:
θ(N)=θ(N−1)+aN−1z(θ(N−1))其中z(θ(N))是当θ取值θ(N)时z的一个观测值。系数{aN}代表一系列正数,满足:
limN→∞aN=0∞∑N=1aN=∞∞∑N=1a2N<∞Robbins和Monro证明了式 (14)给出序贯估计的确可以以概率1收敛到θ∗。
现在让我们仔细考虑使用Robbins-Monro算法如何可以让一个广义的最大似然估计问题收敛。我们知道,一句定义最大似然估计解θML是对数似然函数的一个静态点,满足:
∂∂θ{1NN∑n=1lnp(xn|θ)}|θML=0交换积分和求导顺序,令N→∞,我们有:
limN→∞1NN∑n=1∂∂θlnp(xn|θ)=E[∂∂θlnp(x|θ)]因此我们看到找到最大似然解相当于找到回归函数的根。