Neural-Networks

幫助理解變分自動編碼器中的重建損失

  • January 17, 2018

VAE 的重建損失(例如,參見The Deep Learning Book中的方程 20.77 )通常寫為

,

在哪裡表示潛在變量,表示圖像,並且是一個近似編碼器。如果我們假設

,

然後我明白瞭如何最小化重建損失只是一個典型的最大似然問題。

但是當我看到在實踐中實現 VAE 時,人們似乎經常將重建損失表示為每個之間的 L2 損失(訓練圖像)和(解碼圖像)。

誰能解釋如何將上面第一個表達式中的重建損失轉換為之間的 L2 損失和?

通常在 VAE 實現中,解碼器的輸出實際上是平均值 $ \mu_{x|z} $ 我會打電話給 $ \mu $ , 人們假設一個單一的協方差。所以在這種情況下,我們有: $ logP(x|z)=-\frac{1}{2}[log(|\Sigma|)+klog(2\pi)+(\mathbf{x}-\mathbf{\mu})^T(\mathbf{x}-\mathbf{\mu})] $

這來自獲取多元高斯分佈的 pdf 的對數。現在您可以看到,由於前兩項相對於 $ \mu $ , 優化問題等價於最大化 $ -\frac{1}{2}(\mathbf{x}-\boldsymbol{\mu})^T(\mathbf{x}-\boldsymbol{\mu}) $ 這只是之間的 L2 損失 $ \mathbf{x} $ 和 $ \boldsymbol{\mu} $ . 最後,期望只是通過平均來近似。

引用自:https://stats.stackexchange.com/questions/323568

comments powered by Disqus