最近,著名人工智能研究組織OpenAI發(fā)布了其最新工作:《Glow:更好的可逆生成模型》(《Glow:BetterReversible Generative Models》)。
據(jù)文章介紹,Glow是一個可逆的生成模型,它使用了可逆的1×1卷積。它基于以前關(guān)于可逆生成模型的研究,并簡化了體系結(jié)構(gòu)。該模型能夠生成逼真的高分辨率圖像,支持有效的采樣,并能發(fā)現(xiàn)可用于數(shù)據(jù)處理的特征。研究人員公開了模型代碼和一個在線可視化工具,以便人們能夠使用這個模型并繼續(xù)開展研究。
生成模型是基于觀察數(shù)據(jù),然后學習出如何生成這些數(shù)據(jù)的模型。學習數(shù)據(jù)生成過程需要學習數(shù)據(jù)中存在的結(jié)構(gòu),成功的模型應該能夠生成與數(shù)據(jù)相似的輸出。精確生成模型具有廣泛的應用,包括語音合成、文本分析與合成、半監(jiān)督學習和基于模型的控制。研究人員提出的技術(shù)也可以應用于這些問題。
Glow是一種可逆的生成模型,也稱為基于流的生成模型,是NICE和RealNVP技術(shù)的延伸。相比于GAN和VAES,基于流的生成模型在研究領(lǐng)域中關(guān)注較少。
精確的潛變量推斷和最大似然估計。在VAE中,只能近似推斷對應于數(shù)據(jù)點的潛變量的值。GAN根本沒有編碼器來推斷潛在的情況。在可逆的生成模型中,推斷潛在情況可以在沒有近似的情況下精確完成。這不僅可以導致精確的推斷,而且還可以優(yōu)化最大似然估計。
有效推理和有效生成。自回歸模型,例如PixelCNN,也是可逆的,但是從這些模型很難并行化,而且通常在并行時效率很低?;诹鞯纳赡P?,如Glow和RealNVP,對于推理和生成來說都是高效的并行化模型。
Glow對兩名研究人員臉部圖像的屬性操作。訓練過程中,模型沒有提供眼睛、年齡等屬性標簽等情況下,自己學習潛在空間,部分特定方向?qū)毭芏?,年齡,頭發(fā)顏色等屬性的變化
下游任務可用的潛在空間。自回歸模型的隱藏層具有未知的邊緣分布,使得對數(shù)據(jù)的有效處理變得更加困難。在GANs中,數(shù)據(jù)點通常不能在潛在空間中直接表示。對于可逆的生成模型和VAE則不是這樣,它們允許各種操作,例如數(shù)據(jù)插值和數(shù)據(jù)修改。
節(jié)省內(nèi)存。在可逆神經(jīng)網(wǎng)絡中計算梯度需要一定數(shù)量的內(nèi)存,在RevNet文章中有所解釋。
RealNVP是以前基于流的生成模型最好的結(jié)果,研究人員的方法與RealNVP相比取得了顯著的改進。對于RealNVP模型和Glow模型,在不同數(shù)據(jù)集的測試集上進行了量化性能評估。Glow模型可以高效生成逼真的高分辨率圖像。這個模型在NVIDIA 1080 Ti GPU上產(chǎn)生一個256×256的樣品需要130毫秒。
研究人員還可以在任意人臉之間進行插值,使用編碼器對兩幅圖像進行編碼,并從中間點進行采樣。請注意,輸入是任意的人臉,而不是來自模型的樣本,從而證明了模型支持整個目標分布。
研究人員可以在沒有標簽的情況下訓練一個基于流的模型,然后將學習到的模型用于后續(xù)任務,比如處理輸入的屬性。這些語義屬性可以是面部或頭發(fā)的顏色、圖像的風格、聲音的音高,或者文本句子的情感。由于基于流的模型有一個非常好的編碼器,因此可以對輸入進行編碼,并計算有和不帶屬性的輸入的平均潛在向量。然后,可以使用兩者之間的向量方向來操作對該屬性的任意輸入。
研究人員的主要貢獻同時也是與RealNVP模型的不同之處在于增加了一個可逆的1×1卷積,以及刪除了一些組件,從而簡化了整個體系結(jié)構(gòu)。
RealNVP體系結(jié)構(gòu)由兩種類型的層組成:具有棋盤掩碼的層和具有通道掩碼的層。研究人員移除了棋盤掩碼的層,簡化了體系結(jié)構(gòu)。具有通道掩碼的層重復執(zhí)行以下步驟可以等效:
通過在通道維度上逆轉(zhuǎn)輸入的順序來改變輸入。
按照特征維數(shù)將輸入對分成A和B兩個部分。
將A輸入淺層卷積神經(jīng)網(wǎng)絡。根據(jù)神經(jīng)網(wǎng)絡的輸出線性變換B。
連接A和B。
通過連接這些層,A更新B,B更新A,然后A更新B。這種信息的雙向流動顯然是相當僵化的。研究人員發(fā)現(xiàn),通過將步驟(1)的反向排列改變?yōu)殡S機全排列,模型的性能得到了改善。
更進一步,研究人員還可以學習最優(yōu)排列。學習置換矩陣是一種離散優(yōu)化,不能適用到梯度上升。但由于置換操作只是具有平方矩陣的線性變換的特例,所以可以用卷積神經(jīng)網(wǎng)絡來實現(xiàn),因為置換通道等價于輸入和輸出通道數(shù)相等的1x1卷積運算。因此,研究人員用學習的1x1卷積運算代替固定置換。將lxl卷積的權(quán)值初始化為隨機旋轉(zhuǎn)矩陣。此操作帶來了顯著的模型改進。研究人員還證明了通過對權(quán)值進行LU分解,可以有效地完成目標函數(shù)優(yōu)化所涉及的計算。
另外,研究者還刪除了批歸一化,并將其替換為激活歸一化層。這一層只是簡單地轉(zhuǎn)移和縮放激活函數(shù),給定數(shù)據(jù)的初始minibatch,該層具備依靠數(shù)據(jù)的初始化技術(shù)可對激活函數(shù)進行歸一化操作。這允許將minibatch的大小縮小到1(對于大型圖像),并擴大模型的大小。
研究人員的體系結(jié)構(gòu)結(jié)合了各種優(yōu)化,例如梯度檢查點,使其能夠更大的規(guī)模地訓練基于流的生成模型。研究人員使用Horovod在集群上輕松地訓練研究人員的模型;研究人員演示中使用的模型在五臺機器上進行了訓練,每臺機器有八個GPU。使用這個配置,研究人員可以訓練超過一億個參數(shù)的模型。
研究人員的工作表明,可以訓練基于流的模型來生成逼真的高分辨率圖像,并可以很容易地學習到隱藏表征。研究人員為今后的工作提出了幾個方向:
在似然函數(shù)上與其他模型比較。在對數(shù)似然方面,自回歸模型和VAE模型的性能優(yōu)于基于流的模型,但它們分別存在采樣效率低和推理不精確的缺點。研究人員可以將基于流的模型、VAE模型和自回歸模型結(jié)合起來,以權(quán)衡它們的優(yōu)勢,這將是未來工作的一個有趣的方向。
改進體系結(jié)構(gòu),提高計算效率和參數(shù)效率。為了生成逼真的高分辨率圖像,人臉生成模型使用了200億參數(shù)和600層卷積層,這使得訓練的成本很高。深度較小的模型在學習長期依存關(guān)系方面表現(xiàn)較差。使用自注意架構(gòu),或者進行漸進式的訓練來擴展到高分辨率,可以使訓練Glow模型的成本降低。(摘自美《深科技》)(編輯/華生)