1. 程式人生 > >Auto-Encoding Variational Bayes論文筆記

Auto-Encoding Variational Bayes論文筆記

本文地址:http://blog.csdn.net/qq_31456593/article/details/77743840 
深度學習部落格目錄:http://blog.csdn.net/qq_31456593/article/details/69340697

introduce

這篇論文將變分貝葉斯和神經網路結合起來,用神經網路學習變分推導的引數,以得到後驗推理p(z|x)的似然,並獲得了一個效果不錯的生成模型-變分自編碼器。作者使用了重新引數化的變分下界,這樣就可以通過隨機梯度下界對模型進行優化。

method

如圖z是一個隱變數,x是由z決定的一個客觀事物,比如一類圖片。z相當於決定x性質的內隱因素(神祕力量),那麼給我們一組屬於x的資料集(圖片),想要得到z,我們就必須得到後驗概率p(z|x)。因為這個後驗概率不好求,作者使用一個神經網路作為後驗推導q(z|x),來逼近p(z|x),當神經網路通過引數學習,使得q(z|x)接近於p(z|x)時,那麼我們將通過神經網路獲得接近於z的近似分佈,即把隱變數z找了出來。

在數學上,KL散度可以求兩個分佈間的距離,KL越小,分佈距離越近,即越相似。同時,KL距離是非負的。為了使q(z|x)與p(z|x)的KL距離最小,作者利用了變分下界的方法,如下面推導公式所示:

因為p(x)的對數是固定的,所以我們想要最小化q(z|x)與p(z|x)的KL距離,就是要最大化變分下界LVLV,而LVLV經推導可得

所以現在我們要做的是最小化第一項中q(z|x)和z的似然,最大化第二項中p(x|z)的對數似然。作者將是實現q(z|x)的神經網路叫做編碼器,z一般符合高斯分佈,所以最小化第一項就是讓編碼器儘量擬合出高斯分佈,即最大化下面式子:

對於第二項,作者構建一個名為解碼器的神經網路,用它對隨機取樣的z進行處理,最終生成x,並以最大化p(x|z)

由於隨機取樣的部分無法使用隨機梯度下降,所以在這裡作者使用了重新引數化的方法,讓編碼器只輸出正太分佈的均值和方差,用於一個高斯噪聲通過輸出的均值和方差來構造z 


至此,兩個我們要優化的目標都明確了,現在就可以開始訓練網路。附上變分自編碼器圖(圖中缺失了高斯噪音部分)

最終訓練好的解碼器便可以通過輸入的高斯分佈生成想要的影象了。

my view

1、利用神經網路擬合統計推導計算後驗概率的思路可以學習。 
2、是否可以認為變分自編碼器就是同時學習,決定某個事物(影象)性質的特殊因素(個體因素)z和共同因素(類別因素)p(x|z),然後就可以通過類別因素p(x|z),也就是解碼器,利用隨機的高斯分佈(隨機的個體因素)生成同類別的圖片。

參考文獻: 
《Auto-Encoding Variational Bayes》 
Introduction to variational autoencoders VAE第二篇
--------------------- 
作者:Doit_ 
來源:CSDN 
原文:https://blog.csdn.net/qq_31456593/article/details/77743840 
版權宣告:本文為博主原創文章,轉載請附上博文連結!