本文来自我的个人博客 https://www.zhangshenghai.com/posts/1422/
极大似然估计是在知道结果的情况下,寻求使该结果出现可能性极大的条件,以此作为估计值。在维基百科中,极大似然估计的定义是这样的:
给定一个概率分布
,已知其概率密度函数(连续分布)或概率质量函数(离散分布)为
,以及一个分布参数
,我们可以从这个分布中抽出一个具有n个值的采样
,计算出其似然函数:
若是离散分布,
即是在参数为
时观测到这一采样的概率。若其是连续分布,
则为
联合分布的概率密度函数在观测值处的取值。一旦我们获得
,我们就能求得一个关于
的估计。最大似然估计会寻找关于
的最可能的值。从数学上说,我们可以在
的所有可能取值中寻找一个值使得似然函数取到最大值。这个使可能性最大的
值即称为
的极大似然估计。由定义,极大似然估计是样本的函数。
极大似然估计
问题描述
首先从一个例子入手,假设我们需要调查某个地区的人群身高分布,那么先假设这个地区人群身高服从正态分布。注意,极大似然估计的前提是要假设数据总体的分布,不知道数据分布是无法使用极大似然估计的。假设的正态分布的均值和方差未知,这个问题中极大似然估计的目的就是要估计这两个参数。
根据概率统计的思想,可以依据样本估算总体,假设我们随机抽到了1000个人,根据这1000个人的身高来估计均值和方差
。
将其翻译成数学语言:为了统计该地区的人群身高分布,我们独立地按照概率密度抽取了1000个样本组成样本集
,我们想通过样本集
来估计总体的未知参数
。这里概率密度
服从高斯分布
,其中的未知参数是
。
那么怎样估算呢?
估算参数
这里每个样本都是独立地从中抽取的,也就是说这1000个人之间是相互独立的。若抽到
的概率是
,抽到
的概率是
,那么同时抽到它们的概率就是
。同理,同时抽到这1000个人的概率就是他们各自概率的乘积,即为他们的联合概率,这个联合概率就等于这个问题的似然函数:
对 L 取对数,将其变成连加的,称为对数似然函数,如下式:
为什么要取对数?
- 取对数之后累积变为累和,求导更加方便
- 概率累积会出现数值非常小的情况,比如1e-30,由于计算机的精度是有限的,无法识别这一类数据,取对数之后,更易于计算机的识别(1e-30以10为底取对数后便得到-30)。
对似然函数求所有参数的偏导数,然后让这些偏导数为0,假设有n个参数,就可以得到n个方程组成的方程组,方程组的解就是似然函数的极值点了,在似然函数极大的情况下得到的参数值即为我们所求的值:
极大似然估计是建立在这样的思想上:已知某个参数能使这个样本出现的概率极大,我们当然不会再去选择其他小概率的样本,所以干脆就把这个参数作为估计的真实值。
极大似然估计的步骤
- 写出似然函数;
- 对似然函数取对数,并整理;
- 求导数,令导数为 0,得到似然方程;
- 解似然方程,得到的参数。
EM算法初步
和极大似然估计一样,EM算法的前提也是要假设数据总体的分布,不知道数据分布是无法使用EM算法的。
概率模型有时既含有观测变量,又含有隐变量。如果概率模型的变量都是观测变量,那么给定数据,可以直接用极大似然估计法,或贝叶斯估计法估计模型参数。但是,当模型含有隐变量时,就不能简单地使用这些估计方法。EM算法就是含有隐变量的概率模型参数的极大似然估计法,或极大后验概率估计法。
函数:完全数据的对数似然函数
关于在给定观测数据
和当前参数
下对未观测数据
的条件概率分布
的期望
含有隐变量的概率模型,目标是极大化观测变量
关于参数
的对数似然函数,即
EM算法的步骤
输入:观测随机变量数据,隐随机变量数据
,联合分布
,条件分布
;
输出:模型参数
初值
步:
步:
重复2. 3.,直到收敛。