技術(shù)頻道

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

深度理解變分自編碼器

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

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

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

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

Variationalautoencoders

變分自編碼器

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

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

▌直覺(jué)

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

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

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

注意:對(duì)于變分自編碼器,編碼器有時(shí)被稱(chēng)為識(shí)別模型,而解碼器有時(shí)被稱(chēng)為生成模型。

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

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

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

我們只能看到,但我們想推斷的特征。換句話(huà)說(shuō),我們想計(jì)算。

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

這通常是一個(gè)棘手的問(wèn)題。但是,我們可以應(yīng)用變分推斷來(lái)估計(jì)這個(gè)值。

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

KL散度是衡量?jī)蓚€(gè)概率分布之間的差異的度量。因此,如果我們想確保類(lèi)似,我們可以使兩個(gè)分布之間的KL散度最小化。

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

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

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

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

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

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

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

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

然后,我們的解碼器將通過(guò)從這些定義的分布中抽樣來(lái)生成一個(gè)隱向量,并開(kāi)始重建原始輸入。

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

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

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

▌隱空間的可視化

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

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

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

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

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

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

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

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

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

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

標(biāo)簽:

點(diǎn)贊

分享到:

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

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

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

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