技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 深度理解變分自編碼器

深度理解變分自編碼器

時間:2018-06-08 15:39:12來源:深度學(xué)習(xí)科研平臺

導(dǎo)語:?自編碼器是一種非常直觀的無監(jiān)督神經(jīng)網(wǎng)絡(luò)方法,由編碼器和解碼器兩部分構(gòu)成,自編碼器近年來很受研究人員的歡迎。本文是機(jī)器學(xué)習(xí)工程師Jeremy撰寫的一篇非常棒的博文,介紹了變分自編碼器理論基礎(chǔ)和工作原理,通過人臉示例幫助讀者更直觀的理解。本文強(qiáng)調(diào)了變分自編碼器的理論推導(dǎo)和實(shí)現(xiàn)細(xì)節(jié),在文末展示了變分自編碼器作為生成模型的輸出結(jié)果。希望深入理解變分自編碼器的讀者不妨讀一讀。

【深度理解變分自編碼器】

導(dǎo)讀自編碼器是一種非常直觀的無監(jiān)督神經(jīng)網(wǎng)絡(luò)方法,由編碼器和解碼器兩部分構(gòu)成,自編碼器近年來很受研究人員的歡迎。本文是機(jī)器學(xué)習(xí)工程師Jeremy撰寫的一篇非常棒的博文,介紹了變分自編碼器理論基礎(chǔ)和工作原理,通過人臉示例幫助讀者更直觀的理解。本文強(qiáng)調(diào)了變分自編碼器的理論推導(dǎo)和實(shí)現(xiàn)細(xì)節(jié),在文末展示了變分自編碼器作為生成模型的輸出結(jié)果。希望深入理解變分自編碼器的讀者不妨讀一讀。

Variationalautoencoders

變分自編碼器

自編碼器是發(fā)現(xiàn)數(shù)據(jù)的一些隱狀態(tài)(不完整,稀疏,去噪,收縮)表示的模型。更具體地說,輸入數(shù)據(jù)被轉(zhuǎn)換成一個編碼向量,其中每個維度表示從數(shù)據(jù)學(xué)到的屬性。最重要的是編碼器為每個編碼維度輸出單個值,解碼器隨后接收這些值并嘗試重新創(chuàng)建原始輸入。

變分自編碼器(VAE)提供了描述隱空間觀察的概率方式。因此,我們不需要構(gòu)建一個輸出單個值來描述每個隱狀態(tài)屬性的編碼器,而是要用編碼器描述每個隱屬性的概率分布。

▌直覺

舉個例子,假設(shè)我們已經(jīng)在一個大型人臉數(shù)據(jù)集上訓(xùn)練了一個Autoencoder模型,encoder的維度是6。理想情況下,我們希望自編碼器學(xué)習(xí)面部的描述性屬性,比如膚色,人是否戴眼鏡,從而能夠用一些特征值來表示這些屬性。

在上面的示例中,我們使用單個值來描述輸入圖像的隱屬性。但是,我們其實(shí)更愿意用一個分布去表示每個隱屬性。比如,輸入蒙娜麗莎的照片,我們很難非常自信的為微笑屬性分配一個具體值,但是用了變分自編碼器,我們有能比較自信的說微笑屬性服從什么分布。

通過這種方法,我們現(xiàn)在將給定輸入的每個隱屬性表示為概率分布。當(dāng)從隱狀態(tài)解碼時,我們將從每個隱狀態(tài)分布中隨機(jī)采樣,來生成向量作為解碼器的輸入。

注意:對于變分自編碼器,編碼器有時被稱為識別模型,而解碼器有時被稱為生成模型。

通過構(gòu)造我們的編碼器來輸出一系列可能的值(統(tǒng)計分布),然后隨機(jī)采樣該值作為解碼器的輸入,我們能夠?qū)W習(xí)到一個連續(xù),平滑的隱空間。因此,在隱空間中彼此相鄰的值應(yīng)該與非常類似的重建相對應(yīng)。而從隱分布中采樣到的任何樣本,我們都希望解碼器理解,并準(zhǔn)確重構(gòu)出來。

▌統(tǒng)計動機(jī)

假設(shè)存在一些生成觀測值的隱藏變量。

我們只能看到,但我們想推斷的特征。換句話說,我們想計算。

不幸的是,計算是相當(dāng)困難的。

這通常是一個棘手的問題。但是,我們可以應(yīng)用變分推斷來估計這個值。

我們想用一個比較簡單的分布來近似。如果我們可以確定的參數(shù),又能保證它與非常相似,有時候就可以用來作近似推理。

KL散度是衡量兩個概率分布之間的差異的度量。因此,如果我們想確保類似,我們可以使兩個分布之間的KL散度最小化。

AliGhodsi博士在這里演示了一個完整的推導(dǎo),結(jié)果表明最小化上述表達(dá)式即最大化以下表達(dá)式:

第一項代表重建的似然估計,第二項確保我們學(xué)習(xí)到的分布q與真實(shí)的先驗分布p相似性。

https://www.youtube.com/watch?v=uaaqyVS9-rM&feature=youtu.be&t=19m42s

為了重新審視我們的圖模型,我們可以使用來推斷用于生成觀察的可能隱變量(即隱狀態(tài))。我們可以進(jìn)一步將此模型構(gòu)造成神經(jīng)網(wǎng)絡(luò)架構(gòu),其中編碼器學(xué)習(xí)從到的映射,并且解碼器模型學(xué)習(xí)從到的映射。

這個網(wǎng)絡(luò)的損失函數(shù)將包括兩個項,一個懲罰重建誤差(可以認(rèn)為是最大化重建可能性,如前所述),第二項鼓勵我們學(xué)習(xí)的分布與真實(shí)的分布相似。對于隱空間的每個維度,我們假設(shè)先驗分布遵循單位高斯分布。

▌實(shí)現(xiàn)

前面的章節(jié),建立了變分自編碼器結(jié)構(gòu)的統(tǒng)計動機(jī)。在本節(jié)中,我將提供自己構(gòu)建這種模型的實(shí)現(xiàn)細(xì)節(jié)。

與在標(biāo)準(zhǔn)自編碼器中直接輸出隱狀態(tài)值不同,VAE的編碼器模型的輸出描述的是每個維度分布。既然我們假設(shè)先驗p(z)服從正態(tài)分布,我們將輸出兩個向量來描述隱狀態(tài)分布的均值和方差。如果我們要構(gòu)建一個真正的多元高斯模型,我們需要定義一個協(xié)方差矩陣來描述每個維度是如何相關(guān)的。但是,我們將做一個簡化的假設(shè),即我們的協(xié)方差矩陣只在對角線上有非零值,這允許我們用簡單的向量來描述這些信息

然后,我們的解碼器將通過從這些定義的分布中抽樣來生成一個隱向量,并開始重建原始輸入。

但是,這個抽樣過程需要額外的關(guān)注。在訓(xùn)練模型時,我們使用反向傳播來計算網(wǎng)絡(luò)中每個參數(shù)與最終輸出損失之間的關(guān)系。但是,我們無法為隨機(jī)抽樣過程做到這一點(diǎn)。幸運(yùn)的是,我們可以利用一種稱為“Reparameterization”的聰明想法,即從單位高斯隨機(jī)抽樣ε,然后將隨機(jī)抽樣的ε乘以隱分布的均值μ,并用隱分布的方差σ對其進(jìn)行縮放。

通過這種Reparameterization,我們現(xiàn)在可以優(yōu)化分布的參數(shù),同時仍然保持從該分布隨機(jī)采樣的能力。

注意:為了處理網(wǎng)絡(luò)可能學(xué)到的σ為負(fù)值這一事實(shí),我們通常會通過網(wǎng)絡(luò)學(xué)習(xí)logσ并且指數(shù)化這個值來得到隱分布的方差。

▌隱空間的可視化

為了理解變分自編碼器模型的含義及其與標(biāo)準(zhǔn)自編碼器體系結(jié)構(gòu)的差異,檢驗隱空間是必要的,這篇博客文章介紹了關(guān)于這個主題的一個很好的討論,我將在本節(jié)中對此進(jìn)行總結(jié)。

變分自編碼器的主要優(yōu)點(diǎn)是我們能夠?qū)W習(xí)輸入數(shù)據(jù)的平滑隱狀態(tài)表示。對于標(biāo)準(zhǔn)的自編碼器,我們只需要學(xué)習(xí)一個編碼,它允許我們重現(xiàn)輸入。正如你在最左邊的圖中可以看到的,只關(guān)注重建損失確實(shí)允許我們分離出不同的類(在這種情況下是MNIST數(shù)字),這允許我們的解碼器模型能夠重現(xiàn)原始手寫數(shù)字,但是在隱空間中可能數(shù)據(jù)的分布是不均勻的。換句話說,隱空間中的某些區(qū)域并不代表我們觀察到的任何數(shù)據(jù)。

另一方面,如果我們只關(guān)心隱分布與先驗分布類似(通過我們的KL散度損失項),我們最終將使用相同的單位高斯描述每個觀測值,在隨后的抽樣和可視化,就會像上面中間的圖的樣子。換句話說,我們沒能描述原始數(shù)據(jù)。

但是,當(dāng)兩個式子同時優(yōu)化時,我們即希望有接近先驗分布的隱狀態(tài)來表述屬性,也希望重建誤差比較小

當(dāng)我構(gòu)建一個變分自編碼器時,我喜歡檢查數(shù)據(jù)中的幾個樣本的隱維度以查看分布的特征。

如果我們觀察到隱分布非常狹窄,我們可以用參數(shù)β>1賦予KL散度項更高的權(quán)重,鼓勵網(wǎng)絡(luò)學(xué)習(xí)更廣泛的分布。這種簡單的觀察導(dǎo)致了一類新的模型-disentangledvariationalautoencoders的發(fā)展。事實(shí)證明,通過更加強(qiáng)調(diào)KL散度項,我們也隱含地強(qiáng)調(diào)學(xué)習(xí)的隱維度是不相關(guān)的(通過我們對對角協(xié)方差矩陣的簡化假設(shè))。

▌變分自編碼器作為生成模型

通過從隱空間采樣,我們可以使用解碼器網(wǎng)絡(luò)形成一個生成模型,能夠創(chuàng)建類似于訓(xùn)練過程中觀察到的新數(shù)據(jù)。具體來說,我們將從先前的分布中采樣,假定它遵循單元高斯分布。

下圖顯示了在MNIST手寫數(shù)字?jǐn)?shù)據(jù)集上訓(xùn)練的變分自編碼器的解碼器網(wǎng)絡(luò)生成的數(shù)據(jù)。在這里,我們從二維高斯采樣了一個網(wǎng)格值,并展示了解碼器網(wǎng)絡(luò)的輸出。

正如你所看到的,每個獨(dú)立的數(shù)字都存在于隱空間的不同區(qū)域,并順利地從一個數(shù)字變換到另一個數(shù)字。如果您想要在兩個觀察點(diǎn)之間進(jìn)行插值,這種平滑轉(zhuǎn)換可能非常有用。

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:伺服電機(jī)內(nèi)部結(jié)構(gòu)及其工作原理

下一篇:數(shù)控機(jī)床伺服系統(tǒng)的分類及其...

中國傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(m.u63ivq3.com)獨(dú)家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡介|會員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動網(wǎng)-工業(yè)自動化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺

網(wǎng)站客服服務(wù)咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權(quán)所有
粵ICP備 14004826號 | 營業(yè)執(zhí)照證書 | 不良信息舉報中心 | 粵公網(wǎng)安備 44030402000946號