变分自动编码器中的变分是什么意思,和泛函中的变分概念一样吗?

关注者
163
被浏览
44,057
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

说下我自己的理解:

  1. 变分自编码器的变分和泛函中的变分概念是一样的。泛函中的变分指求泛函的极值,具体地,在变分自编码器中,“泛函”体现在我们引入的分布族 q(z;v) 与想推断的后验分布 p(z|x) 之间的KL散度,即 KL(q(z;v)||p(z|x)) ;极值体现在我们想 \arg\min_{v} KL(q(z;v)||p(z|x))
  2. 1中的 \arg\min_{v} KL(q(z;v)||p(z|x)) 是什么东西?其实这就是变分推断的核心,那么如何变分推断开始,一步步导出变分自编码器呢?这里先说结论(个人感觉从EM开始出发比较好理顺思路):传统EM算法的E步假设能精确求解后验 p(z|x) ,但是当后验实际上并非tractable的话,我们可以引入变分推断得到变分EM,而变分自编码器其实就可以看作变分EM的神经网络版本(这里变分推断的求解走的是Reparameterization gradients那一套)。有兴趣的可以看看下面比较详细的过程。

1. EM算法

EM算法用于求解带有隐变量的参数估计问题,其流程就是反复迭代下图中的(b)和(c),分别表示E步和M步[1]:

具体地,对数边际似然\log p(x;\theta)可以分解为:

\begin{align} \log p(x;\theta)&=\sum_zq(z)\log p(x;\theta)\\ &=\sum_zq(z)(\log p(x,z;\theta)-\log p(z|x;\theta))\\ &=\sum_zq(z)\frac{\log p(x,z;\theta)}{q(z)}-\sum_zq(z)\frac{\log p(z|x;\theta)}{q(z)}\\ &=ELBO(q,x;\theta)+KL(q(z)||p(z|x;\theta)) \tag{1} \end{align}

显然,可以按照上图所示,不断重复E、M两步使得\log p(x;\theta)逐渐变大:

  • (a)图:第t次迭代的初始状态,此时参数为\theta_t,并且通常有KL(q(z)||p(z|x;\theta))>0
  • (b)图:E步。固定参数\theta_t,找到分布q_{t+1}(z)尽可能接近后验p(z|x;\theta_t),使得KL(q_{t+1}(z)||p(z|x;\theta_t))尽可能小,从而使得ELBO(q,x;\theta_t)尽可能接近\log p(x;\theta_t)。在传统EM中,考虑的是理想情况,即令q_{t+1}(z)=p(z|x;\theta_t)使得KL(q_{t+1}(z)||p(z|x;\theta_t))=0,这时ELBO(q,x;\theta_t)=\log p(x;\theta_t)
  • (c)图:M步。固定分布q_{t+1}(z),寻找参数\theta_{t+1},使得ELBO(q_{t+1},x;\theta_{t+1})最大。


2. 变分推断

先用几句话介绍变分推断:我们感兴趣的目标是推断出后验分布p(z|x)。但是当我们的目标后验概率p(z|x)intractable时,变分推断的核心思想是引入参数化的变分分布族,将inference问题转化为optimization问题。如下图所示[2]:

由于后验p(z|x)无法直接inference,故引入变分分布族q(z;v),参数为v(上图中的椭圆为其参数空间),再利用KL散度作为两者之间距离的度量。如此,inference问题转化为如下的泛函optimization问题:

\begin{align}v^*&=\arg\min_{v} KL(q(z;v)||p(z|x)) \tag{2}\\&=\arg\max_{v} ELBO(v) \tag{3}\end{align}

注:这里假定模型参数\theta已知,故忽略。

将公式(2)转化到(3)的原因是:在KL散度中,p(z|x)仍然是intractable的,所以根据式(1)可以将其转化到(3)的形式。

在变分推断中,变分分布族的复杂性决定了优化问题的复杂性。一个最简单的假设就是平均场假设,即z可以拆解成多组相互独立的变量,即:

\begin{align} q(z;v)=\prod_{m=1}^Mq_m(z_m;v_m) \tag{4} \end{align}

如此,可以通过坐标上升法迭代地优化每个q_m(z_m;v_m)

\begin{align} q_m(z_m;v_m^*)\propto\exp\{\mathbb{E}_{-m}[\log p(z,x)]\} \tag{5} \end{align}

进一步地,我们可以假设Conditionally conjugate models,这样式(5)具有闭式解。

如果式(5)没有闭式解或者平均场假设太强不适应怎么办呢?回退到式(3),我们可以采用黑盒变分推断求解,具体地,可以分为Score gradients和Reparameterization gradients两类方法:

2.1 Score gradients

首先将ELBO(v)关于参数v的梯度写成期望的形式:

\begin{align} \nabla_vELBO(v)=\mathbb{E}_{q(z;v)}[\underbrace{\nabla_v \log q(z;v)}_{score \;function}\underbrace{(\log p(x,z)-\log q(z;v))}_{instantaneous\;ELBO}] \tag{6} \end{align}

之后,采用MCMC的思路:先从变分分布q(z;v)中采样,再依次计算\nabla_v \log q(z;v),\log p(x,z),\log q(z;v)得到\nabla_vELBO(v)(取多个样本取平均值),最后进行梯度更新即可。

2.2 Reparameterization gradients

假设变分分布q(z;v)可以由变换得到,且变分参数v是变换的一部分,具体地:

\begin{align} \epsilon&\sim s(\epsilon)\\ z&=t(\epsilon,v)\\ &\rightarrow z\sim q(z;v) \end{align} \\

举个高斯分布的例子:

\begin{align} \epsilon&\sim \mathcal{N}(0,1)\\ z&=\epsilon\sigma+\mu\\ &\rightarrow z\sim \mathcal{N}(\mu,\sigma^2) \end{align} \\

类似Score gradients,Reparameterization gradients也可以将ELBO关于参数的梯度写成期望的形式,不过不再是关于q(z;v)的期望,而是关于s(\epsilon)的期望:

\begin{align} \nabla_vELBO(v)=\mathbb{E}_{s(\epsilon)}[\underbrace{\nabla_z[\log p(x,z)-\log q(z;v)]}_{gradient\;of\; instananeous \;ELBO}\underbrace{\nabla_vt(\epsilon,v)}_{gradient\; of\; transformation}] \tag{8} \end{align}

之后的思路和Score gradients一致,不过换成了从s(\epsilon)中采样,不再重复。


3. 变分EM

变分EM其实非常简单。前面已经提到,传统EM的E步的目的是最小化KL(q(z)||p(z|x;\theta)),且其假设的是最理想的情况:后验p(z|x;\theta)tractable。那么当后验p(z|x;\theta)并非tractable的时候怎么办呢?巧了,变分推断解决的不就是这个问题吗?也就是说,将传统EM的E步用变分推断的思路去做就可以了。而这就是变分EM。

如此,EM的E步和M步的目标都是最大化ELBO,不过优化的参数不同:

  • E步:v^*=\arg\max_v ELBO(v)
  • M步:\theta^*=\arg\max_{\theta} ELBO(\theta)


4. 变分自编码器

再继续往前走,我们可以发现,其实变分自编码器可以看作是变分EM的神经网络版本。只不过还需要补充下面几点:

  • E步的变分推断走的是Reparameterization gradients那一套;
  • 变分EM的E步中,每个隐变量z_i对应一个参数v_iv_i是通过梯度下降不断优化得到的,注意,梯度下降优化的对象是v_i;而变分自编码器将E步当作了推断网络,网络的输出是参数v_i反向传播优化的是神经网络的权重\phi,也就是说将隐变量z_i对应的参数v_i又进行了一次参数化,通过一个共享的神经网络来输出所有样本的变分参数,这也叫做Amortized Inference;
  • 不仅把E步当作推断网络,还把M步当作生成网络,如此一趟正向-反向传播下来,变分参数和模型参数同时得到了优化。

因此,把变分EM的E步和M步合起来,也就得到了变分自编码器的目标函数(\phi,\theta分别表示推断网络和生成网络的权重参数):

\begin{align} \max_{\phi,\theta}ELBO(z,x;\phi,\theta)&=\max_{\phi,\theta}\mathbb{E}_{z\sim q(z;\phi)}[\log \frac{p(x|z;\theta)p(z;\theta)}{q(z;\phi)}]\\ &=\max_{\phi,\theta}\mathbb{E}_{z\sim q(z;\phi)}[\log p(x|z;\theta)]-KL(q(z|x;\phi)||p(z;\theta))) \tag{9}\\ &=\max_{\phi,\theta}\mathbb{E}_{\epsilon\sim p(\epsilon)}[\log p(x|g(\phi,\epsilon);\theta)]-KL(q(z|x;\phi)||p(z;\theta))) \tag{10} \end{align}

其中,式(9)到(10)是Reparameterization的过程,z=g(\phi,\epsilon)=\mu+\sigma\epsilon


5. 参考资料

  1. 邱锡鹏, 2020. 神经网络与深度学习. 机械工业出版社.
  2. David M. Blei. Variational Inference: foundations and innovations.