Answers:
阅读了Kingma的NIPS 2015研讨会幻灯片后,我意识到我们需要重新参数化技巧才能通过随机节点反向传播。
直观地说,在其原始形式,从随机节点VAES样品其由所述参数模型近似q (Ž | φ ,X )真实的后验的。Backprop无法流经随机节点。
引入新参数使我们能够以允许反向传递流过确定性节点的方式重新参数化z。
假设我们有一个正态分布由参数θ,特别是q θ(X )= Ñ (θ ,1 )。我们要解决以下问题 最小θ 这当然是一个很愚蠢的问题,并且最佳 θ很明显。但是,这里我们只想了解重新参数化技巧如何帮助计算此目标 E q [ x 2 ]的梯度。
计算单程如下 ▿ θ é q [ X 2 ] = ▿ θ ∫ q θ(X )X 2 d X = ∫ X 2 ▿ θ q θ(X )q θ(X )
对于我们的例子,其中,该方法给出了 ▿ θ é q [ X 2 ] = ë q [ X 2(X - θ )]
重新参数化技巧是一种重写期望的方法,以使我们采用梯度的分布与参数无关。为此,我们需要使q中的随机元素与θ无关。因此,我们将x写成 x = θ + ϵ , 然后,我们可以写 Ë q [ X 2 ] = È p [ (θ + ε )2 ] ,其中 p是分布 ε,即 Ñ (0 ,1 )。现在,我们可以写出的衍生物 ë q [ X 2 ]如下 ▿ θ é q [ X 2 ] =
这是我写的一个IPython笔记本,着眼于这两种计算梯度的方差。 http://nbviewer.jupyter.org/github/gokererdogan/Notebooks/blob/master/Reparameterization%20Trick.ipynb
在goker的答案中给出了“重新参数化把戏”数学的一个合理例子,但是一些动机可能会有所帮助。(我无权对此答案发表评论;因此这是一个单独的答案。)
,可能远非最佳值(例如,任意选择的初始值)。这有点像醉酒的人的故事,他在路灯附近(因为他可以看到/取样)而不是在他放下钥匙的地方寻找他的钥匙。
希望对您有所帮助。
首先让我解释一下,为什么在VAE中需要重新参数化技巧。
VAE具有编码器和解码器。解码器从真实后验Z〜q(z∣ϕ,x)中随机采样。要将编码器和解码器实现为神经网络,您需要通过随机采样进行反向传播,这就是问题所在,因为反向传播无法流经随机节点。为了克服这一障碍,我们使用了重新参数化技巧。
现在开始欺骗。因为我们的后验是正态分布的,所以我们可以用另一个正态分布来近似它。我们近似ž与正态分布ε。
但这有什么关系呢?
现在,不用说Z是从q(z∣ϕ,x)采样而来的,我们可以说Z是一个接受参数(ε,(µ,L))的函数,而这些µ,L来自上层神经网络(编码器) 。因此,当反向传播时,我们所需要的只是μ,L和ε的偏导数与取导数无关。
我认为斯坦福CS228课程中关于概率图形模型的解释非常好。可以在这里找到:https : //ermongroup.github.io/cs228-notes/extras/vae/
为了方便/我自己理解,我在这里总结/复制了重要部分(尽管我强烈建议您查看原始链接)。
如果您熟悉得分函数估计器(我相信REINFORCE只是其中的特例),您会注意到这几乎是他们解决的问题。但是,得分函数估计器具有较高的方差,从而导致在很多时候学习模型时遇到困难。
例如,让我们使用一个非常简单的q作为样本。
由于重要的原因,这具有较低的方差。在此处查看附录D部分以获取解释:https : //arxiv.org/pdf/1401.4082.pdf