Unconditional model 假设有观测变量 x \bold{x} x , 真实分布 p ( x ) p(\bold{x}) p ( x ) 是未知的,我们想用模型 p θ ( x ) p_{\boldsymbol{\theta}}(\bold{x}) p θ ( x ) 去近似这个未知分布,参数为 θ \boldsymbol{\theta} θ :
p θ ( x ) ≈ p ( x ) (1) p_{\boldsymbol{\theta}}(\bold{x}) \approx p(\bold{x}) \tag{1} p θ ( x ) ≈ p ( x ) ( 1 ) TODO: 最大化极大似然 最大化对数似然
ML = 最小化 KL
ML and MAP
我们可以使用最大似然 (Maximum Likelihood) 去找到参数为 θ \boldsymbol{\theta} θ ,从而得到我们的模型 p θ ( x ) p_{\boldsymbol{\theta}}(\bold{x}) p θ ( x ) 。
但是我们不知道 p ( x ) p(\bold{x}) p ( x ) 是什么样的,例如如果其分布符合多元高斯分布,则可以比较容易的求出。但真实的 p ( x ) p(\bold{x}) p ( x ) 往往是非常复杂的,x \bold{x} x 可以是文本,图片,甚至是graph。
我们知道神经网络模型 (Neural Network, NN) 能够表示复杂的模型,如果使用NN 表示 p θ ( x ) p_{\boldsymbol{\theta}}(\bold{x}) p θ ( x ) ,NN 的参数为 θ \boldsymbol{\theta} θ 。下面以一个样本为例,
假设 x i ∼ p ( x ) \bold{x}_i \sim p(\bold{x}) x i ∼ p ( x ) 是一个样本,我们想要最大似然 p θ ( x i ) p_{\boldsymbol{\theta}}(\bold{x}_i) p θ ( x i ) ,在 NN 中我们使用梯度下降优化目标函数 我们想要求 p θ ( x i ) p_{\boldsymbol{\theta}}(\bold{x}_i) p θ ( x i ) 的梯度,去更新 NN 的参数,从而达到最大似然的目的 将已知样本 x i \bold{x}_i x i 作为 NN 输入,θ \boldsymbol{\theta} θ 作为 NN 参数,输出为一个预测的概率值,但是我们没有监督信息,无法设计损失函数 因此 p θ ( x ) p_{\bold{\theta}}(\bold{x}) p θ ( x ) is intractable.
Deep Latent Variable Models For the intractbility of p θ ( x ) p_{\bold{\theta}}(\bold{x}) p θ ( x ) ,我们引入隐变量 z \bold{z} z ,对于无条件的观测变量 x \bold{x} x ,加入隐变量 z \bold{z} z ,得到联合分布 p θ ( x , z ) p_{\bold{\theta}}(\bold{x}, \bold{z}) p θ ( x , z ) ,称为隐变量模型,此时 p θ ( x ) p_{\bold{\theta}}(\bold{x}) p θ ( x ) 可用边际分布来表示:
p θ ( x ) = ∫ p θ ( x , z ) d z (2) p_{\bold{\theta}}(\bold{x}) = \int p_{\boldsymbol{\theta}}(\bold{x}, \bold{z}) d\bold{z} \tag{2} p θ ( x ) = ∫ p θ ( x , z ) d z ( 2 ) 也称为 marginal likelihood 或 model evidence。这种在 x \bold{x} x 上隐式的分布非常灵活。
我们知道对于隐变量模型:
p θ ( x , z ) = p θ ( z ) p θ ( x ∣ z ) (3) p_{\boldsymbol{\theta}}(\bold{x}, \bold{z}) = p_{\boldsymbol{\theta}}(\bold{z}) p_{\boldsymbol{\theta}}(\bold{x} | \bold{z}) \tag{3} p θ ( x , z ) = p θ ( z ) p θ ( x ∣ z ) ( 3 ) p θ ( z ) p_{\boldsymbol{\theta}}(\bold{z}) p θ ( z ) 称为先验分布 (prior distribution),p θ ( x ∣ z ) p_{\boldsymbol{\theta}}(\bold{x} | \bold{z}) p θ ( x ∣ z ) 是条件分布 (conditional distribution)。
若 z \bold{z} z 是离散的,且 p θ ( x ∣ z ) p_{\boldsymbol{\theta}}(\bold{x} | \bold{z}) p θ ( x ∣ z ) 是高斯分布,则 x \bold{x} x 是有限混合高斯分布 若 z \bold{z} z 是连续的,且 p θ ( x ∣ z ) p_{\boldsymbol{\theta}}(\bold{x} | \bold{z}) p θ ( x ∣ z ) 是高斯分布,则 x \bold{x} x 是无限混合高斯分布 若用 NN 表示 p θ ( x , z ) p_{\boldsymbol{\theta}}(\bold{x}, \bold{z}) p θ ( x , z ) ,θ \boldsymbol{\theta} θ 是 NN 的参数,我们称其为 deep latent variable model (DLVM)。即先验或者条件分布足够简单,例如将 p θ ( z ) p_{\boldsymbol{\theta}}(\bold{z}) p θ ( z ) 表示为高斯分布,p θ ( x ∣ z ) p_{\boldsymbol{\theta}}(\bold{x} | \bold{z}) p θ ( x ∣ z ) 表示为伯努利分布。则得到的边际分布 p θ ( x ) p_{\bold{\theta}}(\bold{x}) p θ ( x ) 仍然足够复杂,模型具有很强的表达能力。
Example DLVM for multivariate Bernoulli data 假设 D D D 维二元数据 x ∈ { 0 , 1 } D \bold{x} \in \{0,1\}^D x ∈ { 0 , 1 } D ,我们让先验的 PDF 为 p θ ( z ) = N ( z ; 0 , I ) p_{\boldsymbol{\theta}}(\bold{z}) = N(\bold{z};0,\bold{I}) p θ ( z ) = N ( z ; 0 , I ) ,我们可以把 θ \boldsymbol{\theta} θ 去掉,因为没有参数。让 log p θ ( x ∣ z ) \text{log}p_{\boldsymbol{\theta}}(\bold{x} | \bold{z}) log p θ ( x ∣ z ) 是一个多元伯努利分布,每一维独立,其概率使用 NN 从 z \bold{z} z 计算出,
p ( z ) = N ( z ; 0 , I ) (4) p(\bold{z}) = N(\bold{z};0,\bold{I}) \tag{4} p ( z ) = N ( z ; 0 , I ) ( 4 ) p = Decoder θ ( z ) (5) \bold{p} = \text{Decoder}_{\boldsymbol{\theta}}(\bold{z}) \tag{5} p = Decoder θ ( z ) ( 5 ) 其中 Decoder 的最后一层接了一个 sigmoid 函数,∀ p j ∈ p : 0 ≤ p j ≤ 1 \forall p_j \in \bold{p}: 0 \leq p_j \leq 1 ∀ p j ∈ p : 0 ≤ p j ≤ 1 ,x \bold{x} x 是一个样本,我们要最大如下的对数似然:
log p θ ( x ∣ z ) = ∑ j = 1 D log p θ ( x j ∣ z ) (6) \text{log}p_{\boldsymbol{\theta}}(\bold{x} | \bold{z}) = \sum_{j=1}^D \text{log}p_{\boldsymbol{\theta}}(x_j | \bold{z}) \tag{6} log p θ ( x ∣ z ) = j = 1 ∑ D log p θ ( x j ∣ z ) ( 6 ) p θ ( x j ∣ z ) p_{\boldsymbol{\theta}}(x_j | \bold{z}) p θ ( x j ∣ z ) 是一个二元的伯努利分布,
p θ ( x j ∣ z ) = { p j if x j = 1 1 − p j if x j = 0 (7) p_{\boldsymbol{\theta}}(x_j | \bold{z}) = \begin{cases} p_j & \text{if }x_j = 1 \\ 1 - p_j & \text{if }x_j = 0 \end{cases} \tag{7} p θ ( x j ∣ z ) = { p j 1 − p j if x j = 1 if x j = 0 ( 7 ) 使用统一形式可以表示为,
p θ ( x j ∣ z ) = p j x j ( 1 − p j ) ( 1 − x j ) (8) p_{\boldsymbol{\theta}}(x_j | \bold{z}) = p_j^{x_j} (1 - p_j)^{(1-x_j)} \tag{8} p θ ( x j ∣ z ) = p j x j ( 1 − p j ) ( 1 − x j ) ( 8 ) 带入 ( 6 ) (6) ( 6 ) 中可以得到,
log p θ ( x ∣ z ) = ∑ j = 1 D log p θ ( x j ∣ z ) = ∑ j = 1 D x j log p j + ( 1 − x j ) log ( 1 − p j ) (9) \begin{aligned} \text{log}p_{\boldsymbol{\theta}}(\bold{x} | \bold{z}) &= \sum_{j=1}^D \text{log}p_{\boldsymbol{\theta}}(x_j | \bold{z}) \\ &= \sum_{j=1}^D x_j \log p_j + (1-x_j) \log (1-p_j) \end{aligned} \tag{9} log p θ ( x ∣ z ) = j = 1 ∑ D log p θ ( x j ∣ z ) = j = 1 ∑ D x j log p j + ( 1 − x j ) log ( 1 − p j ) ( 9 ) 因此对于 p θ ( x , z ) = p θ ( z ) p θ ( x ∣ z ) = p ( z ) p θ ( x ∣ z ) p_{\boldsymbol{\theta}}(\bold{x}, \bold{z}) = p_{\boldsymbol{\theta}}(\bold{z}) p_{\boldsymbol{\theta}}(\bold{x} | \bold{z})=p(\bold{z}) p_{\boldsymbol{\theta}}(\bold{x} | \bold{z}) p θ ( x , z ) = p θ ( z ) p θ ( x ∣ z ) = p ( z ) p θ ( x ∣ z )
是可以求梯度的,我们最大其对数似然,
∇ θ log p θ ( x , z ) = ∇ θ log ( p ( z ) p θ ( x ∣ z ) ) = ∇ θ ( log p ( z ) + log p θ ( x ∣ z ) ) = ∇ θ log p θ ( x ∣ z ) (10) \begin{aligned} \nabla_{\boldsymbol{\theta}} \log p_{\boldsymbol{\theta}}(\bold{x}, \bold{z}) &= \nabla_{\boldsymbol{\theta}} \log (p(\bold{z}) p_{\boldsymbol{\theta}}(\bold{x} | \bold{z})) \\ &= \nabla_{\boldsymbol{\theta}} (\log p(\bold{z}) + \log p_{\boldsymbol{\theta}}(\bold{x} | \bold{z})) \\ &= \nabla_{\boldsymbol{\theta}} \log p_{\boldsymbol{\theta}}(\bold{x} | \bold{z}) \end{aligned} \tag{10} ∇ θ log p θ ( x , z ) = ∇ θ log ( p ( z ) p θ ( x ∣ z )) = ∇ θ ( log p ( z ) + log p θ ( x ∣ z )) = ∇ θ log p θ ( x ∣ z ) ( 10 ) 因此 p θ ( x , z ) p_{\boldsymbol{\theta}}(\bold{x}, \bold{z}) p θ ( x , z ) is tractable。
根据上述假定,
∇ θ p θ ( x ) = ∫ ∇ θ p θ ( x , z ) d z (11) \nabla_{\boldsymbol{\theta}} p_{\boldsymbol{\theta}}(\bold{x}) = \int \nabla_{\boldsymbol{\theta}} p_{\boldsymbol{\theta}}(\bold{x} , \bold{z}) d\bold{z} \tag{11} ∇ θ p θ ( x ) = ∫ ∇ θ p θ ( x , z ) d z ( 11 ) 之前我们知道 p θ ( x ) p_{\bold{\theta}}(\bold{x}) p θ ( x ) intractable,但是如果我们引入 DLVM,只要能够对 ( 11 ) (11) ( 11 ) 积分,我们就可以得到 p θ ( x ) p_{\bold{\theta}}(\bold{x}) p θ ( x ) 的梯度,从而使得 p θ ( x ) p_{\bold{\theta}}(\bold{x}) p θ ( x ) tractable。
Intractabilities 但 p θ ( x , z ) p_{\boldsymbol{\theta}}(\bold{x}, \bold{z}) p θ ( x , z ) 是一个 NN 模型,无法对其求积分,因此 ( 11 ) (11) ( 11 ) 中的积分没有解析解,我们就无法计算梯度。
此外,the intractability of p θ ( x ) p_{\bold{\theta}}(\bold{x}) p θ ( x ) 与 后验分布 (Posterior Distributiion) p θ ( z ∣ x ) p_{\bold{\theta}}(\bold{z}|\bold{x}) p θ ( z ∣ x ) 的 intractability 有关,
p θ ( z ∣ x ) = p θ ( x , z ) p θ ( x ) (12) p_{\bold{\theta}}(\bold{z}|\bold{x}) = \frac{p_{\boldsymbol{\theta}}(\bold{x} , \bold{z})}{p_{\bold{\theta}}(\bold{x})} \tag{12} p θ ( z ∣ x ) = p θ ( x ) p θ ( x , z ) ( 12 ) 联合分布 p θ ( x , z ) p_{\boldsymbol{\theta}}(\bold{x} , \bold{z}) p θ ( x , z ) 由之前的例子我们已经可以算出 ,tractable 的posterior p θ ( z ∣ x ) p_{\bold{\theta}}(\bold{z}|\bold{x}) p θ ( z ∣ x ) 会导致 tractable 的 marginal likelihood p θ ( x ) p_{\bold{\theta}}(\bold{x}) p θ ( x ) ,反之亦然。
为了将 DLVM intractable的后验和学习问题转化为tractable问题,我们引出下面的 inference model。
Encoder or Approximate Posterior 我们引入一个参数推断模型 (inference model ) q ϕ ( z ∣ x ) q_{\boldsymbol{\phi}}(\bold{z}|\bold{x}) q ϕ ( z ∣ x ) 去近似后验,这个模型也称为 encoder ,ϕ \boldsymbol{\phi} ϕ 是推断模型的参数,称为 变分参数 (variational parameters ),
q ϕ ( z ∣ x ) ≈ p θ ( z ∣ x ) (13) q_{\boldsymbol{\phi}}(\bold{z}|\bold{x}) \approx p_{\boldsymbol{\theta}}(\bold{z}|\bold{x}) \tag{13} q ϕ ( z ∣ x ) ≈ p θ ( z ∣ x ) ( 13 ) 我们会解释,这种对后验的近似会帮助最大化 marginal likelihood p θ ( x ) p_{\boldsymbol{\theta}}(\bold{x}) p θ ( x ) 。
类似于DLVM,可以使用 NN 表示 q ϕ ( z ∣ x ) q_{\boldsymbol{\phi}}(\bold{z}|\bold{x}) q ϕ ( z ∣ x ) ,ϕ \boldsymbol{\phi} ϕ 是 NN 的参数,例如
( μ , log σ ) = Encoder ϕ ( x ) (14) (\boldsymbol{\mu},\log \boldsymbol{\sigma}) = \text{Encoder}_{\boldsymbol{\phi}}(\bold{x}) \tag{14} ( μ , log σ ) = Encoder ϕ ( x ) ( 14 ) q ϕ ( z ∣ x ) = N ( z ; μ , diag ( σ ) ) (15) q_{\boldsymbol{\phi}}(\bold{z}|\bold{x}) = N(\bold{z};\boldsymbol{\mu}, \text{diag} (\boldsymbol{\sigma}) )\tag{15} q ϕ ( z ∣ x ) = N ( z ; μ , diag ( σ )) ( 15 ) σ \boldsymbol{\sigma} σ 为标准差 ≥ 0 \geq 0 ≥ 0 ,让 NN 输出为总是 ≥ 0 \geq 0 ≥ 0 是困难的,因此加入 log σ \log \boldsymbol{\sigma} log σ 使得 NN 输出不受限制。
Evidence Lower Bound (ELBO) 下面推导,加入 inference model q ϕ ( z ∣ x ) q_{\boldsymbol{\phi}}(\bold{z}|\bold{x}) q ϕ ( z ∣ x ) 的好处,对于 marginal likelihood 我们有:
log p θ ( x ) = E q ϕ ( z ∣ x ) [ log p θ ( x ) ] = E q ϕ ( z ∣ x ) [ log p θ ( x , z ) p θ ( z ∣ x ) ] = E q ϕ ( z ∣ x ) [ log [ p θ ( x , z ) p θ ( z ∣ x ) q ϕ ( z ∣ x ) q ϕ ( z ∣ x ) ] ] = E q ϕ ( z ∣ x ) [ log [ p θ ( x , z ) q ϕ ( z ∣ x ) ] ] ⏟ L θ , ϕ ( x ) + E q ϕ ( z ∣ x ) [ log [ q ϕ ( z ∣ x ) p θ ( z ∣ x ) ] ] ⏟ D K L ( q ϕ ( z ∣ x ) ∣ ∣ p θ ( z ∣ x ) ) (16) \begin{aligned} \log p_{\boldsymbol{\theta}}(\bold{x}) & = \mathbb{E}_{q_{\boldsymbol{\phi}}(\bold{z}|\bold{x})}[\log p_{\boldsymbol{\theta}}(\bold{x})] \\ &= \mathbb{E}_{q_{\boldsymbol{\phi}}(\bold{z}|\bold{x})} \Big[\log \frac{p_{\boldsymbol{\theta}}(\bold{x,z})}{p_{\boldsymbol{\theta}}(\bold{z|x})}\Big] \\ &= \mathbb{E}_{q_{\boldsymbol{\phi}}(\bold{z}|\bold{x})} \Big[ \log \Big[\frac{p_{\boldsymbol{\theta}}(\bold{x,z})}{p_{\boldsymbol{\theta}}(\bold{z|x})} \frac{q_{\boldsymbol{\phi}}(\bold{z}|\bold{x})}{q_{\boldsymbol{\phi}}(\bold{z}|\bold{x})}\Big] \Big]\\ &= \underbrace{\mathbb{E}_{q_{\boldsymbol{\phi}}(\bold{z}|\bold{x})} \Big[ \log \Big[\frac{p_{\boldsymbol{\theta}}(\bold{x,z})}{q_{\boldsymbol{\phi}}(\bold{z|x})} \Big] \Big]}_{\mathcal{L}_{\boldsymbol{\theta}, \boldsymbol{\phi}}(\bold{x})} + \underbrace{\mathbb{E}_{q_{\boldsymbol{\phi}}(\bold{z}|\bold{x})} \Big[ \log \Big[\frac{q_{\boldsymbol{\phi}}(\bold{z|x})}{p_{\boldsymbol{\theta}}(\bold{z|x})} \Big] \Big]}_{D_{KL}(q_{\boldsymbol{\phi}}(\bold{z|x}) || p_{\boldsymbol{\theta}}(\bold{z|x}))} \end{aligned} \tag{16} log p θ ( x ) = E q ϕ ( z ∣ x ) [ log p θ ( x )] = E q ϕ ( z ∣ x ) [ log p θ ( z∣x ) p θ ( x , z ) ] = E q ϕ ( z ∣ x ) [ log [ p θ ( z∣x ) p θ ( x , z ) q ϕ ( z ∣ x ) q ϕ ( z ∣ x ) ] ] = L θ , ϕ ( x ) E q ϕ ( z ∣ x ) [ log [ q ϕ ( z∣x ) p θ ( x , z ) ] ] + D K L ( q ϕ ( z∣x ) ∣∣ p θ ( z∣x )) E q ϕ ( z ∣ x ) [ log [ p θ ( z∣x ) q ϕ ( z∣x ) ] ] ( 16 ) 由上可知,
D K L ( q ϕ ( z ∣ x ) ∣ ∣ p θ ( z ∣ x ) ) ≥ 0 (17) D_{KL}(q_{\boldsymbol{\phi}}(\bold{z|x}) || p_{\boldsymbol{\theta}}(\bold{z|x})) \geq 0 \tag{17} D K L ( q ϕ ( z∣x ) ∣∣ p θ ( z∣x )) ≥ 0 ( 17 ) 当 q ϕ ( z ∣ x ) q_{\boldsymbol{\phi}}(\bold{z|x}) q ϕ ( z∣x ) 等于 true posterior distribution 时,上式为0.
( 16 ) (16) ( 16 ) 中的第一项称为 variational lower bound ,或 evidence lower bound (ELBO):
L θ , ϕ ( x ) = E q ϕ ( z ∣ x ) [ log p θ ( x , z ) − log q ϕ ( z ∣ x ) ] (18) \mathcal{L}_{\boldsymbol{\theta}, \boldsymbol{\phi}}(\bold{x}) = \mathbb{E}_{q_{\boldsymbol{\phi}}(\bold{z}|\bold{x})} [\log p_{\boldsymbol{\theta}}(\bold{x,z}) - \log q_{\boldsymbol{\phi}}(\bold{z|x})] \tag{18} L θ , ϕ ( x ) = E q ϕ ( z ∣ x ) [ log p θ ( x , z ) − log q ϕ ( z∣x )] ( 18 ) 由于 KL divergence的非负性,ELBO 是 log-likehood 的 low bound:
L θ , ϕ ( x ) = log p θ ( x ) − D K L ( q ϕ ( z ∣ x ) ∣ ∣ p θ ( z ∣ x ) ) ≤ log p θ ( x ) (19) \begin{aligned} \mathcal{L}_{\boldsymbol{\theta}, \boldsymbol{\phi}}(\bold{x}) &= \log p_{\boldsymbol{\theta}}(\bold{x}) - D_{KL}(q_{\boldsymbol{\phi}}(\bold{z|x}) || p_{\boldsymbol{\theta}}(\bold{z|x})) \\ &\leq \log p_{\boldsymbol{\theta}}(\bold{x}) \end{aligned} \tag{19} L θ , ϕ ( x ) = log p θ ( x ) − D K L ( q ϕ ( z∣x ) ∣∣ p θ ( z∣x )) ≤ log p θ ( x ) ( 19 ) 如果我们可以最大化 ELBO,则
它会近似最大化 marginal likelihood p θ ( x ) p_{\boldsymbol{\theta}}(\bold{x}) p θ ( x ) ,这是我们的目标,意味者我们的生成模型会边得更好 它会最小化我们对 true posterior p θ ( z ∣ x ) p_{\boldsymbol{\theta}}(\bold{z|x}) p θ ( z∣x ) 和近似分布 q ϕ ( z ∣ x ) q_{\boldsymbol{\phi}}(\bold{z|x}) q ϕ ( z∣x ) 之间的距离,所以 q ϕ ( z ∣ x ) q_{\boldsymbol{\phi}}(\bold{z|x}) q ϕ ( z∣x ) 会变的更好 SGD on the ELBO 最大化 ELBO 等价于最小化负的 ELBO,如果我们能够求出 ELBO 的梯度,则可以使用 SGD 来优化参数 ϕ \boldsymbol{\phi} ϕ 和 θ \boldsymbol{\theta} θ 。ELBO 相对于 generative model parameters θ \boldsymbol{\theta} θ 的梯度为:
∇ θ L θ , ϕ ( x ) = ∇ θ E q ϕ ( z ∣ x ) [ log p θ ( x , z ) − log q ϕ ( z ∣ x ) ] = E q ϕ ( z ∣ x ) [ ∇ θ ( log p θ ( x , z ) − log q ϕ ( z ∣ x ) ) ] = E q ϕ ( z ∣ x ) [ ∇ θ ( log p θ ( x , z ) ) ] ≃ ∇ θ ( log p θ ( x , z ) ) (20) \begin{aligned} \nabla_{\boldsymbol{\theta}} \mathcal{L}_{\boldsymbol{\theta}, \boldsymbol{\phi}}(\bold{x}) &= \nabla_{\boldsymbol{\theta}} \mathbb{E}_{q_{\boldsymbol{\phi}}(\bold{z}|\bold{x})} [\log p_{\boldsymbol{\theta}}(\bold{x,z}) - \log q_{\boldsymbol{\phi}}(\bold{z|x}) ] \\ &= \mathbb{E}_{q_{\boldsymbol{\phi}}(\bold{z}|\bold{x})} [\nabla_{\boldsymbol{\theta}}(\log p_{\boldsymbol{\theta}}(\bold{x,z}) - \log q_{\boldsymbol{\phi}}(\bold{z|x}))] \\ &= \mathbb{E}_{q_{\boldsymbol{\phi}}(\bold{z}|\bold{x})} [\nabla_{\boldsymbol{\theta}}(\log p_{\boldsymbol{\theta}}(\bold{x,z}))] \\ &\simeq \nabla_{\boldsymbol{\theta}}(\log p_{\boldsymbol{\theta}}(\bold{x,z})) \\ \end{aligned} \tag{20} ∇ θ L θ , ϕ ( x ) = ∇ θ E q ϕ ( z ∣ x ) [ log p θ ( x , z ) − log q ϕ ( z∣x )] = E q ϕ ( z ∣ x ) [ ∇ θ ( log p θ ( x , z ) − log q ϕ ( z∣x ))] = E q ϕ ( z ∣ x ) [ ∇ θ ( log p θ ( x , z ))] ≃ ∇ θ ( log p θ ( x , z )) ( 20 ) 最后一行我们使用 Monte Carlo 模拟去估计第3行的期望,其中 z \bold{z} z 是一个 random sampple from q ϕ ( z ∣ x ) q_{\boldsymbol{\phi}}(\bold{z|x}) q ϕ ( z∣x ) 。这是 ∇ θ L θ , ϕ ( x ) \nabla_{\boldsymbol{\theta}} \mathcal{L}_{\boldsymbol{\theta}, \boldsymbol{\phi}}(\bold{x}) ∇ θ L θ , ϕ ( x ) 的一个无偏梯度估计(只需要从下到上证明即可)。
对于 varational parameters ϕ \boldsymbol{\phi} ϕ 无偏梯度,由于 ELBO 是对 q ϕ ( z ∣ x ) q_{\boldsymbol{\phi}}(\bold{z|x}) q ϕ ( z∣x ) 求期望,而其又是 ϕ \boldsymbol{\phi} ϕ 的函数:
∇ ϕ L θ , ϕ ( x ) = ∇ ϕ E q ϕ ( z ∣ x ) [ log p θ ( x , z ) − log q ϕ ( z ∣ x ) ] ≠ E q ϕ ( z ∣ x ) [ ∇ ϕ ( log p θ ( x , z ) − log q ϕ ( z ∣ x ) ) ] (21) \begin{aligned} \nabla_{\boldsymbol{\phi}} \mathcal{L}_{\boldsymbol{\theta}, \boldsymbol{\phi}}(\bold{x}) &= \nabla_{\boldsymbol{\phi}} \mathbb{E}_{q_{\boldsymbol{\phi}}(\bold{z}|\bold{x})} [\log p_{\boldsymbol{\theta}}(\bold{x,z}) - \log q_{\boldsymbol{\phi}}(\bold{z|x})] \\ &\not= \mathbb{E}_{q_{\boldsymbol{\phi}}(\bold{z}|\bold{x})} [\nabla_{\boldsymbol{\phi}}(\log p_{\boldsymbol{\theta}}(\bold{x,z}) - \log q_{\boldsymbol{\phi}}(\bold{z|x}))] \end{aligned} \tag{21} ∇ ϕ L θ , ϕ ( x ) = ∇ ϕ E q ϕ ( z ∣ x ) [ log p θ ( x , z ) − log q ϕ ( z∣x )] = E q ϕ ( z ∣ x ) [ ∇ ϕ ( log p θ ( x , z ) − log q ϕ ( z∣x ))] ( 21 ) 在连续隐变量情况下,我们可以使用下面要介绍的重参数化技巧来得到 ELBO ϕ \boldsymbol{\phi} ϕ 的无偏梯度。
Reparameterization Trick Change of variables ( 21 ) (21) ( 21 ) 式中对 后验 q ϕ ( z ∣ x ) q_{\boldsymbol{\phi}}(\bold{z|x}) q ϕ ( z∣x ) 求期望, 要对随机变量 z \bold{z} z given x \bold{x} x 求多元积分,而 z \bold{z} z 是 通过 NN 得到的,是 ϕ \boldsymbol{\phi} ϕ 和 x \bold{x} x 的函数,由于 NN 的灵活性,我们可以认为 z \bold{z} z 是在 x \bold{x} x 和 ϕ \boldsymbol{\phi} ϕ 给定情况下,由另外一个随机变量 ϵ ∼ p ( ϵ ) \boldsymbol{\epsilon} \sim p(\boldsymbol{\epsilon}) ϵ ∼ p ( ϵ ) 经过可微和可逆的变换 g \bold{g} g 得到的,
z = g ϕ ( ϵ , x ) (22) \bold{z} = \bold{g}_{\boldsymbol{\phi}}(\boldsymbol{\epsilon}, \bold{x}) \tag{22} z = g ϕ ( ϵ , x ) ( 22 ) 这一操作称为 Reparameterization.
忽略 x \bold{x} x 和 ϕ \boldsymbol{\phi} ϕ ,因为它们都是给定的。则 z = g ( ϵ ) = ( g 1 ( ϵ 1 , . . . , ϵ n ) , . . . , g n ( ϵ 1 , . . . , ϵ n ) ) \bold{z} = \bold{g}(\boldsymbol{\epsilon}) = (g_1(\epsilon_1, ..., \epsilon_n), ..., g_n(\epsilon_1, ..., \epsilon_n)) z = g ( ϵ ) = ( g 1 ( ϵ 1 , ... , ϵ n ) , ... , g n ( ϵ 1 , ... , ϵ n )) 。
由于 g \bold{g} g 可逆,因此 存在逆映射 ϵ = ( ϵ 1 , . . . , ϵ n ) = ( h 1 ( z 1 , . . . , z n ) , . . . , h n ( z 1 , . . . , z n ) ) = h ( z ) \boldsymbol{\epsilon}=(\epsilon_1, ..., \epsilon_n) = (h_1(z_1, ..., z_n), ..., h_n(z_1, ..., z_n))=\bold{h}(\bold{z}) ϵ = ( ϵ 1 , ... , ϵ n ) = ( h 1 ( z 1 , ... , z n ) , ... , h n ( z 1 , ... , z n )) = h ( z ) ,因此我们有 z = g ( h ( z ) ) \bold{z} = \bold{g} (\bold{h}(\bold{z})) z = g ( h ( z )) ,根据链式法则:
∂ z ∂ z = ∂ g ∂ h ∂ h ∂ z = ∂ g ∂ ϵ ∂ h ∂ z (23) \frac{\partial \bold{z}}{\partial \bold{z}} = \frac{\partial \bold {g}}{\partial \bold{h}} \frac{\partial \bold {h}}{\partial \bold{z}} = \frac{\partial \bold {g}}{\partial \boldsymbol{\epsilon}} \frac{\partial \bold {h}}{\partial \bold{z}} \tag{23} ∂ z ∂ z = ∂ h ∂ g ∂ z ∂ h = ∂ ϵ ∂ g ∂ z ∂ h ( 23 ) 等式左边是单位矩阵 I \boldsymbol{I} I ,我们对两边取行列式,则有
1 = det ( I ) = det ( ∂ g ∂ ϵ ∂ h ∂ z ) = det ( ∂ g ∂ ϵ ) ⋅ det ( ∂ h ∂ z ) (24) 1 = \det (\boldsymbol{I}) = \det (\frac{\partial \bold {g}}{\partial \boldsymbol{\epsilon}} \frac{\partial \bold {h}}{\partial \bold{z}}) = \det \Big(\frac{\partial \bold {g}}{\partial \boldsymbol{\epsilon}}\Big) · \det \Big(\frac{\partial \bold {h}}{\partial \bold{z}}\Big) \tag{24} 1 = det ( I ) = det ( ∂ ϵ ∂ g ∂ z ∂ h ) = det ( ∂ ϵ ∂ g ) ⋅ det ( ∂ z ∂ h ) ( 24 ) q ϕ ( z ∣ x ) q_{\boldsymbol{\phi}}(\bold{z|x}) q ϕ ( z∣x ) 是随机变量函数的概率密度函数,则有
q ϕ ( z ∣ x ) = p ( ϵ ) ∣ det ( ∂ h ∂ z ) ∣ (25) q_{\boldsymbol{\phi}}(\bold{z|x}) = p(\boldsymbol{\epsilon}) \Big| \det \Big( \frac{\partial \bold {h}}{\partial \bold{z}} \Big)\Big| \tag{25} q ϕ ( z∣x ) = p ( ϵ ) ∣ ∣ det ( ∂ z ∂ h ) ∣ ∣ ( 25 ) 对 d z d\bold{z} d z 做变量替换 z = g ϕ ( ϵ , x ) \bold{z} = \bold{g}_{\boldsymbol{\phi}}(\boldsymbol{\epsilon}, \bold{x}) z = g ϕ ( ϵ , x ) ,则有
d z = ∣ det ( ∂ g ∂ ϵ ) ∣ d ϵ (26) d\bold{z} = \Big| \det \Big( \frac{\partial \bold {g}}{\partial \boldsymbol{\epsilon}}\Big) \Big| d \boldsymbol{\epsilon} \tag{26} d z = ∣ ∣ det ( ∂ ϵ ∂ g ) ∣ ∣ d ϵ ( 26 ) 因此
q ϕ ( z ∣ x ) d z = p ( ϵ ) ∣ det ( ∂ g ∂ ϵ ) ∣ ⋅ ∣ det ( ∂ h ∂ z ) ∣ = p ( ϵ ) d ϵ (27) q_{\boldsymbol{\phi}}(\bold{z|x}) d\bold{z} = p(\boldsymbol{\epsilon})\Big| \det \Big( \frac{\partial \bold {g}}{\partial \boldsymbol{\epsilon}}\Big) \Big|·\Big| \det \Big( \frac{\partial \bold {h}}{\partial \bold{z}} \Big)\Big| = p(\boldsymbol{\epsilon}) d \boldsymbol{\epsilon} \tag{27} q ϕ ( z∣x ) d z = p ( ϵ ) ∣ ∣ det ( ∂ ϵ ∂ g ) ∣ ∣ ⋅ ∣ ∣ det ( ∂ z ∂ h ) ∣ ∣ = p ( ϵ ) d ϵ ( 27 ) Gradient under change of variables 在使用了上面的变量替换之后,对于任何一个随机变量函数 f ( z ) \boldsymbol{f}(\bold{z}) f ( z ) ,我们有
E q ϕ ( z ∣ x ) [ f ( z ) ] = E p ( ϵ ) [ f ( z ) ] (28) \mathbb{E}_{q_{\boldsymbol{\phi}}(\bold{z}|\bold{x})} [\boldsymbol{f}(\bold{z})] = \mathbb{E}_{p(\boldsymbol{\epsilon})} [\boldsymbol{f}(\bold{z})] \tag{28} E q ϕ ( z ∣ x ) [ f ( z )] = E p ( ϵ ) [ f ( z )] ( 28 ) 我们可以使用简单的 Monte Carlo 模拟,去估计这个期望的梯度:
∇ ϕ E q ϕ ( z ∣ x ) [ f ( z ) ] = ∇ ϕ E p ( ϵ ) [ f ( z ) ] = E p ( ϵ ) [ ∇ ϕ f ( z ) ] ≃ ∇ ϕ f ( z ) (29) \begin{aligned} \nabla_{\boldsymbol{\phi}} \mathbb{E}_{q_{\boldsymbol{\phi}}(\bold{z}|\bold{x})} [\boldsymbol{f}(\bold{z})] &= \nabla_{\boldsymbol{\phi}} \mathbb{E}_{p(\boldsymbol{\epsilon})} [\boldsymbol{f}(\bold{z})]\\ &= \mathbb{E}_{p(\boldsymbol{\epsilon})}[\nabla_{\boldsymbol{\phi}} \boldsymbol{f}(\bold{z})] \\ &\simeq \nabla_{\boldsymbol{\phi}} \boldsymbol{f}(\bold{z}) \end{aligned} \tag{29} ∇ ϕ E q ϕ ( z ∣ x ) [ f ( z )] = ∇ ϕ E p ( ϵ ) [ f ( z )] = E p ( ϵ ) [ ∇ ϕ f ( z )] ≃ ∇ ϕ f ( z ) ( 29 ) Gradient of ELBO 根据上面的重参数化,我们可以把 ELBO 写成如下形式:
L θ , ϕ ( x ) = E q ϕ ( z ∣ x ) [ log p θ ( x , z ) − log q ϕ ( z ∣ x ) ] = E p ( ϵ ) [ log p θ ( x , z ) − log q ϕ ( z ∣ x ) ] (30) \begin{aligned} \mathcal{L}_{\boldsymbol{\theta}, \boldsymbol{\phi}}(\bold{x}) &= \mathbb{E}_{q_{\boldsymbol{\phi}}(\bold{z}|\bold{x})} [\log p_{\boldsymbol{\theta}}(\bold{x,z}) - \log q_{\boldsymbol{\phi}}(\bold{z|x})] \\ &= \mathbb{E}_{p(\boldsymbol{\epsilon})} [\log p_{\boldsymbol{\theta}}(\bold{x,z}) - \log q_{\boldsymbol{\phi}}(\bold{z|x})] \end{aligned} \tag{30} L θ , ϕ ( x ) = E q ϕ ( z ∣ x ) [ log p θ ( x , z ) − log q ϕ ( z∣x )] = E p ( ϵ ) [ log p θ ( x , z ) − log q ϕ ( z∣x )] ( 30 ) 其中 z = g ϕ ( ϵ , x ) \bold{z} = \bold{g}_{\boldsymbol{\phi}}(\boldsymbol{\epsilon}, \bold{x}) z = g ϕ ( ϵ , x ) 。
因从我们可以使用一个简单的 Monte Carlo 模拟估计 ELBO,从 noise p ( ϵ ) p(\boldsymbol{\epsilon}) p ( ϵ ) 中采样 ϵ \boldsymbol{\epsilon} ϵ :
ϵ ∼ p ( ϵ ) z = g ϕ ( x , ϵ ) L ~ θ , ϕ ( x ) = log p θ ( x , z ) − log q ϕ ( z ∣ x ) (31) \begin{aligned} \boldsymbol{\epsilon} &\sim p(\boldsymbol{\epsilon}) \\ \bold{z} &= \bold{g}_{\boldsymbol{\phi}}(\bold{x}, \boldsymbol{\epsilon}) \\ \tilde{\mathcal{L}}_{\boldsymbol{\theta}, \boldsymbol{\phi}}(\bold{x}) &= \log p_{\boldsymbol{\theta}}(\bold{x,z}) - \log q_{\boldsymbol{\phi}}(\bold{z|x}) \end{aligned} \tag{31} ϵ z L ~ θ , ϕ ( x ) ∼ p ( ϵ ) = g ϕ ( x , ϵ ) = log p θ ( x , z ) − log q ϕ ( z∣x ) ( 31 ) 之后我们求出其梯度,利用 minibatch SGD 优化。
Reference