信号处理中的优化算法

junhengwang / 2023-09-03 / 原文

1. EM算法

EM算法主要用来解决具有隐变量的混合模型的参数估计问题。做参数估计的时候,一般在比较简单的模型情况下,是直接可以得出解析解的。比如说常见的MLE问题,可通过直接求导得到结果:

\[\theta_{\mathrm{MLE}} = \arg \max_{\theta} p(x|\theta) = \arg \max_{\theta} \log p(x|\theta) \]

其中,为简化运算引入了\(\log\)函数,称\(\log p(x|\theta)\)为“对数似然函数”。但是,对于含有隐变量的混合模型,直接求解析解是非常困难的,甚至没有解析解。

EM算法的迭代公式为:

\[\theta^{(t+1)} = \arg \max_{\theta} \mathbb{E}_{z|x, \theta^{(t)}}[\log p(x,z|\theta)]= \arg \max_{\theta} \int_{z} \log p(x,z|\theta) p(z|x, \theta^{(t)}) \text{ d}z \]

其中,\(x\)是数据,\(z\)是隐变量,\(p(z|x, \theta^{(t)})\)是后验,\(\log p(x,z|\theta)\)称为对数联后概率or对数完全数据。E-Step就是写出\(\mathbb{E}_{z|x, \theta^{(t)}}[\log p(x,z|\theta)]\)的表达式,M-Step就是让这个期望最大。

\[\begin{aligned} \log p(x|\theta) = & \log \dfrac{p(x, \theta)}{p(\theta)} = \log \dfrac{p(x, \theta)p(z|x, \theta)}{p(\theta)p(z|x, \theta)}\\ = & \log \dfrac{p(x, \theta, z)}{p(\theta)p(z|x, \theta)} = \log \dfrac{p(x, z |\theta)p(\theta)}{p(\theta)p(z|x, \theta)}\\ = & \log p(x,z|\theta) - \log p(z|x,\theta) \end{aligned} \]

两边同时求期望:

\[\begin{aligned} 左边 &= \int_{z}\log p(x|\theta) \cdot p(z|x, \theta^{(t)}) \text{ d}z \\ &= \log p(x|\theta) \int_{z} p(z|x, \theta^{(t)}) \text{ d}z \\ &= \log p(x|\theta) = 左边什么都没做 \end{aligned} \]

\[\begin{aligned} 右边 &= \int_{z} \log p(x,z|\theta) \cdot p(z|x, \theta^{(t)}) \text{ d}z - \int_{z} \log p(z|x,\theta) \cdot p(z|x, \theta^{(t)}) \text{ d}z\\ &= Q(\theta, \theta^{(t)}) - H(\theta, \theta^{(t)}) \end{aligned} \]

则由定义直接可得:\(Q(\theta^{(t+1)}, \theta^{(t)}) \geq Q(\theta, \theta^{(t)}) \Rightarrow Q(\theta^{(t+1)}, \theta^{(t)}) \geq Q(\theta^{(t)}, \theta^{(t)})\)

下面来证明\(H(\theta^{(t+1)}, \theta^{(t)}) \leq H(\theta^{(t)}, \theta^{(t)})\)

\[\begin{aligned} H(\theta^{(t+1)}, \theta^{(t)}) - H(\theta^{(t)}, \theta^{(t)}) &= \int_{z} \log p(z|x,\theta^{(t+1)}) \cdot p(z|x, \theta^{(t)}) \text{ d}z - \int_{z} \log p(z|x,\theta^{(t)}) \cdot p(z|x, \theta^{(t)}) \text{ d}z \\ &= \int_{z} \log \dfrac{p(z|x,\theta^{(t+1)})}{p(z|x, \theta^{(t)})} \cdot p(z|x, \theta^{(t)}) \text{ d}z \\ &= -KL\left[p(z|x, \theta^{(t)}) || p(z|x,\theta^{(t+1)})\right] \\ &\leq 0 \end{aligned} \]

其实,这里除了用KL散度,也可以使用Jensen不等式,具体如果有需要再查阅资料。

1.2 EM算法的公式推导

\[\begin{aligned} \log p(x|\theta) &= \log p(x,z|\theta) - \log p(z|x, \theta) \\ &= \log \dfrac{p(x,z|\theta)}{q(z)} - \log \dfrac{p(z|x, \theta)}{q(z)} \end{aligned} \]

其中,这里引入了一个关于\(z\)的概率分布\(q(z)\)。下面等式两边分别关于\(q(z)\)求期望。

\[\begin{aligned} 左边 &= \int_{z}\log p(x|\theta) \cdot q(z) \text{ d}z \\ &= \log p(x|\theta) \int_{z} q(z)\text{ d}z \\ &= \log p(x|\theta) = 左边什么都没做 \end{aligned} \]

\[\begin{aligned} 右边 &= \int_{z} \log \dfrac{p(x,z|\theta)}{q(z)} \cdot q(z) \text{ d}z - \int_{z} \log \dfrac{p(z|x, \theta)}{q(z)} \cdot q(z) \text{ d}z\\ &= \mathrm{ELBO} + KL\left[q(z)||p(z|x, \theta) \right] \end{aligned} \]

其中,\(\mathrm{ELBO} = \text{evidence lower bound}\),故名思意\(\mathrm{ELBO}\)\(\log p(x|\theta)\)的一个下界。

blob