极大似然法(ML)与最大期望法(EM)

极大似然法

极大似然,或者称最大似然(Maximum likelihood)。

目的

利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值。

原理

极大似然估计是建立在极大似然原理的基础上的一个统计方法,是概率论在统计学中的应用。极大似然估计提供了一种给定观察数据来评估模型参数的方法,即:“模型已定,参数未知”。通过若干次试验,观察其结果,利用试验结果得到某个参数值能够使样本出现的概率为最大,则称为极大似然估计。

举例

说人话就是,学霸和学渣考试结束之后,一个成绩是A,一个成绩是C。这时候,一般是猜测学霸的成绩是A;学渣的成绩为C。这就体现了极大似然的基本思想。在已知结果集(一个A,一个C)的情况下,根据一些先验知识(学霸成绩有很大可能高于学渣),得到分析的结果(学霸A,学渣C)。一句话总结,已知结果,求出现这个结果的最大可能条件

数学定义

似然函数: L(θ) L ( θ )

最大似然估计量(需要得到的结果): θ θ

目的是需要找到一个 θ θ ,使得 L(θ) L ( θ ) 最大。这个最大的 θ θ 表示为: θ^=argmaxL(θ) θ ^ = arg ⁡ max L ( θ ) 。( arg arg 表示在 θ θ 所有的索引值)

在某些情况下, L(θ) L ( θ ) 是用连乘来表示的,如 L(θ)=i=1np(xi;θ) L ( θ ) = ∏ i = 1 n p ( x i ; θ ) 。此时,为了便于分析,将其转换为连加计算, H(θ)=lnL(θ)=i=1np(xi;θ) H ( θ ) = ln ⁡ L ( θ ) = ∑ i = 1 n p ( x i ; θ )

此时,问题转换为求 L(θ) L ( θ ) 的极大值,方法就是运用求导(前提是这个函数连续可微)。值得一提的是, θ θ 不一定只有一个值,可能为一个向量,所以求极大值的时候需要对每个参数进行求偏导。

EM算法

EM算法,最大期望算法(Expectation-maximization)

目的

在统计中被用于寻找,依赖于不可观察的隐性变量的概率模型中,参数的最大似然估计。

原理

最大期望算法经过两个步骤交替进行计算,第一步是计算期望(E),利用对隐藏变量的现有估计值,计算其最大似然估计值;第二步是最大化(M),最大化在E步上求得的最大似然值来计算参数的值。M步上找到的参数估计值被用于下一个E步计算中,这个过程不断交替进行。

举例

说人话就是,一堆钞票(很多很多),在不借助外力(点钞机)的情况下,如何平均分成两部分。最简单的做法就是,首先大致分为两堆,然后比较两堆钞票的高低;将高堆的一部分钞票转给低堆;来回往复,直到两堆同高。前提钞票是崭新,每张厚度一样。为了想得到在开始状态下未知的两个参数A、B(平均分为两堆钞票),前提条件是得到A了就可以得到B,得到B也可以得到A。此时,就可以随机(指定)赋予A某初值(先大概分一堆钞票出来),B也得到了一个值(另一堆钞票就是B);根据B的当前值(钞票高度)重新估计A值(对比两堆高低,进行转钞票),直到收敛(两堆钞票相等)。一句话总结,想要得到一堆有关联的未知参数,先猜一个大概的参数结果,再不断的调整,直到参数结果符合条件(收敛)

数学定义

样本集: {x(1)x(2)xm} { x ( 1 ) , x ( 2 ) , ⋯ , x m }

每个样本对应的类别(未知): z(i) z ( i )

基于最大似然问题的定义,概率估计模型 p(x(i);θ) p ( x ( i ) ; θ ) 。现在多了一个未知变量 z(θ) z ( θ ) ,变成了 p(x(i),z(i);θ) p ( x ( i ) , z ( i ) ; θ ) 。问题还是一样,求解 θ^ θ ^

E步骤:根据参数初始值或上一次迭代的参数值(一开始定义的钞票高度或者每次调整完钞票高度后的两堆高度)来计算隐性变量( z(i) z ( i ) 的后验概率(隐性变量的期望,新估计值)

M步骤:将似然函数极大化获得新参数值(根据B堆高度调整A堆高度)

推导过程

一个背景知识,Jensen不等式。 f f 是凸函数, X X 是随机变量,公式是这样的, E(f(X))f(EX) E ( f ( X ) ) ≥ f ( E X ) 。具体推导过程不做介绍。

H(θ)=logL(θ)=i=1mlogp(x(i);θ)=i=1mlogz(i)p(x(i),z(i);θ)=i=1mlogz(i)Qi(z(i))p(x(i),z(i);θ)Qi(z(i))i=1mz(i)Qi(z(i))logp(x(i),z(i);θ)Qi(z(i)) H ( θ ) = log ⁡ L ( θ ) = ∑ i = 1 m log ⁡ p ( x ( i ) ; θ ) = ∑ i = 1 m log ⁡ ∑ z ( i ) p ( x ( i ) , z ( i ) ; θ ) = ∑ i = 1 m log ⁡ ∑ z ( i ) Q i ( z ( i ) ) p ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) ≥ ∑ i = 1 m ∑ z ( i ) Q i ( z ( i ) ) log ⁡ p ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) )

稍作解释,第一行到第二行,是引出 z(i) z ( i ) 这个未知变量,第三行是引入一个额外的 Qi(z(i)) Q i ( z ( i ) ) 变量,便于使用Jensen不等式,第四行运用Jensen不等式。

接下来,就是求解 p(x(i),z(i);θ)Qi(z(i)) p ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) ,令其等于 c c 。由推导可得 zQi(z(i))=1 ∑ z Q i ( z ( i ) ) = 1 。所以:

Qi(z(i))=p(x(i),z(i);θ)zp(x(i),z;θ)=p(x(i),z(i);θ)p(x(i);θ)=p(z(i)|x(i);θ) Q i ( z ( i ) ) = p ( x ( i ) , z ( i ) ; θ ) ∑ z p ( x ( i ) , z ; θ ) = p ( x ( i ) , z ( i ) ; θ ) p ( x ( i ) ; θ ) = p ( z ( i ) | x ( i ) ; θ )

所以,接下来就可以正式的进行E、M步骤

E: Qi(z(i))=p(zi|x(i);θ) Q i ( z ( i ) ) = p ( z i | x ( i ) ; θ )

M: θ=argmaxiz(i)Qi(z(i))logp(x(i),z(i);θ)Qi(z(i)) θ = arg ⁡ max ∑ i ∑ z ( i ) Q i ( z ( i ) ) log ⁡ p ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) )

最后收敛。关于一定会收敛的证明。

在第t步骤中,

L(θ(t))=iz(i)Q(t)i(z(i))logp(x(i),z(i);θ(t))Q(t)i(z(i)) L ( θ ( t ) ) = ∑ i ∑ z ( i ) Q i ( t ) ( z ( i ) ) log ⁡ p ( x ( i ) , z ( i ) ; θ ( t ) ) Q i ( t ) ( z ( i ) )

之后进行M步骤,固定了 Q(t)i(z(i)) Q i ( t ) ( z ( i ) ) ,求新的 θ θ ,即 θ(t+1) θ ( t + 1 ) 。所以,

L(θ(t+1))iz(i)Q(t)i(z(i))logp(x(i),z(i);θ(t+1))Q(t)i(z(i)) L ( θ ( t + 1 ) ) ≥ ∑ i ∑ z ( i ) Q i ( t ) ( z ( i ) ) log ⁡ p ( x ( i ) , z ( i ) ; θ ( t + 1 ) ) Q i ( t ) ( z ( i ) )

显然, L(θ(t+1))L(θ(t)) L ( θ ( t + 1 ) ) ≥ L ( θ ( t ) )

参考文章:

(EM算法)The EM Algorithm

从最大似然到EM算法浅解

点赞