最大释然估计和贝叶斯参数估计
Jiangxiaodong
1 引言
在之前的学习中我们已经知道如何根据先验概率和类条件概率密度来设计最有分类器。但在模式识别的实际应用中,通常得不到有关问题的概率结构的全部知识。我们解决的办法是利用这些训练样本来估计问题中所涉及的先验概率和条件密度函数,并把这些估计的结果当作实际的先验概率和条件密度函数,然后再设计分类器。参数估计问题是统计学中的经典问题,并且已经有了一些具体的解决方法。这里我们将主要讨论两种最常用和很有效的方法,也就是:最大似然估计和贝叶斯估计。虽然这两个方法得到的结果通常是很接近的,但这两个方法的本质却有很大的差别。
2 最大释然估计
最大似然估计方法具有许多优秀的性质。首先这一方法在训练样本增多时通常收敛得非常好,而且这方法通常比其他方法简单,所以更适合实际应用。
2.1
最大似然估计的基本原理
在最大似然估计(maximum likelihood
estimation)中,我们做以下基本假设:
1.
我们把要估计的参数记作\text{\ensuremath{\theta}}
,它是确定但未知的量(多个参数时是向量),这与把它看作随机量的方法是不同的。
2. 每类的样本集记作D
,i=1,2,\cdots,c
,其中的样本都是从密度为p(x|\omega_{i})
的总体中独立抽取出来的,即所谓满足独立同分布条件。
3. 类条件概率密度p(x|\omega_{i})
具有某种确定的函数形式,只是其中的参数\text{\ensuremath{\theta}}
未知。
4.
各类样本只包含本类的分布信息,也就是说,不同类别的参数是独立的,这样就可以分别对每一类单独处理。
在这些假设的前提下,我们就可以分别处理\text{c}
个独立地问题。即,在一类中独立地按照概率密度p(x|\theta)
抽取样本集D
,用D
来估计出未知参数\text{\ensuremath{\theta}}
。
假设样本集D
中有n
个样本:x_{1},x_{2},\cdots,x_{n}
。由于这些样本是独立抽取的,因此下式成立:
p(D|\theta)=\prod_{k=1}^{n}p(x_{k}|\theta)
因为现在样本集D
已知,所以可以把p(D|\theta)
看成是参数向量\text{\ensuremath{\theta}}
的函数,被称为样本集D
下的似然函数。根据定义,参数向量\text{\ensuremath{\theta}}
的最大似然估计,就是使p(D|\theta)
达到最大值的那个参数向量\hat{\theta}
。
我们也可以直观的理解:参数向量\text{\ensuremath{\theta}}
的最大似然估计就是最符合已有的观测样本集的那一个。
为了方便分析的原因,在通常情况下,总是使用似然函数的对数函数,而不直接使用似然函数本身。由于底数大于1的对数函数总是单调递增的,所以使似然函数的对数达到最大值的参数向量\hat{\theta}
,也是使得似然函数本身达到最大值。如果实际的待求参数的个数为p
,则参数向量\theta
可以写成如下的p
维向量的形式:\theta=(\theta_{1},\theta_{2},\cdots,\theta_{p})^{t}
。记\nabla_{\theta}
为如下的梯度算子:
\nabla_{\theta}\equiv\left[\begin{array}{c}
\frac{\partial}{\partial\theta_{1}}\\
\vdots\\
\frac{\partial}{\partial\theta_{p}}
\end{array}\right]
定义对数似然函数l(\theta)
为
l(\theta)\equiv\ln
p(D|\theta)
这样我们可以把求使对数似然函数最大的那个\text{\ensuremath{\theta}\ }
的过程写成规范的形式
\hat{\theta}=\arg
maxl(\theta)
那么\hat{\theta}
就是\text{\ensuremath{\theta}\ }
的最大似然估计量。其中,\arg max
是一种常用的表示方法,表示使后面的函数取得最大值的变量的取值。有时,为了便于分析,还可以定义对数似然函数
H(\theta)=\ln
l(\theta)=\ln\prod_{i=1}^{N}p(x_{i}|\theta)=\sum_{i=1}^{N}\ln
p(x_{i}|\theta\text{) }
易得,使得对数似然函数最大的\text{\ensuremath{\theta}\ }
值也使似然函数最大。
2.2 最大似然估计的求解
在似然函数满足连续、可微的条件下,如果\text{\ensuremath{\theta}\ }
是一维变量,即只有一个待估计参数,其最大似然函数估计量就是如下微分方程的解
\frac{dl(\theta)}{d\text{\ensuremath{\theta}}}=0
或者
\frac{dH(\theta)}{d\theta}=0
更一般地,当\text{\ensuremath{\theta}=\ensuremath{\left[\theta_{1},\cdots,\theta_{p}\right]}
}^{T}
是由多个未知参数组成的向量时,求解似然函数的最大值就需要对\theta
的每一维分别对求偏导,即用下面的梯度算子
\nabla_{\theta}=\left[\frac{\partial}{\partial\theta_{1}},\cdots,\frac{\partial}{\partial\theta_{p}}\right]^{T}
来对似然函数或者对数似然函数求梯度并令其等于零
\nabla_{\theta}l(\theta\text{)=0
}
或者
\nabla_{\theta}H(\theta)=\sum_{i=1}^{N}\nabla_{\theta}\ln
p(x_{i}|\theta)=0
得到p
个方程,方程组的解就是对数似然函数的极大值点。需要注意,在某些情况下,似然函数可能有多个极值,此时上述方程组可能有很多个解,其中使得似然函数最大的那个解才是最大似然估计量。
2.3
正态分布下的最大似然估计
2.3.1 高斯情况:\mu
未知
为了加深对最大似然估计方法的理解,我们这里讲深入讨论当训练样本服从多元正态分布是的情况。设这个多元正态分布的均值为\mu
,二协方差矩阵为\Sigma
。首先,我们分析当协方差矩阵\Sigma
已知,而均值\mu
未知的情况。在这样的假设下,我们考虑一个训练样本点x_{k}
,有下面的式子成立:
\ln
p\text{(x}_{k}|\mu)=-\frac{1}{2}\ln[(2\pi)^{d}|\Sigma|]-\frac{1}{2}(x_{k}-\mu)^{t}\Sigma^{-1}(x_{k}-\mu)
和
\nabla_{\mu}\ln
p(x_{k}|\mu)=\Sigma^{-1}(x_{k}-\mu)
结合式(9)(12),我们可以得到,对\text{\ensuremath{\mu}}
的最大似然估计值必须满足下式:
\sum_{k=1}^{n}\Sigma^{-1}(x_{k}-\hat{\mu})=0
两边乘以协方差矩阵\Sigma
,并且进行一些简单整理后,我们得到下述公式:
\hat{\mu}=\frac{1}{n}\sum_{k=1}^{n}x_{k}
这个公式说明:对均值的最大似然估计就是对全体样本取平均,也就是均值的最大似然估计等于样本均值。
2.3.2
高斯情况:\text{\ensuremath{\mu}}
和\text{\ensuremath{\Sigma}}
均未知
实际应用中,多元正态分布的更典型情况是,均值\text{\ensuremath{\mu}}
和协方差矩阵\Sigma
都未知。这样,参数向量\text{\ensuremath{\theta}}
就是由这两个成分组成。我们首先考虑单变量的情况,其中参数向量\text{\ensuremath{\theta}}
的组成成分是:\theta_{1}=\mu,\theta_{2}=\sigma^{2}
。这样,对于单个训练样本的对数似然函数为:
\ln
p(x_{k}|\theta)=-\frac{1}{2}\ln2\pi\theta_{2}-\frac{1}{2\theta_{2}}(x_{k}-\theta_{1})^{2}
对上式关于变量\theta
求导;
\nabla_{\theta}l=\nabla_{\theta}\ln
p(x_{k}|\theta)=\left[\begin{array}{c}
\frac{1}{\theta_{2}}(x_{k}-\theta_{1})\\
-\frac{1}{2\theta_{2}}+\frac{(x_{k}-\theta_{1})^{2}}{2\theta_{2}^{2}}
\end{array}\right]
运用式(9),我们得到对于全体样本的对数似然函数的极值条件
\sum_{k=1}^{n}\frac{1}{\hat{\theta}_{2}}(x_{k}-\hat{\theta}_{1})=0
和
-\sum_{k=1}^{n}\frac{1}{\hat{\theta}_{2}}+\sum_{k=1}^{n}\frac{(x_{k}-\hat{\theta}_{1})^{2}}{\hat{\theta}_{2}}=0
其中的\hat{\theta}_{1},
\hat{\theta}_{2}
分别是对于\theta_{1}
,\theta_{2}
的最大似然估计。
把\hat{\theta}_{1},
\hat{\theta}_{2}
用\text{\ensuremath{\hat{\mu}}}
,\text{\ensuremath{\hat{\sigma^{2}}}}
代替,并进行简单的整理,我们得到下述的对于均值和方差的最大似然估计结果
\hat{\mu}=\frac{1}{n}\sum_{k=1}^{n}x_{k}
和
\hat{\sigma}^{2}=\frac{1}{n}\sum_{k=1}^{n}(x_{k}-\hat{\mu})^{2}
3 贝叶斯估计
贝叶斯估计(BayesianEstimation)是概率密度估计的另一类主要的参数估计方法,其结果在很多情况下与最大似然法相同或几乎相同,但是两种方法对问题的处理视角是不同的,在应用上也各有其特点。一个根本的区别是,最大似然估计是把待估计的参数当作未知但固定的量,要做的时根据观测数据估计这个量的取值;而贝叶斯估计则把待估计的参数本身也看作是随机变量,要做的是根据观测数据对参数分布进行估计,除了观测数据外,还可以考虑参数的先验分布。
3.1 类条件密度
贝叶斯分类方法的核心是后验概率P(\omega_{i}|x)
的计算。贝叶斯公式告诉我们如何根据类条件密度p(x|\omega_{i})
和各类别的先验概率P(\omega_{i})
来计算这个后验概率。
如果已有样本集D
,那么贝叶斯公式变为
P(\omega_{i}|x,D)=\frac{p(x|\omega_{i},D)P(\omega_{i}|D)}{\sum_{j=1}^{c}P(x|\omega_{j},D)P(\omega_{j}|D)}
这一公式指出,我们能够根据训练样本提供的信息来确定类条件概率密度p(x|\omega_{i},D)
和先验概率P(\omega_{j}|D)
。
实际上我们通常可以认为先验概率可以事先的到,或者仅通过简答的计算就能够求得先验概率,因此,我们通常把P(\omega_{i}|D)
简写成P(\omega_{i})
。结合已知的先验概率,公式(21)就能够写成如下的形式:
P(\omega_{i}|x,D)=\frac{p(x|\omega_{i},D_{i})P(\omega_{i})}{\sum_{j=1}^{c}p(x|\omega_{j},D_{j})P(\omega_{i})}
3.2 参数的分布
虽然具体的概率密度函数p(x)
未知,但我们假设其参数形式是已知的。所以唯一未知的就是参数向量\text{\ensuremath{\theta}}
的值。为了明确的表示p(x)
的形式已知为而参数的值未知这一事实,我们强调条件概率密度函数p(x|\theta)
是完全确定性的。参数向量\text{\ensuremath{\theta}}
的全部知识就可以用已知的先验概率密度函数p(\theta)
来体现。对训练样本的观察,使得我们能够把这个先验概率密度转化后验概率密度函数p(\theta|D\text{)
}
,并且,我们希望这个后验概率密度p(\theta|D)
在真实值附近有非常显著的尖峰。
我们已经把一个学习概率密度的问题转化成为一个估计未知参量的问题。因此,我们基本的目标是计算后验概率密度函数p(x|D)
,并且使得它尽可能地逼近p(x)
,我们把联合概率密度p(x,\theta|D)
对\theta
进行积分,也就是
P(x|D)=\int
P(x,\theta|D)d\theta
其中积分是对整个定义域进行的。现在,我们总能够把p(x,\theta|D)
写成乘积p(x|\theta,D)p(\theta|D)
的形式。由于对测试样本\text{x}
和训练样本集D
的选取是独立进行的,因此p(x|\theta,D)
就等于p(x|\theta)
。也就是说,只要我们能够得到参数向量\theta
的值,\text{x}
的分布形式就完全已知了。这样,公式(23)就可以重写为
P(x|D)=\int
P(x|\theta)P(\theta|D)d\theta
上式就是贝叶斯估计中最核心的公式,它把类条件概率密度函数p(x|D)
和未知参量的后验概率密度p\text{(\ensuremath{\theta}|D)}
联系起来。我们可以这么直观地理解式(24):参数\text{\ensuremath{\theta}}
是随机变量,它有一定的分布,而要估计的概率密度p(x|D\text{)}
就是所有可能的参数取值下的样本概率密度的加权平均,而这个加权就是在观测样本下估计出的参数\text{\ensuremath{\theta}}
的后验概率。实际上p(\theta|D)
是由两项决定的,一项就是上一节定义的似然函数\text{p(D|\ensuremath{\theta})}
,它反映了在不同的参数取值下得到观测样本的可能性;另一项是参数取值的先验概率p(\theta)
,它反映了对参数分布的先验知识或者主观猜测。
3.2.1 两种极端情况
1.
一种是如果完全没有先验知识,即认为p(\theta)
是均匀分布,则p(\theta|D)
就完全取决于p(D|\theta)
。与最大似然估计不同的是,这里并没有直接把似然函数最大或者后验概率最大值拿来当作对样本概率密度参数的估计,而是根据把所有可能的参数值都考虑进来,用他们的似然函数作为加权来平均出一个对参数的估计或者对样本概率密度函数的估计。
2.
另一极端情况是,如果先验知识非常强,p\text{(\ensuremath{\theta})}
就是在某一特定取值\theta_{0}
上的一个脉冲函数(即p(\theta_{0})\delta(\theta_{0})
,则除非在\theta_{0}
的似然函数为0,否则最后的估计就是\theta_{0}
,样本不再起作用。
通常情况下,p(\theta)
不是均匀分布也不是脉冲函数,则参数的后验概率就受似然函数和先验概率的共同作用。一种常见的情况是,似然函数在其最大值\text{\ensuremath{\theta}=\ensuremath{\hat{\theta}}}
附近会有一个尖峰,那么如果先验概率在最大似然估计处不为零且变化比较平缓,则参数的后验概率p(\theta|D)
就会集中在\text{\ensuremath{\theta}=\ensuremath{\hat{\theta}}}
附近,此时得到的贝叶斯估计就与最大似然估计接近,估计出的样本密度基本上也就是在最大似然估计下的样本密度。
3.3 正态分布时地
贝叶斯估计
我们以最简单的一维正态分布模型为例来说明贝叶斯的应用。假设模型的均值\mu
是待估计的参数,方差为\sigma^{2}
为已知,我们可以把分布密度写为
p(x|\mu)=\frac{1}{\sqrt{2\pi}\sigma}\exp(-\frac{1}{2\sigma^{2}}(x-\mu)^{2})
假定均值\mu
的先验分布也是正态分布,其均值为\mu_{0}
、方差为\sigma_{0}^{2}
,即
p(\mu)=\frac{1}{\sqrt{2\pi}\sigma}\exp(-\frac{1}{2\sigma^{2}}(\mu-\mu_{0})^{2})
对均值\mu
进行估计
p(\mu|D)=\frac{p(D|\mu)p(\mu)}{\int_{\Theta}p(D|\mu)p(\mu)d\mu}
已经知道,这里的分母只是用来对估计出的后验概率进行归一化的常数项,可以暂时不考虑。现在计算式(27)后边的分子部分。
p(D|\mu)p(\mu)=p(\mu)\prod_{i=1}^{N}p(x_{i}|\mu)=\frac{1}{\sqrt{2\pi}\sigma}\exp(-\frac{1}{2}(\frac{\mu-\mu_{0}}{\sigma_{0}})^{2})\prod_{i=1}^{N}(\frac{1}{\sqrt{2\pi}\sigma}\exp(-\frac{1}{2}(\frac{x_{i}-\mu}{\sigma})^{2}))
把所有不依赖于\mu
的量都写入一个常数中,上式可以整理为
p(D|\mu)p(\mu)=\alpha\exp(-\frac{1}{2}(\frac{\mu-\mu_{N}}{\sigma_{N}})^{2})
可见p(\mu|D)
也是一个正态分布,可以得到
p(\mu|D)=\frac{1}{\sqrt{2\pi}\sigma_{N}}\exp(-\frac{1}{2}(\frac{\mu-\mu_{N}}{\sigma_{N}})^{2})
其中的参数满足
\frac{1}{\sigma_{N}^{2}}=\frac{1`}{\sigma_{0}^{2}}+\frac{N}{\sigma^{2}}
\mu_{N}=\sigma_{N}^{2}(\frac{\mu_{0}}{\sigma_{0}^{2}}+\frac{\sum_{i=1}^{N}x_{i}}{\sigma^{2}})
进一步整理后得
\mu_{N}=\frac{N\sigma_{0}^{2}}{N\sigma_{0}^{2}+\sigma^{2}}m_{N}+\frac{\sigma^{2}}{N\sigma_{0}^{2}+\sigma^{2}}\mu_{0}
\sigma_{N}^{2}=\frac{\sigma_{0}^{2}\sigma^{2}}{N\sigma_{0}^{2}+\sigma^{2}}
其中,m_{N}=\frac{1}{N}\sum_{i=1}^{N}x_{i}
是所有观测样本的算术平均。
所以贝叶斯估计告诉我们,待估计的样本密度函数的均值参数服从均值为\mu_{N}
、方差为\sigma_{N}^{2}
的正态分布。
3.4 贝叶斯学习
上述方方程都显示了先验知识和样本观测结果是如何被结合在一起,并且形成后验密度p(\mu|D)
的。总的说来,\mu_{N}
代表了在观察到N个样本后,我们对\mu
的真实值的最好的估计,而\sigma_{N}^{2}
反映了我们对这个估计的不确定程度。根据公式(33),将看到,\sigma_{N}^{2}
是N的单调递减函数,并且在n趋于无穷大时,\sigma_{N}^{2}
趋于\frac{\sigma^{2}}{N}`
,也就是说,每增加一个观测样本,我们对\mu
的估计的不确定程度就能减少。当n
增加时,p(\mu|D)
的波形变得越来越尖,并且在n
趋于无穷大时,逼近于狄拉克函数,这一现象通常就被称为贝叶斯学习过程。
图2
左右两图表示了分分别对一维和二维情况下的正态分布的均值进行贝叶斯学习的过程。每一个后验概率分布的估计曲线旁边都标记有估计过程中所使用的训练样本个数
4
最大似然估计和贝叶斯方法的比较
对于先验概率能保证问题有解的情况下,最大似然估计和贝叶斯估计在训练样本趋近于无穷时效果是一样的。然而,在实际的模式识别问题中,训练样本总是有限的,因此,以下是我们选择哪种方法的标准:
1.
计算复杂度:在这个标准下,最大似然法是较好的选择,因为运用最大似然法,将值涉及一些微分运算或梯度搜索技术以求得\hat{\theta}
,而如果采用贝叶斯估计方法,则可能要求计算非常复杂的多重积分。
2.
可理解性:在许多情况下,最大似然法要比贝叶斯估计法更容易理解和掌握,因为它得到的结果是基于设计者所提供的训练样本的一个最佳答案,而贝叶斯估计方法得到的结果则是许多可行解答的加权平均值。
3.
对初始先验知识的信任程度:贝叶斯估计方法比最大似然方法能够利用更多有用信息。如果这些信息可靠的话,那么我们有理由认为贝叶斯估计方法比最大似然估计方法能够得到更准确的结果。
4.1 分类误差的来源
1.
贝叶斯误差(或不可分性误差)
2. 估计误差
3. 模型误差
综上所述,在理论上,贝叶斯估计方法有很强的理论和算法基础。但在实际应用中,最大似然估计更加简单,而且,设计出的分类器的性能几乎与贝叶斯方法得到的结果相差无几。