一文看懂 “极大似然估计” 与 “最大后验估计” —— 极大似然估计篇
详细介绍极大似然估计MLE和参数估计背景
- 参考:
- 唐宇迪《人工智能数学基础》第8章
- Richard O. Duda 《模式分类》第三章
- 白板机器学习 P2 - 频率派 vs 贝叶斯派
- 频率学派还是贝叶斯学派?聊一聊机器学习中的MLE和MAP
- 本文符号说明:
- Θ = { Θ 1 , Θ 2 , . . . , Θ k } \Theta=\{\Theta_1,\Theta_2,...,\Theta_k\} Θ={Θ1,Θ2,...,Θk}:待估参数随机向量,上加 ^ \hat{} ^ 表示估计值随机向量( Θ i \Theta_i Θi 可表示向量或单一变量)
- θ = { θ 1 , θ 2 , . . . , θ k } \theta=\{\theta_1,\theta_2,...,\theta_k\} θ={θ1,θ2,...,θk}:待估参数向量的真实值,上加 ^ \hat{} ^ 表示估计值( θ i \theta_i θi 可表示向量值或单一变量值)
- X = x X=x X=x:一次随机试验对应的随机变量 X X X 取值到 x x x,理解为某次样本采样得到 x x x
- w i w_i wi:代表某个样本标签为类别 w i w_i wi
- D \mathcal{D} D:训练数据集
- 本文历次修订后全长 2万8000余字,受到 CSDN 博文字数限制,故切分两篇发布,所以现在是两文看懂了… 本篇介绍参数估计背景和极大似然估计;下一篇介绍最大后验估计和两种方法对比
- 后文链接:一文看懂 “极大似然估计” 与 “最大后验估计” —— 最大后验估计篇
文章目录
1. 引入
1.1 参数估计
-
参数估计
:根据从总体中抽取的随机样本来估计总体分布中未知参数的过程。参数估计在基于统计学的机器学习中特别重要,因为学习的目标就是从假设空间中选出一个最优模型,而模型本质上就是一个从样本空间到标记空间的空间的映射,可以把它看作一个由 Θ \Theta Θ 参数化的条件概率分布。某种程度上说,机器学习的过程,就是参数估计的过程,具体而言分以下两种情况-
无标签情况(这时模型表示样本取值的分布,做参数估计就好比重复投一个骰子来估计其各个面出现的概率):关注以下问题
根据从分布 p ( x ∣ Θ ) p(x|\Theta) p(x∣Θ) 中 i.i.d 采样的数据集 D \mathcal{D} D 估计参数 Θ \Theta Θ 的参数值
-
有标签情况(这时模型表示某样本值下标签的条件分布,一般的机器学习任务都是这个形式):这里我们按照各个样本所属类别标签 w i w_i wi 将数据集 D \mathcal{D} D 进行划分为 { D i } \{\mathcal{D}_i\} {Di},并且假设每一个类别下的类条件概率 p ( x ∣ w i ) p(x|w_i) p(x∣wi) 由一个参数向量 Θ i \Theta_i Θi 参数化,且 Θ i \Theta_i Θi 对和其他类别 j ≠ i j\neq i j=i 的样本不起任何作用(例如每个类对应一个独立的多维高斯分布),假设标记空间中一共有 c c c 个类,则问题转化为 c c c 个相互独立的问题
根据从分布 p ( x ∣ w i , Θ i ) p(x|w_i,\Theta_i) p(x∣wi,Θi) 中 i.i.d 采样的数据集 D i \mathcal{D}_i Di 估计参数 Θ i \Theta_i Θi 的参数值
注意由于各个问题都是独立针对某一个类的,所以每一个问题内部可以忽略类别的存在,还原到 1 的情形从而简化符号,这时可以描述为以下 c c c 个相互独立的问题
根据从分布 p ( x ∣ Θ ) p(x|\Theta) p(x∣Θ) 中 i.i.d 采样的数据集 D \mathcal{D} D 估计参数 Θ \Theta Θ 的参数值
这里还有一点需要注意,我们的最终目标是不是通过 D \mathcal{D} D 估计出 Θ ^ \hat{\Theta} Θ^,而是利用估计的 Θ ^ \hat{\Theta} Θ^ 还原样本分布 p ( X ∣ Θ ^ ) p(X|\hat{\Theta}) p(X∣Θ^) 得到模型,参数估计只是求解最优模型的方法。如果我们把参数估计看作内部过程隐去,模型可以表示为 p ( X ∣ D ) p(X|\mathcal{D}) p(X∣D)
- 对于无标签情况,模型 p ( X ∣ D ) p(X|\mathcal{D}) p(X∣D) 给出某次掷骰子结果 x x x 发生的概率
- 对于有标签情况,模型 p ( X ∣ D ) p(X|\mathcal{D}) p(X∣D)(这里是 p ( x ∣ w i , D i ) p(x|w_i,\mathcal{D}_i) p(x∣wi,Di) 的简写) 给出属于类别 w i w_i wi 的情况下出现某个样本 x x x 的概率,对每个类都算一下再取最大值就能实现分类任务
-
-
模型参数化
:为了估计模型参数,我们必须了解模型抽取样本的概率形式,即 p ( X ∣ Θ ) p(X|\Theta) p(X∣Θ) 的数学形式(否则就是一个黑箱,无从分析)。模型参数化是依靠先验信息简化模型形式,减少待估参数的一种重要方法- 在最简单的情况下,模型是一个表格形式,对于输入空间中的任意样本 x x x 都有一个对应的参数 θ \theta θ 代表采样到它的概率。假设样本有 p 个维度,每个维度 q 个离散取值,则每一个类别下估计 p ( x ∣ Θ ) p(x|\Theta) p(x∣Θ) 的参数数量为 p q p^q pq;当任意维度是连续取值时,参数数量变为无穷,显然这样做是不合理的
- 如果我们事先知道参数的个数,并且先验知识允许我们把条件概率密度进行
参数化
,那么问题的难度就可以显著降低。例如我们可以假设正确的 p ( x ∣ w i , Θ i ) p(x|w_i,\Theta_i) p(x∣wi,Θi) 是一个多元正态分布,这样我们只需要估计其均值 μ i \mu_i μi 和协方差矩阵 ∑ i \sum_i ∑i 即可,这样就大大减少了待估参数量。机器学习中常见的神经网络就是一种典型的参数化模型
-
本文讨论参数估计的两种经典方法:极大似然估计(MLE)和最大后验估计(MAP),他们分别体现了概率论中频率派和贝叶斯派的思想
1.2 频率派 vs 贝叶斯派
- 抽象一点说,频率学派和贝叶斯学派代表了对世界的两种认知:
- 频率学派认为世界是确定的,他们认为待估参数是参数空间中某个确定的取值,只是其取值未知,数据都是在这个确定的参数值下产生的,最佳估计就是使得训练样本出现概率最大的值,所以他们的方法论是从 “哪个值最有可能是真实值” 这个角度出发的,于是就有了最大似然(maximum likelihood)以及置信区间(confidence interval)这样的东西。注意一下,频率学派的人们认为参数本身是一个定值,不是随机变量,但置信区间是随着样本数量而改变的,是一个随机变量。频率派关心的就是有多大把握去圈出那个唯一的真实参数
- 贝叶斯学派认为世界是不确定的(或不能确定的),他们认为参数空间里的每个值都有可能是真实模型使用的值,区别只是概率不同而已。于是他们引入先验分布(prior distribution)和后验分布(posterior distribution)这样的概念来设法找出参数空间上的每个值的概率。对样本进行观测的过程,就是把先验概率密度转化成后验概率密度的过程,每得到一个样本,都使得后验概率密度函数变得更加尖锐,使其在待估参数的真实值附近形成最大的尖峰
- 具体应用上
- 频率学派的目标是求解使得数据产生的那个唯一且确定的模型参数 Θ \Theta Θ,因此这一派产生的方法往往转换为优化问题,其结构一般是:确定模型 —— 设计损失函数 —— 优化损失。这个结构很眼熟吧,目前大部分基于统计的机器学习方法都是属于频率派的
- 贝叶斯学派中,由于模型参数 Θ \Theta Θ 是一个分布,在使用贝叶斯派的模型时(比如做贝叶斯预测时)需要对 θ \theta θ 求积分,因此这一派方法最终往往转换为求积分的问题。 Θ \Theta Θ 的积分需要在整个参数空间中求,难以得到解析解,通常使用蒙特卡洛采样的方式求其数值解。由贝叶斯学派衍生的机器学习方法有概率图模型、mcmc方法等
- 目前教科书上大部分讲的都是频率派的内容,比如参数点估计、假设检验等,这里面有一些历史原因,下面引用一段 知乎用户Xiangyu Wang的回答
如果从概率的角度看,贝叶斯学派的想法其实更为自然,这也是为什么贝叶斯学派的产生远早于频率学派。但是贝叶斯方法本身有很多问题,比如当先验选的不好或者模型不好的时候你后验分布的具体形式可能都写不出来,跟别说做统计推断了。在当年电子计算机还没发展出来的时候,对这些情况做分析几乎是不可能的,这也就大大限制了贝叶斯方法的发展。而频率学派主要使用最优化的方法,在很多时候处理起来要方便很多。所以在频率学派产生后就快速地占领了整个统计领域。直到上世纪90年代依靠电子计算机的迅速发展,以及抽样算法的进步(Metropolis-hastings, Gibbs sampling)使得对于任何模型任何先验分布都可以有效地求出后验分布,贝叶斯学派才重新回到人们的视线当中。就现在而言,贝叶斯学派日益受到重视当然是有诸多原因的,所以这并不意味这频率学派就不好或者不对。两个学派除了在参数空间的认知上有区别以外,方法论上都是互相借鉴也可以相互转化的。当代学术领域批评的最多的仅仅是频率学派里的Hypothesis testing的问题,尤其是对于p-value的误用造成了很多问题,不过这只是Hypothesis testing这种研究方法本身的问题。对应于Hypothesis testing,贝叶斯学派有自己的一套方法称为 Bayes factor。虽然Bayes factor本身比p-value要合理很多(个人见解),但是我并不觉得单靠Bayes factor的方法就可以有效解决当下p-value滥用导致的问题,因为Bayes factor同样可以导致Multiple comparisons problem。
- 总而言之,极大似然估计和最大后验估计,都是总体的(某个指标的)分布类型已知前提下的一种参数估计方法。在对事物建模时,用
Θ
=
{
θ
1
,
θ
2
,
.
.
.
}
\Theta = \{\theta_1,\theta_2,...\}
Θ={θ1,θ2,...} 表示模型的参数,这两种方法的目标就是对分布的未知参数
Θ
\Theta
Θ 进行估计,以得到确定的分布。区别在于极大似然估计仅根据观测到的结果(观测值/样例)进行估计,而最大后验估计进一步考虑了参数
θ
\theta
θ 的先验分布
p
(
θ
)
p(\theta)
p(θ)。总的来说
- 频率派比较简单粗暴,上来就是大量重复实验、中心极限定理什么的,在已知模型且允许大量重复实验时可以得到比较精确的概率评估,但在难以大量实验或缺乏数据时可能不适用或产生严重偏差
极大似然估计是代表频率学派思想的参数估计方法!
- 贝叶斯派更符合人对概率的理解,通过引入先验概率,可以在少量数据的情况下给出比较准确的估计,当然这对先验概率的准确性有要求。随着新数据的获取,贝叶斯派会不断修正先验概率,这间接地调整了
θ
\theta
θ 在已知事件下的的条件概率(后验概率),最终在大样本情况下取得和频率派一样的结果
最大后验估计是代表贝叶斯学派思想的参数估计方法!
- 频率派比较简单粗暴,上来就是大量重复实验、中心极限定理什么的,在已知模型且允许大量重复实验时可以得到比较精确的概率评估,但在难以大量实验或缺乏数据时可能不适用或产生严重偏差
2. 先验概率、后验概率、似然函数
- 假设某个随机变量
X
X
X 的取值
x
x
x 受到参数
Θ
\Theta
Θ 取值
θ
\theta
θ 的影响,例如抛硬币的结果受到硬币均匀性参数的影响,我们希望通过试验找出硬币均匀性参数。这里用 “有多大可能性投出正面” 表示均匀性,即
θ
=
p
(
X
=
正
面
)
\theta = p(X=正面)
θ=p(X=正面)
先验概率
p ( Θ ) p(\Theta) p(Θ):所谓 “先验”,顾名思义就是指试验之前,不依靠观测数据的未知参数概率分布。在没有做任何试验时,人们可以利用经验或者统计结果给出先验概率,比如我们可能会猜测硬币是均匀理想的,所以先验概率是 p ( Θ = 0.5 ) = 1 p(\Theta= 0.5) = 1 p(Θ=0.5)=1;也可能我们认为硬币有一定概率不均匀,先验概率是 p ( Θ = 0.5 ) = 0.9 , p ( Θ = 0.6 ) = 0.1 p(\Theta= 0.5) = 0.9, p(\Theta= 0.6) = 0.1 p(Θ=0.5)=0.9,p(Θ=0.6)=0.1。我们通常说的概率默认指先验概率似然函数
L ( Θ ∣ X ) L(\Theta|X) L(Θ∣X):代表试验或事件 X = x X=x X=x 已经发生之后,在 Θ \Theta Θ 的各个取值下得到这个结果的概率。这是一个关于参数 Θ \Theta Θ 的函数,其在数值上等于关于 X X X 的条件概率分布 p ( X ∣ Θ ) p(X|\Theta) p(X∣Θ)。假设我们抛硬币10次,有7次正面朝上,则这个试验结果的似然函数为 L ( Θ ∣ X = x ) = p ( X ∣ Θ ) = Θ 7 ( 1 − Θ ) 3 L(\Theta|X=x) =p(X|\Theta)= \Theta^7(1-\Theta)^3 L(Θ∣X=x)=p(X∣Θ)=Θ7(1−Θ)3,图像如下
因此我们有 arg max θ L ( Θ = θ ∣ X = x ) = 0.7 \argmax_\theta L(\Theta=\theta|X=x) = 0.7 θargmaxL(Θ=θ∣X=x)=0.7,这个其实就是极大似然估计
后验概率
p ( Θ ∣ X ) p(\Theta|X) p(Θ∣X):所谓 “后验”,顾名思义就是指试验或事件 X = x X=x X=x 已经发生之后,在得到这个结果的前提下的未知参数的条件概率分布。我们可以使用贝叶斯公式在上述三者间建立联系
p ( Θ ∣ X ) = p ( Θ , X ) p ( X ) = p ( Θ ) p ( X ∣ Θ ) p ( X ) p(\Theta|X) = \frac{p(\Theta,X)}{p(X)} = \frac{p(\Theta)p(X|\Theta)}{p(X)} p(Θ∣X)=p(X)p(Θ,X)=p(X)p(Θ)p(X∣Θ) 所谓最大后验估计
,就是要找到 arg max θ p ( Θ = θ ∣ X = x ) \argmax_\theta p(\Theta=\theta|X=x) θargmaxp(Θ=θ∣X=x)
3. 极大似然估计(MLE)
- 考虑这样一种情境:一个菜鸟和一个高手运动员一起打靶,现在观察到靶纸上一个十环的弹孔,最可能是谁打出的呢?显然我们会认为是高手打出的,因为他更有可能打出十环。在观察到某一现象探求其发生原因时,选择可能性最大的(概率最大的)原因,这就是最大似然估计的思想。
- 极大似然估计的示意图如下
3.1 似然函数
-
似然函数和最大似然估计值
- 现有总体 X X X 的一个样本 X 1 , X 2 , . . . , X n X_1,X_2,...,X_n X1,X2,...,Xn,观测值为 x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1,x2,...,xn,利用这一观测对未知参数 Θ ∈ I \Theta\in I Θ∈I 进行估计,使得选定的 Θ ^ \hat{\Theta} Θ^ 最有利于 x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1,x2,...,xn 的出现
似然函数
L ( Θ ∣ x ) L(\Theta|x) L(Θ∣x): X 1 , X 2 , . . . , X n X_1,X_2,...,X_n X1,X2,...,Xn 取值为 x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1,x2,...,xn 的概率
L ( Θ ∣ X ) = L ( θ 1 , θ 2 , . . . , θ k ∣ x 1 , x 2 , . . . , x n ) = { ∏ i = 1 n p ( x i ∣ θ 1 , θ 2 , . . . , θ k ) X 是 离 散 型 随 机 变 量 ∏ i = 1 n f ( x i ∣ θ 1 , θ 2 , . . . , θ k ) X 是 连 续 型 随 机 变 量 L(\Theta|X) = L(\theta_1,\theta_2,...,\theta_k|x_1,x_2,...,x_n)= \left\{ \begin{aligned} &\prod\limits_{i=1}^np(x_i|\theta_1,\theta_2,...,\theta_k) &X是离散型随机变量\\ &\prod\limits_{i=1}^nf(x_i|\theta_1,\theta_2,...,\theta_k) &X是连续型随机变量\\ \end{aligned} \right. L(Θ∣X)=L(θ1,θ2,...,θk∣x1,x2,...,xn)=⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧i=1∏np(xi∣θ1,θ2,...,θk)i=1∏nf(xi∣θ1,θ2,...,θk)X是离散型随机变量X是连续型随机变量- 使得似然函数
L
(
Θ
^
∣
X
)
L(\hat{\Theta}|X)
L(Θ^∣X) 最大的
θ
^
=
θ
^
(
x
1
,
x
2
,
.
.
.
,
x
n
)
∈
I
\hat{\theta} =\hat{\theta}(x_1,x_2,...,x_n)\in I
θ^=θ^(x1,x2,...,xn)∈I,使称为参数
θ
\theta
θ 的
最大似然估计值
,而相应的统计量 Θ ^ ( X 1 , X 2 , . . . , X n ) \hat{\Theta}(X_1,X_2,...,X_n) Θ^(X1,X2,...,Xn) 称为参数 θ \theta θ 的最大似然统计量
。我们的目标就是找出最大似然估计值 θ ^ \hat{\theta} θ^,即
θ ^ = arg max θ L ( Θ = θ ∣ X = x ) = arg max θ ∏ i = 1 n p ( x i ∣ θ ) = arg max θ ∑ i = 1 n l o g p ( x i ∣ θ ) = arg min θ − ∑ i = 1 n l o g p ( x i ∣ θ ) \begin{aligned} \hat{\theta} &= \argmax\limits_{\theta} L(\Theta=\theta|X=x) \\ &=\argmax\limits_{\theta}\prod\limits_{i=1}^np(x_i|\theta) \\ &=\argmax\limits_{\theta}\sum_{i=1}^nlog p(x_i|\theta) \\ &=\argmin\limits_{\theta} - \sum_{i=1}^nlog p(x_i|\theta) \end{aligned} θ^=θargmaxL(Θ=θ∣X=x)=θargmaxi=1∏np(xi∣θ)=θargmaxi=1∑nlogp(xi∣θ)=θargmin−i=1∑nlogp(xi∣θ)
-
注意:
- 似然函数 L ( Θ ∣ X ) L(\Theta|X) L(Θ∣X) 代表了参数 Θ \Theta Θ 和样本 X X X 的关联程度,其值最大时,代表此 Θ = θ \Theta =\theta Θ=θ 使得样本观测值 X = x X=x X=x 出现的概率最大,是 Θ \Theta Θ 的最佳估计值
- 我们的目标是最大化
L
(
Θ
∣
X
)
L(\Theta|X)
L(Θ∣X),为了简化计算,可以向上面那样两边取对数,把连乘转换为连加。这样处理后得到的函数称为
对数似然函数
- 上面推导的最后一行所优化的函数被称为
负对数似然 Negative Log Likelihood/NLL
,被很多ML方法使用,比如逻辑斯蒂回归中的参数估计就是执行的这个优化,另外这个和交叉熵损失关系密切 - 似然函数 L L L 和概率分布函数 p p p、概率密度函数 f f f 是完全不同的两个数学对象:前者是关于 Θ \Theta Θ 的函数,后者是关于 X X X 的函数。所以这里的等号理解为函数值形式的相等,而不是两个函数本身是同一函数
3.2 最大似然估计的步骤
- 写出样本的似然函数 L ( Θ ∣ X ) L(\Theta|X) L(Θ∣X)
- 如果
p
(
x
i
∣
θ
1
,
θ
2
,
.
.
.
,
θ
k
)
p(x_i|\theta_1,\theta_2,...,\theta_k)
p(xi∣θ1,θ2,...,θk) 或
f
(
x
i
∣
θ
1
,
θ
2
,
.
.
.
,
θ
k
)
f(x_i|\theta_1,\theta_2,...,\theta_k)
f(xi∣θ1,θ2,...,θk) 关于
θ
i
(
i
=
1
,
2
,
.
.
.
,
k
)
\theta_i(i=1,2,...,k)
θi(i=1,2,...,k) 可微。则令
∂ L ( Θ ∣ X ) ∂ θ i = 0 或 ∂ l n L ( Θ ∣ X ) ∂ θ i = 0 \frac{\partial L(\Theta|X)}{\partial\theta_i}=0 \space或\space \frac{\partial lnL(\Theta|X)}{\partial\theta_i}=0 ∂θi∂L(Θ∣X)=0 或 ∂θi∂lnL(Θ∣X)=0 由于 L ( θ ) L(\theta) L(θ) 是连乘形式,又 l n x lnx lnx 是 x x x 的单调增函数,因此 L ( θ ) L(\theta) L(θ) 和 l n L ( θ ) lnL(\theta) lnL(θ) 在同一 θ \theta θ 取极值,所以通常使用解对数似然方程组 ∂ l n L ( θ ) ∂ θ i = 0 \frac{\partial lnL(\theta)}{\partial\theta_i} = 0 ∂θi∂lnL(θ)=0 的方法,求得 θ i \theta_i θi 的最大似然估计量 Θ ^ = Θ ^ ( X 1 , X 2 , . . . , X n ) ( i = 1 , 2 , . . . , k ) \hat{\Theta} = \hat{\Theta}(X_1,X_2,...,X_n)(i=1,2,...,k) Θ^=Θ^(X1,X2,...,Xn)(i=1,2,...,k) - 若 p ( x i ∣ θ 1 , θ 2 , . . . , θ k ) p(x_i|\theta_1,\theta_2,...,\theta_k) p(xi∣θ1,θ2,...,θk) 或 f ( x i ∣ θ 1 , θ 2 , . . . , θ k ) f(x_i|\theta_1,\theta_2,...,\theta_k) f(xi∣θ1,θ2,...,θk) 不可微,或似然方程组无解,则应由定义用其他方法求得 Θ ^ \hat{\Theta} Θ^,例如当 L ( Θ ∣ X ) L(\Theta|X) L(Θ∣X) 为 Θ \Theta Θ 的单调函数时, Θ ^ \hat{\Theta} Θ^ 为 Θ \Theta Θ 取值的上限或下限
3.3 示例
3.3.1 抛硬币
- 现有一个正反面不是很均匀的硬币,抛10次结果为:反,反,正,反,反,正,反,正,反,正,共6反4正。设硬币正面朝上的概率为 Θ = θ \Theta = \theta Θ=θ,用最大似然方法估计 θ \theta θ
- 已知每次抛硬币都是0-1分布,其分布函数为
p
(
x
=
k
∣
θ
)
=
θ
k
(
1
−
θ
)
1
−
k
(
k
=
0
,
1
)
p(x=k|\theta) = \theta^k(1-\theta)^{1-k}(k=0,1)
p(x=k∣θ)=θk(1−θ)1−k(k=0,1),于是似然函数和对数似然函数为
L ( θ ∣ x ) = ∏ i = 1 n p ( x ∣ θ ) = ∏ i = 1 n θ x i ( 1 − θ ) 1 − x i l n L ( θ ∣ x ) = ∑ i = 1 n [ x i l n θ + ( 1 − x i ) l n ( 1 − θ ) ] L(\theta|x) = \prod_{i=1}^np(x|\theta) = \prod_{i=1}^n\theta^{x_i}(1-\theta)^{1-x_i} \\ lnL(\theta|x) = \sum_{i=1}^n [x_i ln\theta +(1-x_i)ln(1-\theta)] L(θ∣x)=i=1∏np(x∣θ)=i=1∏nθxi(1−θ)1−xilnL(θ∣x)=i=1∑n[xilnθ+(1−xi)ln(1−θ)] - 令导数为0解
θ
\theta
θ
∂ ∂ θ l n L ( θ ∣ x ) = ∑ i = 1 n ∂ ∂ θ [ x i l n θ + ( 1 − x i ) l n ( 1 − θ ) ] = ∑ i = 1 n x i ∂ ∂ θ l n θ + ∑ i = 1 n ( 1 − x i ) ∂ ∂ θ l n ( 1 − θ ) = 1 θ ∑ i = 1 n x i − 1 1 − θ ∑ i = 1 n ( 1 − x i ) = 令 0 \begin{aligned} \frac{\partial}{\partial\theta}lnL(\theta|x) &= \sum_{i=1}^n \frac{\partial}{\partial\theta} [x_i ln\theta +(1-x_i)ln(1-\theta)] \\ & =\sum_{i=1}^n x_i\frac{\partial}{\partial\theta}ln\theta + \sum_{i=1}^n(1-x_i) \frac{\partial}{\partial\theta}ln(1-\theta) \\ &=\frac{1}{\theta}\sum_{i=1}^nx_i - \frac{1}{1-\theta}\sum_{i=1}^n(1-x_i) \\ &\stackrel{令}{=} 0 \end{aligned} ∂θ∂lnL(θ∣x)=i=1∑n∂θ∂[xilnθ+(1−xi)ln(1−θ)]=i=1∑nxi∂θ∂lnθ+i=1∑n(1−xi)∂θ∂ln(1−θ)=θ1i=1∑nxi−1−θ1i=1∑n(1−xi)=令0
带入观测值 x i ( i = 1 , 2 , . . . , 10 ) x_i(i=1,2,...,10) xi(i=1,2,...,10),解得 θ = 0.4 \theta = 0.4 θ=0.4
3.3.2 均匀分布
- 设样本服从正态分布
U
(
a
,
b
)
U(a,b)
U(a,b),现有样本观测值
x
1
,
x
2
,
.
.
.
,
x
n
x_1,x_2,...,x_n
x1,x2,...,xn,用最大似然估计方法求参数
a
,
b
a,b
a,b
f ( x ) = { 1 b − a , a ≤ x ≤ b 0 , 其 他 f(x) = \left\{ \begin{aligned} &\frac{1}{b-a} &, a\leq x \leq b \\ &0 &,其他 \end{aligned} \right. f(x)=⎩⎨⎧b−a10,a≤x≤b,其他 - 似然函数为
L ( a , b ∣ x ) = { 1 ( b − a ) n , a ≤ x i ≤ b 0 , 其 他 L(a,b|x) = \left\{ \begin{aligned} &\frac{1}{(b-a)^n} &, a\leq x_i \leq b \\ &0 &,其他 \end{aligned} \right. L(a,b∣x)=⎩⎪⎨⎪⎧(b−a)n10,a≤xi≤b,其他 - 此时似然函数作为 a , b a,b a,b 的二元函数是不连续的,这时不能用偏导数来求解,必须从极大似然估计的定义出发求 L ( a , b ) L(a,b) L(a,b) 最大值
- 显然,为使
L
(
a
,
b
)
L(a,b)
L(a,b) 尽量大,b-a应尽量小,在考虑到a和b的取值限制,极大似然估计为
{ a ^ = m i n { x 1 , x 2 , . . . , x n } b ^ = m a x { x 1 , x 2 , . . . , x n } \left\{ \begin{aligned} \hat{a} = min\{x_1,x_2,...,x_n\} \\ \hat{b} = max\{x_1,x_2,...,x_n\} \end{aligned} \right. {a^=min{x1,x2,...,xn}b^=max{x1,x2,...,xn}
3.3.3 一维高斯分布
- 设样本服从正态分布 N ( μ , σ 2 ) N(\mu,\sigma^2) N(μ,σ2),现有样本观测值 x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1,x2,...,xn,用最大似然估计方法求参数 μ , σ \mu, \sigma μ,σ
- 似然函数和对数似然函数为
L ( μ , σ 2 ∣ x ) = ∏ i = 1 n 1 2 π σ e x p ( − ( x i − μ ) 2 2 σ 2 ) = ( 2 π σ 2 ) − n 2 e x p ( − 1 2 σ 2 ∑ i = 1 N ( x i − μ ) 2 ) l n L ( μ , σ 2 ∣ x ) = − n 2 l n ( 2 π ) − n 2 l n ( σ 2 ) − 1 2 σ 2 ∑ i = 1 N ( x i − μ ) 2 \begin{aligned} L(\mu,\sigma^2|x) &= \prod_{i=1}^n\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(x_i-\mu)^2}{2\sigma^2})\\ &= (2\pi\sigma^2)^{-\frac{n}{2}}exp(-\frac{1}{2\sigma^2}\sum_{i=1}^N(x_i-\mu)^2) \\ lnL(\mu,\sigma^2|x) &= - \frac{n}{2}ln(2\pi)-\frac{n}{2}ln(\sigma^2) - \frac{1}{2\sigma^2}\sum_{i=1}^N(x_i-\mu)^2 \end{aligned} \\ L(μ,σ2∣x)lnL(μ,σ2∣x)=i=1∏n2πσ1exp(−2σ2(xi−μ)2)=(2πσ2)−2nexp(−2σ21i=1∑N(xi−μ)2)=−2nln(2π)−2nln(σ2)−2σ21i=1∑N(xi−μ)2 - 求偏导数
{ ∂ l n L ( μ , σ 2 ∣ x ) ∂ μ = 1 σ 2 ∑ i = 1 n ( x i − μ ) ∂ l n L ( μ , σ 2 ∣ x ) ∂ σ 2 = − n 2 σ 2 + 1 2 σ 4 ∑ i = 1 n ( x i − μ ) 2 \left\{ \begin{aligned} \frac{\partial lnL(\mu,\sigma^2|x)}{\partial\mu} & = \frac{1}{\sigma^2} \sum_{i=1}^n(x_i-\mu) \\ \frac{\partial lnL(\mu,\sigma^2|x)}{\partial\sigma^2} &= -\frac{n}{2\sigma^2} + \frac{1}{2\sigma^4}\sum_{i=1}^n(x_i-\mu)^2 \end{aligned} \right. ⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧∂μ∂lnL(μ,σ2∣x)∂σ2∂lnL(μ,σ2∣x)=σ21i=1∑n(xi−μ)=−2σ2n+2σ41i=1∑n(xi−μ)2 - 令偏导数为0,解得
{ μ ^ = x ˉ = 1 n ∑ i = 1 n x i σ 2 ^ = 1 n ∑ i = 1 n ( x i − μ ^ ) 2 = 1 n ∑ i = 1 n ( x i − x ˉ ) 2 \left\{ \begin{aligned} \hat{\mu} &= \bar{x} = \frac{1}{n}\sum_{i=1}^n x_i\\ \hat{\sigma^2} &= \frac{1}{n}\sum_{i=1}^n(x_i-\hat{\mu})^2 = \frac{1}{n}\sum_{i=1}^n(x_i-\bar{x})^2 \end{aligned} \right. ⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧μ^σ2^=xˉ=n1i=1∑nxi=n1i=1∑n(xi−μ^)2=n1i=1∑n(xi−xˉ)2 - 分析
-
易证这里 μ ^ \hat{\mu} μ^ 是一个无偏估计量
-
σ 2 ^ \hat{\sigma^2} σ2^ 是一个有偏估计量,证明如下:首先化简 σ 2 ^ \hat{\sigma^2} σ2^
σ 2 ^ = 1 n ∑ i = 1 n ( x i − x ˉ ) 2 = 1 n ∑ i = 1 n ( x i 2 − 2 x i x ˉ + x ˉ 2 ) = 1 n ∑ i = 1 n x i 2 − 2 x ˉ n ∑ i = 1 n x i + 1 n n x ˉ 2 = 1 n ∑ i = 1 n x i 2 − 2 x ˉ 2 + x ˉ 2 = 1 n ∑ i = 1 n x i 2 − x ˉ 2 \begin{aligned} \hat{\sigma^2} & = \frac{1}{n}\sum_{i=1}^n(x_i-\bar{x})^2 \\ & = \frac{1}{n}\sum_{i=1}^n(x_i^2 -2x_i\bar{x}+ \bar{x}^2)\\ & = \frac{1}{n}\sum_{i=1}^n x_i^2- \frac{2\bar{x}}{n}\sum_{i=1}^n x_i+ \frac{1}{n}n\bar{x}^2\\ & = \frac{1}{n}\sum_{i=1}^n x_i^2- 2\bar{x}^2+ \bar{x}^2\\ & = \frac{1}{n}\sum_{i=1}^n x_i^2- \bar{x}^2 \end{aligned} σ2^=n1i=1∑n(xi−xˉ)2=n1i=1∑n(xi2−2xixˉ+xˉ2)=n1i=1∑nxi2−n2xˉi=1∑nxi+n1nxˉ2=n1i=1∑nxi2−2xˉ2+xˉ2=n1i=1∑nxi2−xˉ2 然后考察是否有偏
E σ 2 ^ = E [ 1 n ∑ i = 1 n ( x i − x ˉ ) 2 ] = E [ 1 n ∑ i = 1 n x i 2 − x ˉ 2 ] = 1 n ∑ i = 1 n E [ x i 2 ] − E [ x ˉ 2 ] = 1 n n [ ( E x i ) 2 + D x i ] − [ ( E x ˉ ) 2 + D x ˉ ] = μ 2 + σ 2 − μ 2 − D [ 1 n ∑ i = 1 n x i ] = σ 2 − n n 2 D x i = σ 2 − 1 n σ 2 = n − 1 n σ 2 \begin{aligned} \mathbb{E}\hat{\sigma^2} &= \mathbb{E}[\frac{1}{n}\sum_{i=1}^n(x_i-\bar{x})^2] \\ &= \mathbb{E}[\frac{1}{n}\sum_{i=1}^n x_i^2- \bar{x}^2] \\ &= \frac{1}{n}\sum_{i=1}^n\mathbb{E}[ x_i^2]-\mathbb{E}[\bar{x}^2] \\ &= \frac{1}{n}n[(\mathbb{E}x_i)^2+Dx_i] - [(\mathbb{E}\bar{x})^2+D\bar{x}]\\ &= \mu^2+\sigma^2-\mu^2-D[\frac{1}{n}\sum_{i=1}^nx_i] \\ &=\sigma^2-\frac{n}{n^2}Dx_i \\ &=\sigma^2-\frac{1}{n}\sigma^2 \\ &=\frac{n-1}{n}\sigma^2 \end{aligned} Eσ2^=E[n1i=1∑n(xi−xˉ)2]=E[n1i=1∑nxi2−xˉ2]=n1i=1∑nE[xi2]−E[xˉ2]=n1n[(Exi)2+Dxi]−[(Exˉ)2+Dxˉ]=μ2+σ2−μ2−D[n1i=1∑nxi]=σ2−n2nDxi=σ2−n1σ2=nn−1σ2 可见一维正态分布的方差的绝对无偏
估计量为 1 n − 1 ∑ i = 1 n ( x i − x ˉ ) 2 \frac{1}{n-1}\sum_{i=1}^n(x_i-\bar{x})^2 n−11∑i=1n(xi−xˉ)2;最大似然估计得到的 σ 2 ^ \hat{\sigma^2} σ2^ 是渐进无偏
估计量(当样本量 n n n 趋于无穷时趋于无偏估计),只要数据集足够大,这样的结果是可以接受的。另外,用类似的方法还能证明 1 n ∑ i = 1 n ( x i − μ ) 2 \frac{1}{n}\sum_{i=1}^n(x_i-\mu)^2 n1∑i=1n(xi−μ)2 是无偏的。 -
从概率论的角度看,极大似然估计得到的估计量是关于样本的n元函数,属于一种统计量,统计量是否一致非常重要,而是否无偏完全不重要。常见的很多(也许可以说是大部分)统计量都是有偏的。
-
3.3.4 多维高斯分布
- 设随机向量
X
\pmb{X}
XXX 服从期望为
μ
\pmb{\mu}
μμμ,协方差矩阵为
Σ
\pmb{\Sigma}
ΣΣΣ 的多维高斯分布,即
X
∼
N
(
μ
,
Σ
)
\pmb{X}\sim N(\pmb{\mu},\pmb{\Sigma})
XXX∼N(μμμ,ΣΣΣ),则
n
n
n 维 r.v.
X
n
×
1
\pmb{X}_{n\times 1}
XXXn×1 的概率密度函数为
f ( x ) = f ( x 1 , . . . , x n ) = 1 ( 2 π ) n / 2 ∣ Σ ∣ 1 / 2 e − 1 2 ( x − μ ) ⊤ Σ − 1 ( x − μ ) f(\pmb{x}) = f(x_1,...,x_n) = \frac{1}{(2\pi)^{n/2}|\Sigma|^{1/2}}e^{-\frac{1}{2}(\mathbf{x}-\mathbf{\mu})^\top \mathbf{\Sigma}^{-1}(\mathbf{x}-\mathbf{\mu})} f(xxx)=f(x1,...,xn)=(2π)n/2∣Σ∣1/21e−21(x−μ)⊤Σ−1(x−μ) 其中 Σ \pmb{\Sigma} ΣΣΣ 是一个实对称矩阵,指数部分的 ( x − μ ) ⊤ Σ − 1 ( x − μ ) (\mathbf{x}-\mathbf{\mu})^\top \mathbf{\Sigma}^{-1}(\mathbf{x}-\mathbf{\mu}) (x−μ)⊤Σ−1(x−μ) 是一个二次型,利用杨本观测值 x 1 , x 2 , . . . , x m \pmb{x}_1,\pmb{x}_2,...,\pmb{x}_m xxx1,xxx2,...,xxxm 做极大似然估计 - 首先补充一些证明会用到的定理
- Σ \pmb{\Sigma} ΣΣΣ 是实对称矩阵, Σ − 1 \pmb{\Sigma}^{-1} ΣΣΣ−1 也是实对称矩阵,有 Σ − 1 = ( Σ − 1 ) ⊤ \pmb{\Sigma}^{-1} = (\pmb{\Sigma}^{-1})^\top ΣΣΣ−1=(ΣΣΣ−1)⊤
- 二次型和矩阵迹的公式 x ⊤ A x = tr ( A x x ⊤ ) x^\top Ax = \text{tr}(Axx^\top) x⊤Ax=tr(Axx⊤)
- ∂ ( x ⊤ A x ) ∂ = ( A + A ⊤ ) x \frac{\partial\left(x^\top A x\right)}{\partial}=\left(A+A^\top\right) x ∂∂(x⊤Ax)=(A+A⊤)x
- ∂ tr ( X − 1 A ) ∂ X = − X − 1 A T X − 1 \frac{\partial \operatorname{tr}\left(X^{-1} A\right)}{\partial X}=-X^{-1} A^{T} X^{-1} ∂X∂tr(X−1A)=−X−1ATX−1
- ∂ ln ( ∣ X ∣ ) ∂ X = ( X − 1 ) ⊤ = ( X ⊤ ) − 1 \frac{\partial \ln (|X|)}{\partial X}=\left(X^{-1}\right)^\top =\left(X^\top\right)^{-1} ∂X∂ln(∣X∣)=(X−1)⊤=(X⊤)−1
- 首先计算对数似然函数
l n L ( μ , Σ ∣ x ) = l n ∏ k = 1 m P ( x k ∣ μ , Σ ) = ∑ k = 1 m l n P ( x k ∣ μ , Σ ) = − m 2 ln [ ( 2 π ) m ∣ Σ ∣ ] − 1 2 ∑ k = 1 m ( x k − μ ) ⊤ Σ − 1 ( x k − μ ) = − m 2 ln [ ( 2 π ) m ∣ Σ ∣ ] − 1 2 tr [ ∑ k = 1 m Σ − 1 ( x k − μ ) ( x k − μ ) ⊤ ] = − m 2 ln [ ( 2 π ) m ∣ Σ ∣ ] − 1 2 tr [ Σ − 1 ∑ k = 1 m ( x k − μ ) ( x k − μ ) ⊤ ] = − m 2 ln [ ( 2 π ) m ∣ Σ ∣ ] − 1 2 tr [ Σ − 1 S ] \begin{aligned} lnL(\pmb{\mu},\pmb{\Sigma}|\pmb{x}) &= ln\prod_{k=1}^m P(\pmb{x}_k|\pmb{\mu},\pmb{\Sigma}) \\ &= \sum_{k=1}^m lnP(\pmb{x}_k|\pmb{\mu},\pmb{\Sigma}) \\ &= -\frac{m}{2}\ln [(2\pi)^m|\pmb{\Sigma}|] - \frac{1}{2}\sum_{k=1}^m(\pmb{x}_k-\pmb{\mu})^\top \pmb{\Sigma}^{-1}(\pmb{x}_k-\pmb{\mu})\\ &= -\frac{m}{2}\ln [(2\pi)^m|\pmb{\Sigma}|] - \frac{1}{2}\text{tr}\Big[\sum_{k=1}^m\pmb{\Sigma}^{-1}(\pmb{x}_k-\pmb{\mu}) (\pmb{x}_k-\pmb{\mu})^\top\Big]\\ &= -\frac{m}{2}\ln [(2\pi)^m|\pmb{\Sigma}|] - \frac{1}{2}\text{tr}\Big[\pmb{\Sigma}^{-1}\sum_{k=1}^m(\pmb{x}_k-\pmb{\mu})(\pmb{x}_k-\pmb{\mu})^\top \Big]\\ &= -\frac{m}{2}\ln [(2\pi)^m|\pmb{\Sigma}|] - \frac{1}{2}\text{tr}\Big[\pmb{\Sigma}^{-1}S \Big] \end{aligned} lnL(μμμ,ΣΣΣ∣xxx)=lnk=1∏mP(xxxk∣μμμ,ΣΣΣ)=k=1∑mlnP(xxxk∣μμμ,ΣΣΣ)=−2mln[(2π)m∣ΣΣΣ∣]−21k=1∑m(xxxk−μμμ)⊤ΣΣΣ−1(xxxk−μμμ)=−2mln[(2π)m∣ΣΣΣ∣]−21tr[k=1∑mΣΣΣ−1(xxxk−μμμ)(xxxk−μμμ)⊤]=−2mln[(2π)m∣ΣΣΣ∣]−21tr[ΣΣΣ−1k=1∑m(xxxk−μμμ)(xxxk−μμμ)⊤]=−2mln[(2π)m∣ΣΣΣ∣]−21tr[ΣΣΣ−1S] 其中 S = ∑ k = 1 m ( x k − μ ) ( x k − μ ) ⊤ S=\sum_{k=1}^m(\pmb{x}_k-\pmb{\mu})(\pmb{x}_k-\pmb{\mu})^\top S=∑k=1m(xxxk−μμμ)(xxxk−μμμ)⊤ 是一个对称矩阵,有 S ⊤ = S S^\top = S S⊤=S - 对
μ
\pmb{\mu}
μμμ 求偏导数
∂ l n L ( μ , Σ ∣ x ) ∂ μ = ∂ − 1 2 ∑ k = 1 m ( x k − μ ) ⊤ Σ − 1 ( x k − μ ) ∂ μ = − 1 ∗ ( − 1 2 ) ∑ k = 1 m 2 Σ − 1 ( x t − μ ) = ∑ k = 1 m Σ − 1 ( x t − μ ) = Σ − 1 ∑ k = 1 m ( x t − μ ) \begin{aligned} \frac{\partial lnL(\pmb{\mu},\pmb{\Sigma}|\pmb{x}) }{\partial\pmb{\mu}} & =\frac{\partial - \frac{1}{2}\sum_{k=1}^m(\pmb{x}_k-\pmb{\mu})^\top \pmb{\Sigma}^{-1}(\pmb{x}_k-\pmb{\mu}) }{\partial\pmb{\mu}} \\ &= -1*(-\frac{1}{2})\sum_{k=1}^m 2\pmb{\Sigma}^{-1}(\pmb{x}_t-\pmb{\mu}) \\ &=\sum_{k=1}^m \pmb{\Sigma}^{-1}(\pmb{x}_t-\pmb{\mu}) \\ &=\pmb{\Sigma}^{-1}\sum_{k=1}^m (\pmb{x}_t-\pmb{\mu}) \end{aligned} ∂μμμ∂lnL(μμμ,ΣΣΣ∣xxx)=∂μμμ∂−21∑k=1m(xxxk−μμμ)⊤ΣΣΣ−1(xxxk−μμμ)=−1∗(−21)k=1∑m2ΣΣΣ−1(xxxt−μμμ)=k=1∑mΣΣΣ−1(xxxt−μμμ)=ΣΣΣ−1k=1∑m(xxxt−μμμ) 对 Σ \pmb{\Sigma} ΣΣΣ 求偏导数
∂ l n L ( μ , Σ ∣ x ) ∂ Σ = ∂ − m 2 ln [ ( 2 π ) m ∣ Σ ∣ ] − 1 2 tr [ Σ − 1 S ] ∂ Σ = − m 2 ( Σ ⊤ ) − 1 + 1 2 Σ − 1 S ⊤ Σ − 1 = 1 2 [ − m Σ − 1 + Σ − 1 S Σ − 1 ] \begin{aligned} \frac{\partial lnL(\pmb{\mu},\pmb{\Sigma}|\pmb{x}) }{\partial\pmb{\Sigma}} & =\frac{\partial -\frac{m}{2}\ln [(2\pi)^m|\pmb{\Sigma}|] - \frac{1}{2}\text{tr}\Big[\pmb{\Sigma}^{-1}S \Big] }{\partial\pmb{\Sigma}} \\ &= -\frac{m}{2} \left(\pmb{\Sigma}^\top\right)^{-1} +\frac{1}{2}\pmb{\Sigma}^{-1}S^\top\pmb{\Sigma}^{-1} \\ &= \frac{1}{2}\Big[-m\pmb{\Sigma}^{-1}+\pmb{\Sigma}^{-1}S\pmb{\Sigma}^{-1}\Big] \end{aligned} ∂ΣΣΣ∂lnL(μμμ,ΣΣΣ∣xxx)=∂ΣΣΣ∂−2mln[(2π)m∣ΣΣΣ∣]−21tr[ΣΣΣ−1S]=−2m(ΣΣΣ⊤)−1+21ΣΣΣ−1S⊤ΣΣΣ−1=21[−mΣΣΣ−1+ΣΣΣ−1SΣΣΣ−1] - 令两个偏导数为 0,得到极大似然估计值
{ μ ^ = x ˉ = 1 m ∑ k = 1 m x k Σ ^ = 1 m S = 1 m ∑ k = 1 m ( x k − μ ^ ) ( x k − μ ^ ) ⊤ \left\{ \begin{aligned} \hat{\pmb{\mu}} &= \bar{\pmb{x}} = \frac{1}{m}\sum_{k=1}^m \pmb{x}_k\\ \hat{\pmb{\Sigma}} &= \frac{1}{m}S = \frac{1}{m}\sum_{k=1}^m(\pmb{x}_k-\hat{\pmb{\mu}})(\pmb{x}_k-\hat{\pmb{\mu}})^\top \end{aligned} \right. ⎩⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎧μμμ^ΣΣΣ^=xxxˉ=m1k=1∑mxxxk=m1S=m1k=1∑m(xxxk−μμμ^)(xxxk−μμμ^)⊤ 和一维情况类似,这里 μ ^ \hat{\pmb{\mu}} μμμ^ 是绝对无偏估计值, Σ ^ \hat{\pmb{\Sigma}} ΣΣΣ^ 是渐进无偏估计值, Σ \pmb{\Sigma} ΣΣΣ 的绝对无偏估计值为
1 m − 1 ∑ k = 1 m ( x k − μ ^ ) ( x k − μ ^ ) ⊤ \frac{1}{m-1}\sum_{k=1}^m(\pmb{x}_k-\hat{\pmb{\mu}})(\pmb{x}_k-\hat{\pmb{\mu}})^\top m−11k=1∑m(xxxk−μμμ^)(xxxk−μμμ^)⊤ - 最后,注意协方差矩阵的估计形式为 Σ ^ = 1 m ∑ k = 1 m ( x k − μ ^ ) ( x k − μ ^ ) ⊤ \hat{\pmb{\Sigma}} = \frac{1}{m}\sum_{k=1}^m(\pmb{x}_k-\hat{\pmb{\mu}})(\pmb{x}_k-\hat{\pmb{\mu}})^\top ΣΣΣ^=m1∑k=1m(xxxk−μμμ^)(xxxk−μμμ^)⊤,它求平均的每一项都是 n × 1 n\times 1 n×1 的向量和自身的转置相乘,得到的结果中每一个位置的元素都是独立计算的,即任意特征间的方差/协方差都是独立计算的,如果我们假设 n n n 个特征全部独立,相当于增加了一个非对角位置全部为 0 0 0 的约束,只需把协方差矩阵非对角线位置元素全部置为 0 0 0 满足约束即可,这时退化为 n n n 个一维高斯分布情况
3.4 程序演示
- 下面演示二维高斯分布的极大似然估计,本题改编自 《模式分类(第二版)》p.127 Prob.1,先搞点数据
import numpy as np import matplotlib.pylab as plt w = np.array([[0.83,1.6], [1.1,1.6], [-0.44,-0.41], [0.047,-0.45], [0.28,0.35], [-0.39,-0.48], [-0.34,-0.079], [-0.3,-0.22], [1.1,1.2], [0.18,-0.11]]) fig = plt.figure(figsize = (5,5)) a0 = fig.add_subplot(1,1,1,label='a0') a0.scatter(w[:,0],w[:,1],c='red',alpha=0.5) mu = np.mean(w,axis=0) cov = np.dot((w-mu).T,(w-mu))/N print('期望的极大似然估计为\n{}'.format(np.around(mu,4))) print('方差的极大似然估计为\n{}'.format(np.around(cov,4)),end='\n\n') ''' 期望的极大似然估计为 [0.2067 0.3001] 方差的极大似然估计为 [[0.3346 0.4305] [0.4305 0.645 ]] '''
-
分别假设数据服从二维联合高斯分布和二维独立的高斯分布(把协方差矩阵除了对角线以外清零),结果如下
%matplotlib notebook import numpy as np import matplotlib.pylab as plt from scipy import stats plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签 plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号 fig = plt.figure(figsize = (10,10)) a0 = fig.add_subplot(2,2,1,label='a0',projection='3d') a1 = fig.add_subplot(2,2,2,label='a1',projection='3d') a2 = fig.add_subplot(2,2,3,label='a2') a3 = fig.add_subplot(2,2,4,label='a3') w = np.array([[0.83,1.6], [1.1,1.6], [-0.44,-0.41], [0.047,-0.45], [0.28,0.35], [-0.39,-0.48], [-0.34,-0.079], [-0.3,-0.22], [1.1,1.2], [0.18,-0.11]]) N = w.shape[0] mu = np.mean(w,axis=0) cov = np.dot((w-mu).T,(w-mu))/N print('期望的极大似然估计为\n{}'.format(np.around(mu,4))) print('方差的极大似然估计为\n{}'.format(np.around(cov,4)),end='\n\n') x, y = np.mgrid[-2:2.5:.1, -2:2.5:.1] pos = np.empty(x.shape + (2,)) pos[:, :, 0] = x; pos[:, :, 1] = y rv = stats.multivariate_normal(mu, cov) # 生成多元正态分布 a0.plot_surface(x, y, rv.pdf(pos),alpha=0.5,cmap=plt.cm.cool) a0.scatter(w[:,0],w[:,1],np.zeros(w.shape[0]),c='green') a0.set_title('联合估计') a2.contourf(x, y, rv.pdf(pos)) # 等高线 a2.grid(alpha=0.5) # 坐标网格 a2.scatter(w[:,0],w[:,1],c='red',alpha=0.5) mask = np.eye(2,2,dtype = 'bool') cov[~mask] = 0 rv = stats.multivariate_normal(mu, cov) # 生成多元正态分布 a1.plot_surface(x, y, rv.pdf(pos),alpha=0.5,cmap=plt.cm.cool) a1.scatter(w[:,0],w[:,1],np.zeros(w.shape[0]),c='green') a1.set_title('独立估计') a3.contourf(x, y, rv.pdf(pos)) # 等高线 a3.grid(alpha=0.5) # 坐标网格 a3.scatter(w[:,0],w[:,1],c='red',alpha=0.5)
可见增加各维度独立假设后,相当于把原先的超椭圆摆正了,从 x/y 轴方向看,超椭圆的宽度和长度是一致的。关于多维高斯分布的详细介绍,参考:随机过程(2.2)—— 多维高斯分布
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)