超越GAN!OpenAI提出可逆生成模型,AI合成超逼真人像
新智元推薦
來源:OpenAI
編譯:文強
【新智元導讀】OpenAI最新提出的可逆生成模型Glow,可以使用相對少的數據,快速生成高清的逼真圖像,具有GAN和VAE所不具備的精確操作潛在變數、需要內存少等優勢。
OpenAI剛剛在博客介紹了他們的最新成果——Glow,一種使用可逆1x1卷積的可逆生成模型。
Glow 可以生成逼真的高解析度圖像,支持高效採樣,並且可以自動學習圖像中屬性特徵,比如人的五官。
先來看效果,加了鬍子的Hinton,笑容調到最高,眼神也看起來更亮:
下圖是使用Glow操縱兩名研究人員面部圖像的屬性。模型在訓練的時候並沒有給出眼睛、年齡等屬性標籤,但自己學習了一個潛在空間,其中某些方向對應鬍鬚密度,年齡,發色等屬性的變化。
人臉混合過度的效果也十分自然:
這是使用30,000個高解析度面部數據集進行訓練後,Glow模型中的樣本,可以說很逼真了。如果不說明,應該有不少人會覺得是真人照片。
再放大來看,這個效果至少是不輸給GAN的:
Glow模型生成一個256 x 256的樣本,在NVIDIA 1080 Ti GPU上只需要大約130ms。使用 reduced-temperature模型採樣結果更好,上面展示的例子是溫度0.7的結果。
數據利用率高,可泛化,優於GAN和VAE
Glow是一種可逆生成模型(reversible generative model),也被稱為基於流的生成模型(flow-based generative model)。目前,學界還很少關注基於流的生成模型,因為GAN和VAE這些顯而易見的原因。
OpenAI的研究人員在沒有標籤的情況下訓練基於流的模型,然後將學習到的潛在表示用於下游任務,例如操縱輸入圖像的屬性。這些屬性可以是面部圖像中的頭髮顏色,也可以是音樂的音調或者文本句子的情感。
上述過程只需要相對少量的標記數據,並且可以在模型訓練完成後完成(訓練時不需要標籤)。使用GAN的工作需要單獨訓練編碼器。而使用VAE的方法僅能確保解碼器和編碼器數據兼容。Cycle-GAN雖然可以直接學習表示變換的函數,但每次變換都需要進行重新訓練。
訓練基於流的生成模型操縱屬性的簡單代碼:
Glow的具體操作過程
OpenAI研究人員表示,這項工作是建立在非線性成分估計(Dinh L. et, NICE: Non-linear Independent Components Estimation)和RealNVP(Dinh L. et, Density estimation using Real NVP)的基礎上。
他們的主要貢獻是增加了可逆的1x1卷積,並且刪除了RealNVP的其他組件,從而簡化了整體架構。
RealNVP架構包含兩種類型的層:一種是有棋盤格masking的層,一種是有channel-wise masking的層。OpenAI去掉了前一種棋盤格masking,簡化了整體結構。
在Glow模型的工作中,具有channel-wise masking的層不斷重複下列步驟:
通過在channel維度上反轉輸入的順序來置換輸入。
將輸入在特徵和維度的中間分為A和B兩部分。
將A輸入一個淺層的卷積神經網路,根據神經網路的輸出線性變換B
連接A和B
將這些層鏈接起來,讓A更新B,B更新A,然後A再更新B,以此往複。這種雙向信息流非常rigid。研究人員發現,通過將步驟(1)的反向排列改變為(固定的)shuffle 排列還能改善模型性能。
使用1x1卷積的效果要顯著好於逆轉和Shuffle
此外,他們還將批歸一化(BN)換成了一個激活歸一化層(activation normalization layer)。這個層能夠轉變和放大激活。因此,能將大圖像最小的批量大小縮小到1,並擴大模型的大小。
這個架構結合了多種優化,例如梯度檢查點(gradient checkpointing),使研究人員能夠比平常更大規模地訓練基於流的生成模型。他們還使用Horovod在多台機器的集群上訓練模型,上面演示中使用的模型在5台機器上訓練,每台有8個GPU。使用這種設置,他們訓練了具有超過一億個參數的模型。
基於流的生成模型,大有可為!
OpenAI研究人員表示,他們在這項工作中表明,可以訓練基於流的模型(flow-based)來生成逼真的高解析度圖像,並且學習可以輕鬆用於下游任務(如數據操作)的潛在表示。
基於流的生成模型有以下優點:
精確的潛變數推斷和對數似然估計。在VAE中,只能近似推斷出與某個數據點相對應的潛在變數的值。GAN則根本沒有編碼器來推斷潛伏變數。但是,在可逆生成模型中,不僅可以實現準確的潛在變數推理,還可以優化數據的對數似然,而不是只是其下限。
高效的推理和有效的合成。自回歸模型,例如PixelCNN,也是可逆的,但是這些模型的合成難以並行化,往往在並行硬體上效率很低。基於流的生成模型,比如Glow和RealNVP,可以有效地進行推理與合成的並行化。
下游任務的有用潛在空間。自回歸模型的隱藏層邊際分散式未知的,因此很難進行有效的數據操作。在GAN中,數據點通常不能直接在潛在空間中表示,因為它們沒有編碼器,可能不完全支持數據分布。但可逆生成模型和VAE,就能進行數據點之間的插值,對現有數據點進行有意義的修改等操作。
節省內存的巨大潛力。如RevNet論文所述,在可逆神經網路中計算梯度需要的內存是固定的,不會隨著深度的增加而增加。
他們建議未來可以繼續探索這兩個方向:
自回歸模型和VAE在對數似然性方面比基於流的模型表現更好,但它們分別具有採樣低效和推理不精確的缺點。未來,可以將基於流的模型、VAE和自回歸模型結合起來,權衡彼此優勢,這將是一個有趣的方向。
改進架構來提高計算效率和參數效率。為了生成逼真的高解析度圖像,面部生成模型使用200M規模參數和大約600個卷積層,這需要花費很高的訓練成本。深度較小的模型在學習長時間依賴(long-range dependencies)方面表現較差。使用self attention結構,或者用漸進式訓練擴展到高解析度,可以讓訓練流模型的計算成本更低。
編譯來源:https://blog.openai.com/glow/
相關論文:https://d4mucfpksywv.cloudfront.net/research-covers/glow/paper/glow.pdf
【加入社群】
新智元 AI 技術 + 產業社群招募中,歡迎對 AI 技術 + 產業落地感興趣的同學,加小助手微信號: aiera2015_3入群;通過審核後我們將邀請進群,加入社群後務必修改群備註(姓名 - 公司 - 職位;專業群審核較嚴,敬請諒解)。
※CVPR 2018:用GAN預測20年後你長什麼樣
※「Science重磅」DeepMind生成查詢網路GQN,無監督學習展現3D場景
TAG:新智元 |