如果要選一個近兩年深度學習最火的方向,GANs(生成對抗網路)可絕對是大熱門。
以“左右互搏”的觀念為人所知,GANs從概念開始就讓人激動不已。不過從GANs被提出的第一天起,深度學習圈就出了個“大坑”,而且越挖越大、完全沒有被填滿的趨勢。
瞅一瞅GANs大家族的成員:InfoGANs,relativistic GANs,SAGAN…,成百上千,而且這個列表還在不停增加。這也讓想要持續瞭解GANs的同學們有心無力。
不慌!
文摘字幕組本次的新作,就將系統介紹GANs家族的新成員,讓你一次學完10個GANs明星模型。
當然,本期視訊作者很皮的在每個GAN家族的介紹前都加入了自己的土味兒說唱,文摘菌在翻譯的時候為了保持押韻也很努力了!希望你在這些不太押韻的rap中學習到儘可能多的知識點!
來一睹為快吧!skr skr!
點選觀看
時長20分鐘
帶有中文字幕
▼
1、互資訊對抗網路(InfoGANs)
1、互資訊對抗網路(InfoGANs)
隱向量對映為什麼沒啥幫助?
因為向量和影象沒有走同步
通過最大化互資訊
互資訊對抗網路(InfoGANs)使之變得可能
首先,我們來看看互資訊對抗網路(InfoGANs)
(文摘菌:這也太濫竽充數了吧……)
InfoGANs很好運用了互資訊的概念,試圖以完全非監督的方式學習分解特徵。互資訊定義為,在知道一個變數資訊後,對另一變數所學的額外資訊量, 它就像基於天氣預報資訊所得的板球晃動的增益資訊。
這裡我們要在隱向量與生成的影象之間,使互資訊最大化,這意味著隱向量和影象應近似對映,這導致影象的知識直接對應隱向量的知識,而不像常規的生成對抗網路,同一張影象會對應或者纏繞於多個隱空間的多個隱向量。我覺得這是資訊理論在生成對抗網路的一種非常漂亮的應用。
2、相對生成對抗網路(Relativistic GANs)
2、相對生成對抗網路(Relativistic GANs)
這篇論文向GAN的眾神提出挑戰
新的粉絲在reddit和推特上引起慌亂
不止粉絲, 連lan Goodfellow也立站
相對生成對抗網路說我來的有點晚
(文摘菌:單押X4!)
下面講講相對生成對抗網路(Relativistic GANs)。這裡面的想法讓人非常雞凍,甚至連GANs之父Ian Goodfellow本人都得發推稱讚。
作者恰如其分指出GANs中有趣的一點:鑑別器在學習區分真實圖片的過程極其槽糕。事實上,它說這個問題在初次發表的論文中就應該處理好。
鑑別器把所有的結果影象歸為0或1兩類,這將導致系統不穩定。實際情況下,真假影象的值在0.5之間徘徊,甚至是生成器帶來的0.5~0.55的微小擾動,都會容易導致假的影象比起真的影象更加真實。這種非常不穩地的對映類似於一個倒立擺系統。
因此論文指出類似於WGANs (Wasserstein GANs) 或者BEGAN等,鑑別器中的損失應該是相對的, 這樣生成器學會了擴充套件,鑑別器也就被真資料的異常與假貨之間的最大化差別所擊垮了。
論文得出了兩種方案 並可以被應用於大部分現有的架構。鑑別器不再判別真實資料的概率,而是給真假影象賦予一個臨界值 使得關鍵差值的sigmoid函式最大化。這被稱為RSGAN。
另一個變體叫相對平均標準GAN (relativistic average standard GAN)。它試圖考慮真假影象的損失值。對於假影象而言 損失是最小化假影象關鍵值與真實影象均值的臨界值之差,反之亦然。這樣我們就能夠提高臨界點的全域性穩定性,同時允許生成器挑選出整體損失函式。生成器受限於只能對其中一個上述引數項起作用, 但在常規的GANs中,生成器忽略了其中一項。
3、Cycle GANs
3、Cycle GANs
玫瑰是紅的
紫羅蘭藍紫色
等我用cycleGAN訓練完
所有事情都變樣了
接下來 我們看下Cycle GANs。
Cycle GANs所採用了一種非常神奇的學習方法。
學習直接域遷移非常有趣,比如把馬對映到斑馬的例子在Twitter和其他媒體平臺上屢見不鮮。
我們的目標是,學習X到Y的G對映的過程中,生成器不是選取一些隱向量來對映,而是使用影象直接轉換。
現在我們使用普通的對抗損失來構建一個對映G,從生成的影象X對映到真實影象Y。類似地, 我們也有一個學習反向對映的互補, 但這有一定可能我們會完全丟失原始影象的一些特性,所以我們需要有約束性。因此,我們對正向和反向對映操作都引入了迴圈約束。整個損失函式包含原始的相關對映,原始反向對映,以及迴圈對映步驟。這是一個簡單且有效的域遷移的觀點。
4、自注意力生成對抗網路(SAGAN)
4、自注意力生成對抗網路(SAGAN)
請注意
這是SAGAN(自注意力生成對抗網路)
我們使所有GANs翻白眼
我們不多說,就是幹
自注意力生成對抗網路(SAGAN)是最近由Han Zhang和Ian Goodfellow本尊研究提出的。
這篇文章裡, Ian提出將注意力機制引入生成對抗網路的生成器和鑑別器。它通過對所有深度的特徵應用1x1卷積,以一個點表示受關注區域。隨後,將多個對原始特徵對映的softmax相乘,從而促進注意力區域的特徵輸出,使得注意力圖得到了改善。1x1卷積濾波器能夠學習得出最佳結果,相較其他的生成對抗網路 SAGAN需要學習的方式非常少。
5、漸進生成對抗網路(progressive GANs)
5、漸進生成對抗網路(progressive GANs)
GANs應付不了高解析度
那我們該用什麼工具?
逐漸增加複雜度
Like小波變換
Pro GANs使之變得簡單
再來看看漸進生成對抗網路(progressive GANs)。這個點子讓人回想起傳統好用的小波變換演算法, 它漸進式增加學習任務的複雜度,這個過程和教小孩東西類似。
我們首先學習到4x4解析度的影象。該影象是在原始影象基礎上高度壓縮而來, 然後慢慢對生成器和鑑別器新增層次,使其能夠學習16x16解析度的影象,直到我們生成完整的1024x1024解析度的影象。
是不是很酷? 新新增的層次被視為一個殘差塊,並隨著樣本解析度佔比逐步減少,超解析度塊的權重慢慢增加。這就是為什麼我們要記住多解析度分析和訊號處理這些傳統概念。鬼知道它們哪天就派上用場了!
6、DC-GAN
6、DC-GAN
想知道訓練GANs的全集
這不是DC漫畫
是DCGAN和卷積
DC-GAN是一篇說明如何訓練一個卷積GAN規則的文章。
(1)用帶有步長的卷積層替換判別器中的池化層和生成器中的反摺積層。
作者的想法是:讓模型自己學習下采樣的過程 而不是我們人為地。在積聚和靜態選擇時下采樣。
(2)在最初的卷積層中放棄全連結層。
它們混淆了特徵的區域性資訊,結果這讓特徵難以區分 。
(3)在生成器和判別器中使用批歸一化方法。
它能讓學習過程更加平穩,使得資料歸一化到均值為0方差為1,它甚至可以有效減少模式坍塌(mode collapse)的問題。但是注意,你要避免在生成器的最後和判別器引入較大樣本震盪和模型不穩定的開始時使用批歸一化。
(4)在判別起中使用leaky Relu並且在生成器中使用Relu,但是在最後一層中要使用tanh來更快速的學習。
它同時還強調了隱空間的能力,這個能力體現在它可以在空間中執行向量運算並在影象空間中展示這種變換是有意義的。
最有趣的一個實驗是一個繪製影象實驗。生成器可以通過抑制生成器輸出的視窗的邊界框來生成沒有視窗的影象,這是通過在倒數第二個卷積層學習一個視窗對映實現的。這個模型下一步在蒙版區域填補一面牆或者特定的物體,結果非常的驚人。
7、WGANs
7、WGANs
這不是魔術
這只是數學
讓模型穩定住
模型垮塌都拒絕!
來杯伏特加
邀模型一起嗨
使對映連續
迎接WGAN的到來
WGANs因其模型的設計和運作方式讓人驚歎。這裡的critic用來估計生成影象和真實影象之間的距離,模型優化引數的過程中會使這個距離最小化。最有意義的事情是,critic能夠有效的衡量不同分佈之間EMD距離的差異性,並且能消除模式坍塌問題。這是因為生成器沒有通過判別器向某一點或者模式優化 而是向著某一分佈優化。EMD距離有相關性並且保證了。概率對映在一定限制條件下連續可微。
8、BEGANs
8、BEGANs
控制多樣化
成比例地增長
我不知道怎麼押韻
那就讓BEGANs出場
在BEGANs中我們將編碼器和解碼器看作一個判別器。這裡的目標是使真假圖片構成的自編碼器損失分佈使得EMD距離更近。一方面,它可以匹配真圖片和假圖片的分佈,此外重構損失能夠直接影響每一個畫素點,不像WGANs一樣限制lipchitz條件。WGANs考慮距離的下限並且優化它,但是在WGANs中我們對圖片分佈中的距離建模。
這裡我們使用自編碼器損失進行建模,損失的下限是基於這兩個概率值的損失函式分佈的平均值的差的絕對值,BEGANS會最大化這個差異來訓練判別器,同時最小化這個差異來訓練生成器。它還引入了多樣性係數 這個係數大致等於預期損失和原始影象的預期損失的比。理想上這個值應該是1,但是我們並不想導致其和原始影象有相似的分佈,因而保證均值稍稍低於原始影象。
如果我們保持這個值接近0,生成影象的多樣性會更低. 因為生成模型更專注於生成真實影象,。受比例控制理論的啟發, 我們更新這個比例,在訓練的過程中引入一個引數kt,這樣我們能夠在訓練的過程中維持多樣性比例。模型收斂的點是被清晰定義好了的,生成器和判別器的更新是並行的。此外, 我們也沒有限制Lipchitz條件,這也就是為什麼BEGANs非常有意思以及必讀的原因。
9、VAE-GANs
9、VAE-GANs
VAE在編碼器中引入了隨機性
催趕著隱空間,讓它變有序
訓練的部分是唯一的旋律
調個頭就是VAE-GANs
變分自編碼器是一個非常棒的想法,它能夠保證學習到的隱空間是平滑的,這是因為解碼器使用的是隨機排列的編碼向量。
我們可以將解碼器部分看作GANs的閱讀器。伴隨原始損失,我們同樣有多樣性損失。在原始損失中,我們最大化x在z條件下的期望 這個值正常情況下應該是隨機的。我們使用一個正則項限制VAE中的隱空間的可視性,這使得它趨近於標準正態分佈。對於解碼器,或者也可以說成生成器,我們新增兩項使得解碼器可以被單獨優化。另一方面,判別器通過製造生成影象和原始影象的隔閡進行優化。
10、Sequence GANs
10、Sequence GANs
一撮RL少許GAN
加點RNN變炒飯
這論文好似交響樂
Sequence GAN是剛出爐的感覺
Sequence GANs是一種非常有意思的GAN神經網路,它成功的結合了強化學習、序列學習和GAN。他將序列看作強化學習的決策過程,它將生成器當作一個agent,把判別器當作critic。
論文中用蒙特卡洛搜尋的策略梯度學習序列。它遵從增強的策略,生成器是一個RNN,而判別器是一個CNN。使用CNN而不是RNN的原因是,CNN作為判別器能取得更好的效果。
我們基於序列訓練判別器,它之後會被拿來和真實的序列進行比較。此外,生成器會從當前狀態產生多種序, 我們對每一種序列賦上判別器的打分,然後我們基於期望的每一組狀態和動作的組合的收益來學習策略。這對人們研究強化學習和時間序列模型和應用是一個很好的開端。