<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【干貨】深入理解變分自編碼器

          共 3081字,需瀏覽 7分鐘

           ·

          2021-02-19 21:11

          【導(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é)果。希望深入理解變分自編碼器的讀者不妨讀一讀。


          Variational autoencoders?

          變分自編碼器


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


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

          直覺




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

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


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

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


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

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




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

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

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

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

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

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

          Ali Ghodsi博士在這里演示了一個(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


          為了重新審視我們的圖模型,我們可以使用來推斷用于生成觀察的可能隱變量(即隱狀態(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è)向量來描述隱狀態(tài)分布的均值和方差。如果我們要構(gòu)建一個(gè)真正的多元高斯模型,我們需要定義一個(gè)協(xié)方差矩陣來描述每個(gè)維度是如何相關(guān)的。但是,我們將做一個(gè)簡(jiǎn)化的假設(shè),即我們的協(xié)方差矩陣只在對(duì)角線上有非零值,這允許我們用簡(jiǎn)單的向量來描述這些信息

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

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

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

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

          隱空間的可視化




          為了理解變分自編碼器模型的含義及其與標(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í)允許我們分離出不同的類(在這種情況下是MNIST數(shù)字),這允許我們的解碼器模型能夠重現(xiàn)原始手寫數(shù)字,但是在隱空間中可能數(shù)據(jù)的分布是不均勻的。換句話說,隱空間中的某些區(qū)域并不代表我們觀察到的任何數(shù)據(jù)。

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


          但是,當(dāng)兩個(gè)式子同時(shí)優(yōu)化時(shí),我們即希望有接近先驗(yàn)分布的隱狀態(tà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)致了一類新的模型 - disentangled variational autoencoders的發(fā)展。事實(shí)證明,通過更加強(qiáng)調(diào)KL散度項(xiàng),我們也隱含地強(qiáng)調(diào)學(xué)習(xí)的隱維度是不相關(guān)的(通過我們對(duì)對(duì)角協(xié)方差矩陣的簡(jiǎn)化假設(shè))。

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



          ?

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


          下圖顯示了在MNIST手寫數(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)換可能非常有用。


          原文鏈接:

          https://www.jeremyjordan.me/variational-autoencoders/

          Jeremy主頁:

          https://www.jeremyjordan.me/

          轉(zhuǎn)自:專知

          瀏覽 51
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  男女猛干直接看 | 欧美老逼色色 | 黑人大屌cao逼 | 久操大香蕉在线视频 | 超碰人人射 |