西瓜书+实战+吴恩达机器学习(二三)EM算法和变分推断

文章目录

  • 0. 前言
  • 1. EM算法
  • 2. 变分推断

如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~

0. 前言

EM算法是常用的估计参数隐变量的方法,它是一种迭代式算法,EM算法原型

  • E步:若参数 θ \theta θ已知,则可根据训练数据推断出最优隐变量 Z Z Z
  • M步:若 Z Z Z的值已知,则可方便的对参数 θ \theta θ进行极大似然估计

1. EM算法

在概率图模型中,主要推断任务是基于观测变量推断隐变量和参数,即 p ( z ∣ x , θ ) p(z\mid x,\theta) p(zx,θ) θ \theta θ

通过EM算法不断迭代:

  • E步:根据 t t t时刻的参数 θ t \theta^t θt和观测变量推断 p ( z ∣ x , θ t ) p(z\mid x,\theta^t) p(zx,θt),并计算联合似然函数 p ( z , x ∣ θ t ) p(z,x\mid \theta^t) p(z,xθt),然后计算对数似然 L L ( θ ∣ x , z ) LL(\theta\mid x,z) LL(θx,z)关于隐变量的期望:
    Q ( θ ; θ t ) = E z ∣ x , θ t L L ( θ ∣ x , z ) = E z ∣ x , θ t ln ⁡ p ( x , z ∣ θ ) = ∑ z p ( z ∣ x , θ t ) ln ⁡ p ( x , z ∣ θ ) \begin{aligned} Q(\theta;\theta^t)=&E_{z\mid x,\theta^t}LL(\theta\mid x,z)\\ &=E_{z\mid x,\theta^t}\ln p(x,z\mid \theta)\\ &=\sum_zp(z\mid x,\theta^t)\ln p(x,z\mid \theta) \end{aligned} Q(θ;θt)=Ezx,θtLL(θx,z)=Ezx,θtlnp(x,zθ)=zp(zx,θt)lnp(x,zθ)
  • M步:寻找参数的最大化期望似然:
    θ t + 1 = arg ⁡ max ⁡ θ Q ( θ ; θ t ) \theta^{t+1}=\arg\max_\theta Q(\theta; \theta^t) θt+1=argθmaxQ(θ;θt)

2. 变分推断

变分推断通过使用已知简单分布来逼近需推断的复杂分布,并通过限制近似分布的类型,从而得到一种局部最优、但具有确定解的近似后验分布。

在现实任务中,E步对 p ( z ∣ x , θ t ) p(z\mid x,\theta^t) p(zx,θt)的推断可能因为 z z z的模型复杂而难以进行,可借助变分推断,令 q ( z ) = p ( z ∣ x , θ t ) q(z)=p(z\mid x,\theta^t) q(z)=p(zx,θt),假设 z z z服从分布:
q ( z ) = ∏ i = 1 M q i ( z i ) q(z)=\prod_{i=1}^Mq_i(z_i) q(z)=i=1Mqi(zi)

可求得最优分布 q j ∗ q_j^* qj
ln ⁡ q j ∗ ( z j ) = E i ≠ j [ ln ⁡ p ( x , z ) ] + c o n s t ⇒ q j ∗ ( z j ) = exp ⁡ ( E i ≠ j [ ln ⁡ p ( x , z ) ] ) ∫ exp ⁡ ( E i ≠ j [ ln ⁡ p ( x , z ) ] ) d z j \ln q_j^*(z_j)=E_{i\neq j}[\ln p(x,z)]+const\\ \Rightarrow q_j^*(z_j)=\frac{\exp(E_{i\neq j}[\ln p(x,z)])}{\int \exp(E_{i\neq j}[\ln p(x,z)])dz_j} lnqj(zj)=Ei̸=j[lnp(x,z)]+constqj(zj)=exp(Ei̸=j[lnp(x,z)])dzjexp(Ei̸=j[lnp(x,z)])

若隐变量的拆解或变量子集的分布假设不当,则会导师变分法效率低。


如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~

你可能感兴趣的:(机器学习)