摘要: 本文簡單介紹了變分自動編碼器vae的基本原理,從經典神經網路的貝葉斯計算概率方法慢慢轉變到變分自動編碼器神經網路中的優化問題,使用kl散度度量誤差,給大家提供乙個vae的基本框架。全篇沒有公式,通俗易懂。
作者介紹
作為一種非常直觀的無監督的學習方法
是很受歡迎的,最簡單的情況是三層的神經網路,第一層是資料輸入,第二層的節點數一般少於輸入層,並且第三層與輸入層類似,層與層之間互相全連線,這種網路被稱作自動編碼器,因為該網路將輸入「編碼
」成乙個隱藏**,然後從隱藏表示中「解碼
」出來。通過簡單的測量重構誤差和反傳網路引數能夠很好的訓練該類網路。
上圖是另一種版本的自動編碼器,稱為「變分自動編碼器
-vae
」,不同點在於其隱藏**來自於訓練期間學習到的概率分布。
在90年代,一些研究人員提出一種概率解釋的神經網路模型,在該模型中,提供了適當的貝葉斯方法。然而,學習這些模型的引數是困難的,直到深度學習研究的新進展導致了用於這種概率方法
能更有效的學習引數。
概率解釋通過假設每個引數的概率分布來
降低網路中每個引數的單個值的剛性約束。例如,如果在經典神經網路中計算權重
w_i=0.7,在概率版本中,計算均值大約為u_i = 0.7和方差為v_i = 0.1的高斯分布,即w_i =n(0.7,0.1)。這個假設將輸入,隱藏表示以及神經網路的輸出轉換為概率隨機變數。這類網路被稱為貝葉斯神經網路或bnn。
學習的目標是找到上述分布的引數。這種學習被稱為「推理
」,貝葉斯網路中的推論對應於計算潛在變數相對於資料的條件概率。這類模型引入了變分逼近推理方法
後,將該
計算問題
轉換為優化問題,可以使用隨機梯度下降法
來解決。
在貝葉斯網路中,網路可以基於分布引數重新引數化。在變分自動編碼器中,僅在隱藏節點上假設這些分布。因此,編碼器變成乙個變分推理網路,而且解碼器變成乙個將隱藏**對映回資料分布的生成網路。
將分布的均值和方差視為傳統網路的引數,並將方差乘以來自雜訊發生器的樣本以增加隨機性。通過引數化隱藏分布,可以反向傳播梯度
得到編碼器的引數,並用隨機梯度下降訓練整個網路。此過程能夠學習
到隱藏**的均值與方差值,這就是所謂的「重新調參技巧」。
在經典版的神經網路中,可以用均方誤差
(mse
)簡單測量網路輸出與期望的目標值之間的誤差。但在處理分布時,
mse不再是乙個好的誤差度量,因此用
kl散度測量兩個分布之間的差異。事實證明變分近似和真實後驗分布之間的距離不是很容易被最小化。它包括兩個主要部分。因此,可以最大化較小的項(
elbo
)。從自動編碼器的角度來看,
elbo
函式可以看作是輸入的重建代價與正則化項的和
在最大化
elbo
之後,資料的下限接近資料分布,則距離接近零,間接地最小化了誤差距離。最大化下界的演算法與梯度下降的完全相反。沿著梯度的
正方向達到最大值,這整個演算法被稱為「自動編碼變分貝葉斯」。
下面是乙個偽**,可以看到vae的架構:
network=
cost=
stochastic_gradient_descent(data, network, cost_total)
該筆記是基於此
keras
例子。編碼器的所得學習潛在空間和在
mnist
資料集上訓練的簡單
vae的結果如下。
本文由北郵
@愛可可-愛生活
老師推薦,
阿里云云棲社群
組織翻譯。
文章原標題《
an intuitive understanding of variational autoencoders without any formula》
hamidreza saghir
,譯者:
海棠
CVAE(條件變分自動編碼器)簡單理解
之前的文章介紹了ae和vae,指出了它們的優缺點。ae適合資料壓縮與還原,不適合生成未見過的資料。vae適合生成未見過的資料,但不能控制生成內容。本文所介紹的cvae conditional vae 可以在生成資料時通過指定其標籤來生成想生成的資料。cvae的結構圖如下所示 整體結構和vae差不多,...
貝葉斯公式的直觀理解 先驗概率 後驗概率
前言 以前在許學習貝葉斯方法的時候一直不得要領,什麼先驗概率,什麼後驗概率,完全是跟想象脫節的東西,今天在聽喜馬拉雅的音訊的時候突然領悟到,貝葉斯老人家當時想到這麼一種理論前提可能也是基於一種人的直覺.先驗概率 是指根據以往經驗和分析得到的概率.1 意思是說我們人有乙個常識,比如骰子,我們都知道概率...
貝葉斯公式的直觀理解 先驗概率 後驗概率
前言 以前在許學習貝葉斯方法的時候一直不得要領,什麼先驗概率,什麼後驗概率,完全是跟想象脫節的東西,今天在聽喜馬拉雅的音訊的時候突然領悟到,貝葉斯老人家當時想到這麼一種理論前提可能也是基於一種人的直覺.先驗概率 是指根據以往經驗和分析得到的概率.1 意思是說我們人有乙個常識,比如骰子,我們都知道概率...