高斯混合算法(GMM)与最大期望算法(EM)的推导

由于EM算法的推导常使用GMM算法来举例子,故下面先介绍高斯混合算法

一般的高斯算法(单个高斯)

在这里插入图片描述
上式是单个高斯分布,对于单个高斯分布,给定一组观测数据,求参数时通常用MLE(极大似然估计)就可以了,具体做法就是分别对均值和方差求导数,然后令导数=0求解即可。

高斯混合算法

在这里插入图片描述
上面是高斯混合算法的一般形式和对数似然函数形式。与单个高斯分布相比,GMM算法是由k个高斯加权平均混合而成的, π k \pi_{k} πk是第k个高斯所占的权重(也就是每个高斯的先验概率),每个高斯均有自己的均值和方差,因此GMM共有 3 k 3k 3k个未知参数,但是又因为 π k \pi_{k} πk的和为1,故最终若确定了前面 k − 1 k-1 k1 π i \pi_{i} πi,最后一个 π k \pi_{k} πk就确定了,故共有 3 k − 1 3k-1 3k1个未知参数。

从似然函数可以看出,GMM算法的对数似然函数中 l o g log log里面是和式,故不能使用MLE来求解这 3 k − 1 3k-1 3k1个未知参数。应该使用EM算法来求解。
在这里插入图片描述
从这个图可以看出,样本空间中的一个样本点 x 1 x_{1} x1的概率值是 x 1 x_{1} x1分别由2个高斯产生的概率加权而成的,这个权值就是前面的 π k \pi_{k} πk。从这里也可以看出GMM算法是软聚类算法,一个样本点是同时属于多个cluster,只是属于每个cluster的程度不同,样本点 x 1 x_{1} x1最终属于哪个类就取 π k \pi_{k} πk最大的那一类。

公式推导

下面的公式推导要用到贝叶斯公式和全概率公式,如果不清楚可以看链接:全概率公式、贝叶斯公式推导过程

单个样本 x x x的概率如下式
在这里插入图片描述
对于(1)式,对于单个样本点 x x x,虽然我们并不能观测到 x x x是属于哪一类的,但是 x x x肯定是属于 k k k类中的某一类,因此这里就存在一个隐变量,我们设为 z z z z 是 一 个 K 维 的 o n e − h o t 向 量 z是一个K维的one-hot向量 zKonehot,只有第k维为1,其余为0,表示样本点 x x x属于第k类。
p ( z k = 1 ) = π k p(z_{k}=1)=\pi_{k} p(zk=1)=πk
上面的式子表示样本点 x x x属于第k类的概率是 π k \pi_{k} πk,若确定了样本点 x x x属于第k类的概率 π k \pi_{k} πk,则在这个条件下,样本点在第k类高斯分布中的概率分布就变成了单个的高斯分布。
p ( x ∣ z k = 1 ) = N ( x ∣ μ k , Σ k ) p(x|z_{k}=1)=N(x|\mu_{k},\Sigma_{k}) p(xzk=1)=N(xμk,Σk)
最终将样本点 x x x在k个高斯分布下的概率累加就是(2)式,也就是最终的GMM分布的概率公式
p ( x ) = ∑ z p ( z ) p ( x ∣ z ) = ∑ k = 0 K − 1 π k N ( x ∣ μ k , Σ k ) (2) \tag{2} \begin{aligned} p(x) = &\sum_{z}p(z)p(x|z) \\ = &\sum_{k=0}^{K-1} \pi_{k}N(x|\mu_{k}, \Sigma_{k}) \end{aligned} p(x)==zp(z)p(xz)k=0K1πkN(xμk,Σk)(2)
(2)式是由全概率公式得到的( 可 以 看 作 最 终 的 概 率 p ( x ) 被 分 割 为 k 个 独 立 的 子 事 件 p ( x ∣ z ) 可以看作最终的概率p(x)被分割为k个独立的子事件p(x|z) p(x)kp(xz))。

贝叶斯定理可以知道, p ( z ) 是 先 验 概 率 , p ( x ∣ z ) 是 似 然 概 率 p(z)是先验概率,p(x|z)是似然概率 p(z)p(xz),那么可以很方便的求出后验概率 p ( z ∣ x ) p(z|x) p(zx)
p ( z ∣ x ) = p ( z ) p ( x ∣ z ) p ( x ) = π k N ( x ∣ μ k , Σ k ) ∑ k = 0 K − 1 π k N ( x ∣ , μ k , Σ k ) \begin{aligned} p(z|x) = & {p(z)p(x|z) \over p(x)} \\ = &{\pi_{k}N(x|\mu_{k},\Sigma_{k}) \over \sum_{k=0}^{K-1}\pi_{k}N(x|,\mu_{k}, \Sigma_{k})} \end{aligned} p(zx)==p(x)p(z)p(xz)k=0K1πkN(x,μk,Σk)πkN(xμk,Σk)
给定一个样本点 x n x_{n} xn,并且已知GMM模型的参数(也就是 π , μ , Σ \pi, \mu,\Sigma π,μ,Σ),求其属于第k类的概率是:
γ n k = p ( z k = 1 ∣ x n ) = π k N ( x n ∣ μ k , Σ k ) ∑ k = 0 K − 1 π k N ( x n ∣ , μ k , Σ k ) (3) \tag{3} \gamma_{nk}=p(z_{k}=1|x_{n})={\pi_{k}N(x_{n}|\mu_{k},\Sigma_{k}) \over \sum_{k=0}^{K-1}\pi_{k}N(x_{n}|,\mu_{k}, \Sigma_{k})} γnk=p(zk=1xn)=k=0K1πkN(xn,μk,Σk)πkN(xnμk,Σk)(3)
对于一个样本 x n x_{n} xn,其后验概率 γ n k \gamma_{nk} γnk的和为1, γ n k \gamma_{nk} γnk表示样本 x n x_{n} xn属于第k类cluster的概率。

假设我们有一组数据 X = x 1 , x 2 , , , x n X={x_{1},x_{2},,,x_{n}} X=x1,x2,,,xn,并且知道这组数据中的每一个数据都是由哪个高斯产生的,也就是对于样本集 X X X中的某个样本 x t x_{t} xt,知道其对应的 z t ( 一 个 K 维 向 量 ) , 其 中 z t 0 = 0 , z t 1 = 0 , . . , z t i = 1 , . . , z t K = 0 z_{t}(一个K维向量),其中z_{t0}=0,z_{t1}=0,..,z_{ti}=1,..,z_{tK}=0 ztK,zt0=0,zt1=0,..,zti=1,..,ztK=0。这样的 ( x t , z t ) (x_t, z_t) (xt,zt)我们称为完全数据。那么这组完全数据的似然函数就是
p ( X , Z ∣ θ ) = p ( X , Z ∣ π , μ , Σ ) = ∏ t = 1 n ∏ k = 1 K ( π k N ( x t ∣ μ k , Σ k ) ) z t k p(X,Z|\theta)=p(X,Z|\pi,\mu,\Sigma)=\prod_{t=1}^{n} \prod_{k=1}^{K}(\pi_{k}N(x_{t}|\mu_{k},\Sigma_{k}))^{z_{tk}} p(X,Zθ)=p(X,Zπ,μ,Σ)=t=1nk=1K(πkN(xtμk,Σk))ztk
其中 θ \theta θ是k个高斯的参数,每个高斯含有3个参数,X是样本空间。

EM算法的推导

在这里插入图片描述
(6)式可由概率论的知识得到,其含义是在已知GMM参数的情况下, X , Z X,Z X,Z的联合概率分布。
将(6)式中的 p ( Z ∣ X , θ ) p(Z|X,\theta) p(ZXθ)移到等号左边并取对数
l o g p ( X ∣ θ ) = l o g p ( X , Z ∣ θ ) p ( Z ∣ X , θ ) (7) \tag{7} logp(X|\theta) = log{p(X, Z|\theta) \over p(Z|X,\theta)} logp(Xθ)=logp(ZX,θ)p(X,Zθ)(7)

将(7)式等号右边分子分母同时除以 Z 的 真 实 分 布 q ( Z ) Z的真实分布q(Z) Zq(Z)
在这里插入图片描述
在上式两边同时乘以 Z 的 真 实 分 布 q ( Z ) 并 对 Z 积 分 Z的真实分布q(Z)并对Z积分 Zq(Z)Z得(相当于对 l o g p ( X ∣ θ ) logp(X|\theta) logp(Xθ)求期望)
在这里插入图片描述
由于 l o g p ( X ∣ θ ) logp(X|\theta) logp(Xθ)不含有Z,故最后 q ( Z ) q(Z) q(Z)积分结果为1。
对等式右边积分结果如下:
在这里插入图片描述
第二项连同负号是KL散度的形式,恒大于等于0,故有 l o g p ( X ∣ θ ) ≥ Q logp(X|\theta) \ge Q logp(Xθ)Q

在这里插入图片描述
即Q函数是似然函数 l o g p ( X ∣ θ ) logp(X|\theta) logp(Xθ)的一个下界,要最大化似然函数,只要最大化Q函数就可以了。 q ( Z ) 是 Z q(Z)是Z q(Z)Z的真实分布,虽然我们无法观测到,但是必定存在,在推导中用 Z 的 上 一 次 分 布 的 结 果 p ( Z ∣ X , θ o l d ) Z的上一次分布的结果p(Z|X, \theta^{old}) Zp(ZX,θold)来代替 q ( Z ) q(Z) q(Z) a r g m a x argmax argmax中,后面那一项与?没有关系,故可以甩掉。

最后令上面的结果等于新的 Q Q Q,新的Q函数中含有已知量 θ o l d 和 未 知 量 θ \theta^{old}和未知量\theta θoldθ
至此,EM算法推导结束。

下面总结一下EM算法:
在这里插入图片描述
E-step:根据参数 θ o l d \theta^{old} θold计算每个样本由第k类高斯产生的概率,也就是前面提到的后验概率 γ n k \gamma_{nk} γnk,将其值带入 Q Q Q函数,如上式所示。
根据Q函数的表达式可以看出,Q函数相当于是对变量 l o g p ( z i , x i │ θ ) logp(z_{i}, x_{i}│\theta) logp(zi,xiθ)求期望(将 p ( z i ∣ x i , θ o l d ) p(z_{i}|x_{i}, \theta^{old}) p(zixi,θold)看作其概率分布)。
这里的Q函数其实就是我们要求的似然函数的下界。
在这里插入图片描述
M-Step:根据计算得到的 γ n k \gamma_{nk} γnk,求出含有 θ θ θ的似然函数的下界(也就是Q函数)并最大化它,得到参数 θ θ θ的新值。
从图中可以看出,EM算法是迭代的求解参数,但是直接求解似然函数有困难,所以找到似然函数的一个下界Q函数,
每次先固定 Θ Θ Θ,然后求出 Q ( Θ ) Q(Θ) Q(Θ)的表达式,再最大化 Q ( Θ ) Q(Θ) Q(Θ) Q Q Q函数相当于是对 l o g p ( z i , x i │ θ ) logp(z_{i}, x_{i}│\theta) logp(zi,xiθ)求期望,故称作最大期望算法。

看不懂的同学可以看悉尼科技大学徐亦达的视频或者b站上的白板推导视频。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值