Probability

變分自動編碼器:為什麼重建項與平方損失相同?

  • May 21, 2018

在變分自動編碼器(見論文)第 5 頁中,神經網絡的損失函數定義為:

$ L(\theta;\phi;x^{i})\backsimeq 0.5*\sum_{j=1}^J(1 + 2\log\sigma^i_j-(\mu^i)^2) - (\sigma^i)^2) + \frac{1}{L}\sum_{l=1}^L \log p_\theta(x^i|z^{i,l}) $

在代碼中,第二項 $ \frac{1}{L}\sum_{l=1}^L \log p_\theta(x^i|z^{i,l}) $ 實際上是通過: binary_crossentropy(x, x_output),其中xx_output分別是自編碼器的輸入和輸出。

我的問題是為什麼輸入和輸出的損失等於 $ \frac{1}{L}\sum_{l=1}^L \log p_\theta(x^i|z^{i,l}) $ ?

對於常規自動編碼器,您從輸入開始,並對其進行編碼以獲得您的潛在變量(或代碼),,使用一些滿足:. 獲得潛在變量後,您的目標是使用其他函數重建輸入. 重建損失是另一個函數 用於反向傳播和更新和.

對於變分自動編碼器,您仍然可以解釋潛在變量,,作為您的代碼。因此,用作概率解碼器,因為給定一個代碼, 它產生一個可能值的分佈. 因此,該術語“有意義”以某種方式與重建錯誤有關。

編碼器和解碼器都是確定性函數。自從是這樣的功能,映射進入, 你可以把這個表達式想成. 當您假設(如果我理解正確,他們在論文中假設)此分佈具有高斯形式:

最後一個表達式與常規自動編碼器中的重建誤差成正比。

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

comments powered by Disqus