Disentangling by Factorising 算法
咱們定義和解決了從變量的獨立因素生成的數據的解耦表徵的無監督學習問題。咱們提出了FactorVAE方法,經過鼓勵表徵的分佈因素化且在維度上獨立來解耦。咱們展現了其經過在解耦和重構質量之間提供一個更好的權衡(trade-off)來實現優於β-VAE的效果。並且咱們着重強調了一般使用的解耦度量方法的問題,並引入一種不受這些問題影響的新度量方法。網絡
1. Introduction 框架
學習可以揭示數據語義意思的可解釋(interpretable)表示對人工智能具備重要的影響。該表徵不只對標準下行任務,如監督學習和強化學習,還對任務如轉移學習和zero-shot學習這種人類勝於機器的學習 (Lake et al., 2016)有用。在深度學習社區中,對於學習數據變量的因素付出了不少的努力,共同將其稱做學習一個解耦表徵。當對這個術語沒有標準的定義時,咱們採用了Bengio et al. (2013)中的定義:一個表徵即當在一個維度上有一個變化時,對應地將在變量的一個因素上發生了變化,其與其餘變量上的變化是無關的。實際上,咱們假設數據從一個有着固定數量的獨立因素的變量中生成。咱們集中處理圖像數據,由於其變量中因素的影響更容易可視化函數
使用生成模型展現了在圖像中學習解耦表徵的巨大但願。明顯地,半監督方法這種須要隱式或顯式地瞭解數據真正的潛在因素的方法在解決解耦問題方面作得很好(Kulkarni et al., 2015; Kingma et al., 2014; Reed et al., 2014; Siddharth et al., 2017; Hinton et al., 2011; Mathieu et al., 2016; Goroshin et al., 2015; Hsu et al., 2017; Denton & Birodkar, 2017)。可是在理想的狀況下咱們想要以無監督的方式來學習它的緣由有以下幾點:性能
β-VAE(Higgins et al., 2016)是基於變分自編碼器(VAE)框架 (Kingma & Welling, 2014; Rezende et al., 2014)的生成模型中用於無監督解耦的一種流行方法。它使用了VAE的修改版本,在目標函數的變分後驗和先驗之間的KL散度中添加一個巨大的權重(β>1),其被證實是用於解耦的一個有效且穩定的方法。β-VAE的一個缺點就是爲了得到更好的解耦效果,重構質量必須放棄(相對於VAE來講)。咱們工做的目標就是在解耦和重構之間得到一個更好的權衡,容許在不須要下降重構質量的條件下也能得到更好的解耦效果。在該工做中,咱們分析了該權衡的源頭並提出了FactorVAE方法,其使用可以鼓勵表徵的邊際分佈因子化且本質上不影響重構質量的懲罰來加強了VAE目標函數。該懲罰表示爲一個在這個邊際分佈和它的邊際積之間的KL散度,並使用一個遵循GANs的散度最小化觀點的判別器網絡來優化它(Nowozin et al., 2016; Mohamed & Lakshminarayanan, 2016)。咱們的實驗結果顯示了該方法在一樣的重構質量下可以得到比β-VAE更好的解耦效果。咱們指出了在Higgins et al., 2016的解耦度量中的缺點,並提出了一個新的度量方法來解決這個缺點。學習
一種流行的更換β-VAE的方法是InfoGAN (Chen et al., 2016),其是基於用於生成模型的生成對抗框架(Goodfellow et al., 2014)的。InfoGAN經過獎勵觀察結果和一組潛伏向量之間的相互信息來學習解耦表徵。但是至少部分緣由是它的訓練穩定性問題(Higgins et al., 2016),這裏有一些在基於VAE方法和InfoGAN方法之間的經驗比較。利用在GAN文獻中能幫助穩定訓練狀態的最新進展,在實驗評估階段咱們還包含了InfoWGAN-GP方法,即InfoGAN的一種使用了Wasserstein距離方法(Arjovsky et al., 2017)和梯度懲罰方法的版本 (Gulrajani et al., 2017)。測試
總之,咱們做出了以下貢獻:優化
即從q(z)中採樣獲得的爲,對該採樣結果循環d次(d爲z的維度數)隨機交換維度上的值後生成的樣本爲,但願分別做爲判別器的輸入,可以把判別爲真,判別爲假編碼
2. Trade-off between Disentanglement and Reconstruction in β-VAE 人工智能
咱們經過分析在β-VAE中提出的解耦和重構的平衡問題來啓發咱們的方法。首先,咱們介紹了咱們VAE框架的概念和結構。咱們假設觀察值爲經過結合K個潛在因素f=(f1,...,fK)生成的,好比一張圖x(i)須要設置x、y位置、其形狀和大小等潛在因素信息才能生成。該觀察值使用一個潛在/編碼向量的真值來建模,解釋爲數據的表徵。該生成模型使用標準高斯先驗p(z)=N(0,I)定義,被內部爲一個因素分佈;decoder pΘ(x|z)經過一個神經網絡實現參數化。對於一個觀察值的變量後驗爲,帶着由encoder生成的均值和方差,同時經過一個神經網絡實現參數化。變量後驗可以被看做是與數據點x相關表徵分佈。對於整個數據集來講,其表徵分佈爲:
其被看成邊際後驗和或集合後驗,pdata表示經驗數據分佈。一個解耦表徵的每一個zj都與一個潛在因素fk相關。當咱們假設這些因素獨立變化時,咱們但願有一個因素分佈爲
β-VAE的目標函數爲:
對於 β>=1,其爲的一個變量下界;當β=1時即等價於VAE目標函數。其第一部分叫作負重構損失,第二部分爲複雜度的懲罰,起到調節做用。咱們可能將進一步打破該KL項(Hoffman & Johnson, 2016; Makhzani & Frey, 2017)爲。其中的I(x;z)即x和z在pdata(x)q(z|x)的聯合分佈下的互信息。詳細推導可見附錄C:
懲罰KL(q(z)||p(z))項會將q(z)推向因子先驗p(z),讓兩個分佈近似,鼓勵z維度的獨立性(由於p(z)是獨立的),從而解決解耦問題。從另外一方面來講,懲罰I(x;z)將減小存儲在z中的關於x的信息數量,設置爲高值的β時會致使差的重構效果(Makhzani & Frey, 2017)。所以將β設置爲比1大的數時,對這兩項的懲罰程度將更強,致使更好的解耦效果,可是會下降重構質量。當重構質量下降得過於嚴重時,潛在向量中將沒有關於觀察值的足夠信息,使得該潛在向量不可能去恢復真正的因素。所以該方法存在β>1的值,可以給予更好的解耦,可是比VAE產生了更高的重構損失
即β-VAE經過減小兩項的值來實現讓q(z)更接近因子先驗p(z),保證z每一個維度的獨立性,可是缺點就是I(x;z)的減小也將減小存儲在z中的關於x的信息數量,增大重構損失
3. Total Correlation Penalty and FactorVAE
對於解耦來講,比VAE更多地對I(x;z)項進行懲罰(即減小了存儲在z中的關於x的信息數量,二者不相關,不利於重構)即不是必須的,也不是其所指望的。好比,InfoGAN經過鼓勵I(x;c)值更高來解耦,此時c是潛在變量z中的一個子集。所以咱們經過使用可以直接激勵編碼分佈的獨立性項來加強目標函數來構造FactorVAE的目標函數,以下所示:
即跟 β-VAE的目標函數相比添加了項,假設全部因素獨立,則:,因此q(z)約等於,後面那一項就是但願可以訓練兩個分佈愈來愈接近,那就說明x中的因素愈來愈獨立
稱爲總相關(Total Correlation, TC, Watanabe, 1960),是一種用於多隨機變量的流行的獨立性測量方法。在該例子中,當q(z)和含有大量組分的混合物時,該項是十分難算的,並且直接的Monte Carlo評估方法須要傳遞整個數據集給每一個q(z)評估。所以咱們爲了優化該項,使用了一個替換的方法。
咱們從觀察開始,咱們能經過先隨機均勻地選擇一個數據點x(i)來高效地從樣本q(z)中採樣,而後再將x(i)輸入q(z|x(i))中採樣獲得z。而後經過先從q(z)中採樣d個樣原本生成分佈,而後再從中採樣z',而後忽略除某一個維度之外的全部維度,而後就可以對這兩個分佈進行計算。
另外一種更高效的替換採樣的方法是從q(z)中採樣一個batch,而後在batch中爲每一個潛在向量的維度進行隨機交換,可見算法1:
B即爲B個batch,d表示潛在向量z的維度大小
即從q(z)採樣出一批z後,還要隨機選擇batch中的某個zπ(i)第j維去換掉z(i)的第j維,對於batch中的每一個z來講都循環進行該交換d次,最後獲得一個新的z(i),獲得,這樣獲得的新的潛在向量與從中採樣出來的結果類似
這是一種使用在獨立測試文獻 (Arcones & Gine, 1992)中的標準技巧,只要batch是足夠的,這些採樣樣本的分佈將近似於
可以從兩個分佈中進行採樣使得咱們可以使用密度比(density-ratio)技巧 (Nguyen et al., 2010; Sugiyama et al., 2012) 來最小化它們的KL散度,該技巧包含了訓練一個分類器/判別器來近似KL項中出現的密度比。假設咱們有一個判別器D(在該例子中是一個MLP),其輸出一個輸入是來自q(z)而不是的機率D(z)的估計,所以咱們有:
咱們共同訓練判別器和VAE。在實際中,VAE的參數將使用在等式(2)中的目標函數更新,使用上面基於判別器的來自等式(3)的近似代替等式(2)中的TC項。判別器被訓練來對來自q(z)和的樣本進行分類,所以爲了估計TC須要學習去近似密度比。算法2爲FactorVAE的僞代碼:
着重強調低的TC值是必需的,可是對於一個有意義的解耦來講還不夠。好比,當q(z|x)=p(z),TC=0,可是z沒有攜帶任何關於數據的信息。所以有低的TC值僅在咱們能在潛在向量中保存信息時有意義,因此控制重構損失是很重要的。
在GAN文獻中,散度最小化一般是在數據空間上的兩個分佈之間完成的,這一般是很是高維的數據(如圖像)。由於這兩種分佈每每有不相交的支持,使得訓練不穩定,特別是當判別器較強時。所以使用技巧如instance noise (Sønderby et al., 2016) 去弱化判別器或者使用一個critic,就像Wasserstein GANs (Arjovsky et al., 2017)中同樣去替代判別器是十分必要的。在該論文中,咱們最小化潛在空間的兩個分佈間的散度(如 (Mescheder et al., 2017)裏同樣),一般潛在空間相對於數據空間是更低的維度,且兩個分佈有重疊的支持。咱們觀察到對於足夠的大batch size來講訓練是穩定的(如batch size=64在維度d=6時表現得很好),這樣就容許咱們使用一個強的判別器
4. A New Metric for Disentanglement
咱們使用在該論文中解耦的定義是在表徵中一維的改變徹底對應於變量中一個因素的改變,這顯然是一個簡單化定義。它不容許因素之間的關聯或它們之上的層次結構。所以該定義看起來更適合去合成帶有獨立因素的向量的數據而不是更真實的數據集。但是如咱們將要在下面展現的同樣,魯棒的解耦問題在這樣簡單的設定下是不能被徹底解決的。其中的一個阻礙就是沒有用於測量解耦的可靠的定量度量標準。
一個流行的測量解耦的方法是經過檢查潛在遍歷:在遍歷一次(即調節該維度的值的大小,如從-2慢慢調到2)潛在空間的一個維度時,可視化重構的變化,下面的圖3就是作了這樣的操做。雖然潛在遍歷能夠做爲一個有用的指示器來判斷模型什麼時候沒法解耦,可是這種方法的定性使得它不適合可靠地比較算法。這樣作須要在訓練期間檢查多個參考圖像、隨機種子和點上的大量潛在遍歷。讓一我的在循環中評估遍歷也是很是耗時和具備主觀性的。不幸的是,對於沒有可用的真實變量因子的數據集,目前這是評估解耦的惟一可行選項。
Higgins et al. (2016) 提出了一種有監督的度量方法,它試圖在給定數據集的真實因素時量化解耦。該度量即以下訓練中的線性分類器的錯誤率。
即最後結果最小的維度即對應於該因素k,說明該因素由該維度控制
可見圖2的上半部分:
因此若是表徵可以完美地解耦,咱們可以看見在該與變量固定因素相關的訓練輸入的維度上的值爲0,分類器將學會映射該0值的索引到該因素的索引。
但是該度量有幾個缺點:
該狀況的例子如圖3所示:
爲了解決該弱點,咱們提出一個新的解耦度量方法。
即有着最低方差的維度對應於因素k,說明該因素由該維度控制
詳情可見上面圖2的下半部分
所以若是表徵能完美地解耦,與固定因素相關的維度中的經驗方差將爲0。咱們對錶徵進行標準化,使argmin對於每一個維度中的表徵的從新縮放是不變的。當輸入和輸出坐落在一個離散空間中時,最優分類器爲多數投票分類器(詳見附錄B),度量爲分類器錯誤率。
獲得的分類器是訓練數據的肯定性函數,所以不須要優化超參數。咱們還認爲,這個度量在概念上比前一個度量更簡單、更天然。最重要的是,它避免了早期度量的失效模式,由於分類器須要看到給定因素的潛在維數的最小方差才能正確分類。
咱們認爲開發一個不使用真正因子的可靠的無監督解耦度量方法是將來研究的一個重要方向,由於無監督解耦對於咱們沒法得到真實因子的場景很是有用。考慮到這一點,咱們相信擁有一個可靠的監督度量仍然是有價值的,由於它能夠做爲評估無監督度量方法的黃金標準。
5. Related Work
最近有幾項研究使用判別器來優化散度,以鼓勵潛在編碼的獨立性。對抗自編碼器(AAE, Makhzani et al., 2015)移除了VAE目標函數中的I(x;z)項,經過密度比技巧最大化負重構損失-KL(q(z) || p(z))的值,展現了在半監督分類和無監督聚類中的應用。這意味着AAE目標不是對數邊際似然的下界。雖然優化一個下界並非徹底必要的,但它確實確保咱們有一個有效的生成模型;擁有一個具備解耦潛在向量的生成模型的好處是,它是一個單一的模型,能夠用於各類任務,例如基於模型的RL規劃、視覺概念學習和半監督學習等。在PixelGAN自編碼器中(Makhzani & Frey, 2017),一樣的目標也被用來研究潛在編碼與解碼器之間的信息分解。做者指出,在編碼器的輸入中添加噪聲是相當重要的,這意味着限制編碼中包含的關於輸入的信息是相當重要的,而I(x;z)項不該該從VAE目標中刪除。Brakel & Bengio (2017)也使用一個判別器對編碼的分佈與其邊值乘積之間的Jensen-Shannon散度進行懲罰。然而,他們使用的是帶有肯定性編碼器和解碼器的GAN損失,且只在獨立成分分析源分離的背景下探索他們的技術。
早期在無監督解耦中的研究包含(Schmid-huber, 1992) 企圖經過懲罰給定其餘潛在維度的可預測性去解耦在一個自動編碼器中的編碼,以及 (Desjardins et al., 2012) 使用玻爾茲曼機的一個變體來解耦數據中兩個變量的關係。最近 Achille & Soatto (2018)在監督學習的背景下,使用了一個懲罰TC項的損失函數。他們代表,他們的方法能夠擴展到VAE環境,但沒有進行任何有關解耦的實驗來支持該理論。在同期的研究中,Kumar et al. (2018) 在VAEs中使用矩匹配來懲罰潛在維度之間的協方差,但不限制平均或更高的矩。咱們在附錄F中提供了這些相關方法的目標,並展現了包括AAE在內的解耦性能的實驗結果。
已經有不少工做使用可預測性的概念來量化解耦,最多的是從潛在編碼z中預測真實因素f=(f1,...,fK)的值。日期再推回Yang & Amari (1997),其在線性ICA環境中學習從表徵到因子的線性映射,並量化此映射與排列矩陣的距離。最近的Eastwood & Williams (2018)研究經過訓練Lasso迴歸器將z映射到f,並使用訓練後的權值對解耦進行量化,將這一思想擴展到解耦。與其餘基於迴歸的方法同樣,該方法引入了超參數,如優化器和Lasso懲罰係數。Higgins et al. (2016)的度量方法和咱們提出的度量方法都從帶有一個固定fk但其餘f-k對隨機變化的圖像的z中預測因素k。Schmidhuber (1992) 量化z的不一樣維度之間的可預測性,使用一個訓練有素的預測器從z - j預測zj
不變性和等方差性在文獻(Goodfellow et al., 2009; Kivinen & Williams, 2011; Lenc & Vedaldi, 2015)中常常被認爲是表徵的理想性質。若是在數據的有害因素(與任務無關)發生更改時,某個表徵沒有發生更改,則該表徵對於特定任務來講是不變的。當改變變量的因子時,等方差性表示以穩定和可預測的方式變化。在本文所使用的意義上,解耦表徵是等變的,由於改變一個變量因子將以可預測的方式改變解耦表徵的某一維。給定一個任務,經過忽略編碼該任務的有害因素的維度,能夠很容易地從解耦表徵中得到一個不變的表徵(Cohen & Welling, 2014)。
基於本文的初步版本,(Chen et al., 2018)最近提出了一種基於小批量的方法來替代咱們基於密度比技巧的方法來估計總相關性,並引入了一種信息理論解耦度量方法。
6. Experiments
在下面的數據集中比較FactorVAE和β-VAE:
i)已知生成因素的數據集,即定義好下面的因素就可以生成相同的圖像:
ii)未知生成因素的數據集:
該實驗的細節如encoder/decoder的結構和超參數設置可見附錄A。解耦度量方法的細節以及根據其超參數的敏感性分析在附錄B中給出。
從圖4中可見FactorVAE比VAEs(β=1)獲得更好的解耦分數,同時犧牲的重構損失更少,着重強調了添加總相關性懲罰到VAE目標中的解耦效果:
給定相同的重構損失,FactorVAE最好的解耦分數明顯比β-VAE要好。
在圖5中可以更清晰地看出FactorVAE(γ=40)的最好平均解耦分數大約是0.82,明顯地比β-VAE(β=4)的要高,其大約爲0.73,二者的重構損失大概都是45:
在圖6中咱們能夠看見兩個模型都有找到x位置、y位置和大小的能力,可是不能解耦方向和形狀,尤爲是 β-VAE。對於這個數據集,沒有一個方法可以魯棒地捕獲形狀,即該變量的離散因素
做爲一個完整性檢查,咱們還評估了咱們的度量與Higgins et al. (2016)的度量之間的相關性。Pearson(線性相關係數):0.404,Kendall(排序相同的配對比例):0.310,Spearman(排名線性相關):0.444,p值均爲0.000。所以,正如預期的那樣,這兩個度量方法顯示出至關高的正相關。
咱們還研究瞭如何判別器對總相關性(TC)的估計行爲和γ對真正的TC的影響。從圖7中能夠看出,判別器老是低估了真實TC,這一點也在 (Rosca et al., 2018)研究中獲得了證明。然而真正的TC減小在訓練中,以及更高的γ將致使TC的下降,所以使用判別器得到的梯度可以充分鼓勵編碼分佈的獨立性:
而後咱們評估了InfoWGAN-GP,它是Info-GAN的副本,使用了Wasserstein距離和梯度懲罰。有關概述,請參見附錄G。Info-GAN的一個優勢是,其目標的蒙特卡羅估計相對於其參數是可微的,即便對於離散編碼c也是如此,這使得基於梯度的優化很是簡單。相比之下,基於VAE的梯度優化方法依賴於reprameterisation技巧,須要z是一個可重參數的連續隨機變量,替代方法須要梯度估計的各類方差減小技術 (Mnih & Rezende, 2016; Maddison et al., 2017)。
所以,咱們可能指望Info(W)GAN(-GP)在某些因素是離散的狀況下顯示出更好的解耦性。所以,咱們使用了4個連續潛在向量(每一個連續因子對應一個)和3個類別的一個分類潛在向量(每一個形狀一個)。咱們微調λ,Info(W)GAN(-GP)中互信息項的權重∈{0.0, 0.1, 0.2,……,1.0},噪聲變量數目∈{5,10,20,40,80,160},以及生成器的學習率∈{10−3,10−4}、判別器的學習率∈{10−4,10−5}。
可是從圖8咱們能夠看看法耦分數是低的:
從圖9的潛在向量遍歷能夠看出,模型只學習到了大小因子,並試圖將位置信息放入離散編碼中,這也是解耦分數較低的緣由之一。然而,使用5個連續編碼和沒有分類編碼的方法並無提升解耦分數。早期中止的Info-GAN(訓練不穩定發生前-見附錄H)也給出了相似的結果。一些潛在遍歷給出空白重構的事實代表,該模型不能很好地推廣到p(z)域的全部部分:
InfoWGAN-GP在這個數據集上表現不佳的一個緣由多是InfoGAN對生成器和判別器結構很敏感,這是咱們沒有進行普遍微調的一點。咱們使用相似結構的基於VAE的方法對2D Shapes數據集進行一個公平的比較,但也試着使用更大的結構,獲得的是相似的結果(參見附錄H)。若是結構搜索確實是重要的,這將是InfoGAN相對於FactorVAE和β-VAE的一個弱點,其都選擇了更魯棒的結構。在附錄H中,咱們檢驗了是否可使用InfoWGAN-GP複製Chen et al.(2016)等人對MNIST的研究結果,驗證了與InfoGAN相比,它使訓練更加穩定,並結合InfoGAN和InfoWGAN-GP的進一步實證研究給出了實施細節。
咱們如今顯示三維形狀數據的結果,這是一個更復雜的帶有額外特性,如陰影和背景(天空)的三維場景的數據集。咱們對β-VAE和FactorVAE訓練1m次迭代。圖10再次顯示FactorVAE實現了更好的解耦,與VAE相比重構偏差幾乎沒有增長。此外,對於平均解耦分數來講,FactorVAE和β-VAE類似,可是FactorVAE的重建偏差較低:3515(γ= 36)和3570(β= 24):
圖11中的潛在遍歷代表,這兩個模型都可以在最佳狀況下捕獲變化的因素。然而,經過觀察許多隨機種子的潛在遍歷,能夠明顯看出,這兩個模型都難以理清形狀和尺度的因素:
爲了證實FactorVAE對於二維和三維形狀也給出了一個有效的生成模型,咱們在附錄E中給出了對整個數據集的對數邊際似然評估,以及生成模型的樣本。
咱們也顯示了β-VAE和FactorVAE在帶有未知的生成因素的實驗數據集上的結果,即3D chairs,3D Faces,CelebA。注意,檢查潛在遍歷是這裏惟一可能的評估方法。咱們能夠看到在圖12(圖38和39在附錄I) 中:
FactorVAE與β-VAE相比,重建偏差更小,並能學習變量的合理因素,如圖1三、14和15所示的數據的潛在遍歷:
不幸的是,正如第4節所解釋的,潛在遍歷對咱們的方法的健壯性幾乎沒有什麼幫助。
7. Conclusion and Discussion
咱們介紹了FactorVAE方法,即一種用於解耦的新方法,可以比β-VAE在2D Shapes和3D Shapes數據集有着相同的重建質量時達到更好的解耦分數。此外,咱們還肯定了Higgins et al. (2016)經常使用的解耦度量方法的缺點,提出了一種概念更簡單、不含超參數且避免了超參數失效模式的替代度量方法。最後,咱們對基於VAE的方法和InfoGAN的一個更穩定的變體InfoWGAN-GP方法的解耦進行了實驗評估,並肯定了其相對於基於VAE方法的缺點。
咱們的方法的一個限制是,低的總相關是必要的,但不足以解耦變量的獨立因素。例如,若是除一個潛在維度外的全部維度都摺疊到以前的維度,則TC將爲0,但表示不會被解耦。咱們的解耦度量方法還要求咱們可以生成包含一個固定因子的樣本,這可能並不老是可能的,例如,當咱們的訓練集不能覆蓋全部可能的因子組合時。該指標也不適用於具備非獨立變異因素的數據。在將來的工做中,咱們但願使用離散的潛在變量來建模離散變量的因素,並研究如何使用離散和連續的潛在變量來可靠地捕獲離散和連續因素的組合。