0
兩年前,蒙特利爾大學 Ian Goodfellow 等學者提出“生成對抗網絡”(Generative Adversarial Networks,GANs)的概念,并逐漸引起 AI 業(yè)內人士的注意。其實,直到 2015 年,生成對抗網絡還稱不上是炙手可熱。但自今年(2016)以來,學界、業(yè)界對 GANs 的興趣出現(xiàn)“井噴”:
多篇重磅論文陸續(xù)發(fā)表;
Facebook、Open AI 等 AI 業(yè)界巨頭也加入對 GANs 的研究;
它成為今年 12 月 NIPS 大會當之無愧的明星——在會議大綱中被提到逾 170 次;
GANs之父” Ian Goodfellow 被公推為人工智能的頂級專家;
業(yè)內另一位大牛 Yan Lecun 也對它交口稱贊,稱其為“20 年來機器學習領域最酷的想法”。
現(xiàn)在,雷鋒網獲得消息,就連蘋果也跳上了 GANs 的彩車:蘋果有史以來第一篇公開發(fā)表的 AI 論文,講的是如何更好地利用 GANs,來訓練 AI 圖像識別能力。這是繼蘋果本月初在 NIPS 大會上宣布“將對外公布 AI 研究成果”之后,為兌現(xiàn)諾言做出的行動。
那么,GANs 是如何從一個原本“不溫不火”的技術,成為今天人工智能的主要課題之一?
雷鋒網對此進行了梳理,歸納了 GANs 從誕生到現(xiàn)在如何一步步走向技術成熟。以下是它發(fā)展路線中的大事件(主要研究進展):
Ian Goodfellow
2014 年 6 月,Ian Goodfellow 等學者發(fā)表了論文《Generative Adversarial Nets》,題目即“生成對抗網絡”,這標志著 GANs 的誕生。文中,Ian Goodfellow 等作者詳細介紹了 GANs 的原理,它的優(yōu)點,以及在圖像生成方面的應用。
那么,什么是 GANs?
用 Ian Goodfellow 自己的話來說:
“生成對抗網絡是一種生成模型(Generative Model),其背后基本思想是從訓練庫里獲取很多訓練樣本,從而學習這些訓練案例生成的概率分布。
而實現(xiàn)的方法,是讓兩個網絡相互競爭,‘玩一個游戲’。其中一個叫做生成器網絡( Generator Network),它不斷捕捉訓練庫里真實圖片的概率分布,將輸入的隨機噪聲(Random Noise)轉變成新的樣本(也就是假數(shù)據(jù))。另一個叫做判別器網絡(Discriminator Network),它可以同時觀察真實和假造的數(shù)據(jù),判斷這個數(shù)據(jù)到底是不是真的?!?/p>
對不熟悉 GANs 的讀者,這番解釋或許有些晦澀。因此,雷鋒網特地找來 AI 博主 Adit Deshpande 的解釋,更加清楚直白:
“GANs 的基本原理是它有兩個模型:一個生成器,一個判別器。判別器的任務是判斷給定圖像是否看起來‘自然’,換句話說,是否像是人為(機器)生成的。而生成器的任務是,顧名思義,生成看起來‘自然’的圖像,要求與原始數(shù)據(jù)分布盡可能一致。
GANs 的運作方式可被看作是兩名玩家之間的零和游戲。原論文的類比是,生成器就像一支造假幣的團伙,試圖用假幣蒙混過關。而判別器就像是警察,目標是檢查出假幣。生成器想要騙過判別器,判別器想要不上當。當兩組模型不斷訓練,生成器不斷生成新的結果進行嘗試,它們的能力互相提高,直到生成器生成的人造樣本看起來與原始樣本沒有區(qū)別?!?/p>
更多“什么是 GANs ?”的詳細解說,請參考雷鋒網整理的 Ian Goodfellow NIPS 大會 ppt 演講,Yan Lecun 演講,以及香港理工大學博士生李嫣然的 “GANs 最新進展”特約稿。
早期的 GANs 模型有許多問題。Yan Lecun 指出,其中一項主要缺陷是:GANs 不穩(wěn)定,有時候它永遠不會開始學習,或者生成我們認為合格的輸出。這需要之后的研究一步步解決。
GANs 最重要的應用之一,是生成看起來‘自然’的圖像,這要求對生成器的充分訓練。以下是 Ian Goodfellow 等人的 2014 年論文中,生成器輸出的樣本:
可以看出,生成器在生成數(shù)字和人臉圖像方面做得不錯。但是,使用 CIFAR-10 數(shù)據(jù)庫生成的風景、動物圖片十分模糊。這是 GANs 早期的主要局限之一。
2015 年 6 月 Emily Denton 等人發(fā)表的研究《Deep Generative Image Models using Lapalacian Pyramid of Adversarial Networks》(“深度圖像生成模型:在對抗網絡應用拉普拉斯金字塔”)改變了這一點。研究人員提出,用一系列的卷積神經網絡(CNN)連續(xù)生成清晰度不斷提高的圖像,能最終得到高分辨率圖像。該模型被稱為 LAPGANs 。
其中的拉普拉斯金字塔,是指同一幅圖像在不同分辨率下的一系列過濾圖片。與此前 GAN 架構的區(qū)別是:傳統(tǒng)的 GAN 只有一個 生成器 CNN,負責生成整幅圖像;而在拉普拉斯金字塔結構中,金字塔的每一層(某特定分辨率),都有一個關聯(lián)的 CNN。每一個 CNN 都會生成比上一層 CNN 更加清晰的圖像輸出,然后把該輸出作為下一層的輸入。這樣連續(xù)對圖片進行升采樣,每一步圖像的清晰度都有提升。
拉普拉斯金字塔結構圖像生成示意
這產生了一個新概念:有條件生成對抗網絡(conditional GAN,CGAN),指的是它有多個輸入:低分辨率圖片和噪音矢量。該研究生成的高質量圖片,在 40% 的情況下被真人裁判當做真實圖像。
對該研究的意義,李嫣然評論道:它將 GAN 的學習過程變成了“序列式” 的——不要讓 GAN 一次學完全部的數(shù)據(jù),而是讓 GAN 一步步完成這個學習過程。
把文字轉化為圖像,比起把圖像轉為文字(讓 AI 用文字概括、描述圖像)要難得多。一方面是近乎無限的像素排列方式;另一方面,目前沒人知道如何把它分解,比如像(圖像轉為文字任務中)預測下一個詞那樣。
2016 年 6 月,論文《Generative Adversarial Text to Image Synthesis》(“GANs 文字到圖像的合成”)問世。它介紹了如何通過 GANs 進行從文字到圖像的轉化。比方說,若神經網絡的輸入是“粉色花瓣的花”,輸出就會是一個包含了這些要素的圖像。該任務包含兩個部分:1. 利用自然語言處理來理解輸入中的描述。2. 生成網絡輸出一個準確、自然的圖像,對文字進行表達。
為實現(xiàn)這些目標,生成器和判別器都使用了文字編碼技術:通過循環(huán)文字編碼器(recurrent text encoder)生成的文字屬性,來作為條件對 GAN 進行訓練(詳情參考論文)。這使得 GAN 能夠在輸入的文字描述和輸出圖像之間建立相關性聯(lián)系。
原理示意
該任務中,GAN 其實完成了兩件任務:1.生成自然、說得過去的圖像;2.圖像必須與文字描述有相關性。
利用 GAN, GAN-CLS, GAN-INT,GAN-INT-CLS 生成的結果示意。GT 是真實圖像,從左到右三組圖像的任務分別是:1.全黑色的鳥,粗圓的鳥嘴;2.黃胸、棕冠、黑眉的小鳥;3. 藍冠、藍羽、黑頰的超小鳥,嘴小、踝骨小、爪小。
這是推特 Cortex 研究團隊進行的一項研究,在今年 9 月發(fā)表。它的主要貢獻是開發(fā)出全新的損失函數(shù)(loss function),使得 GANs 能對大幅降采樣后的圖像,恢復它的生動紋理和小顆粒細節(jié)。
對于不熟悉超分辨率的雷鋒網讀者,它是一個能把低分辨率圖像重建為高清圖像的技術。在機器學習中,實現(xiàn)超分辨率需要用成對樣本對系統(tǒng)進行訓練:一個是原始高清圖像,一個是降采樣后的低分辨率圖像。本研究中,低分圖像被作為輸入喂給生成器,它重建出高分辨率圖像。然后,重建圖片和原始圖片被一起交給判別器,來判斷哪一幅是原始圖像。
該研究中的損失函數(shù)可分為兩個部分:對抗損失(adversarial loss )和內容損失(content loss)。在較高層面上,對抗損失使圖像看起來更自然;內容損失則保證重建圖像與低分辨率原始圖像有相似的特點。其中,對抗損失和傳統(tǒng)的 GANs 應用類似,創(chuàng)新的是內容損失。該研究中的內容損失,可被看作為重建的高分辨率圖像和原始高分圖像之間特征圖(feature map)的歐式距離(Euclidean distance)損失。而 GAN 的損失函數(shù)是對抗損失和內容損失的加權和。對原文感興趣的讀者,請點這里。
左欄是原始圖像,右三欄是 GANs 重建的高分圖像。
以上是 GANs 2014-2016 發(fā)展期間的主要里程碑。但讀者們注意,2016 年以來,GANs 的研究應用層出不窮。以上只是最具代表性的幾個,不代表其他 GANs 研究就沒有價值。
值得一說的是,今年 6 月一篇關于深度卷積 GANs (Deep Convolutional Generative Adversarial Networks, DCGAN)的論文在業(yè)內引發(fā)強烈反響:《Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks》(“使用深度卷積 GANs 進行無監(jiān)督表征學習”)。研究人員們發(fā)現(xiàn),用大規(guī)模數(shù)據(jù)庫訓練出的 GANs 能學習一整套層級的特征 (a hierarchy of features),并具有比其他無監(jiān)督學習模型更好的效果。而此前使用 CNN 訓練 GANs 的嘗試大多以失敗告終。當研究人員修改架構創(chuàng)造出 DCGAN,他們能夠看到神經網絡在每一層級學習到的過濾器 。Yan Lecun 評論道,這打開了 GANs 的“黑箱”。
最后,我們來看看在大神 Yan Lecun 眼里,GANs 為什么這么重要:
“它為創(chuàng)建無監(jiān)督學習模型提供了強有力的算法框架,有望幫助我們?yōu)?AI 加入常識(common sense)。我們認為,沿著這條路走下去,有不小的成功機會能開發(fā)出更智慧的 AI ?!?/p>
via adeshpande3,facebook
【兼職召集令!】
如果你對未來充滿憧憬,喜歡探索改變世界的科技進展,look no further!
我們需要這樣的你:
精通英語,對技術與產品感興趣,關注人工智能學術動態(tài)的蘿莉&萌妹子&技術宅;
文字不求妙筆生花,但希望通俗易懂;
在這里,你會收獲:
一群來自天南地北、志同道合的小伙伴;
前沿學術科技動態(tài),每天為自己充充電;
更高的生活品質,翻翻文章就能掙到零花錢;
有意向的小伙伴們把個人介紹/簡歷發(fā)至 guoyixin@leiphone.com,如有作品,歡迎一并附上。
相關文章:
“GAN之父”Goodfellow與網友互動:關于GAN的11個問題(附視頻)
Yann LeCun創(chuàng)造的新詞“預測學習”將要落腳于GANs?
“GANs之父”Goodfellow 38分鐘視頻親授:如何完善生成對抗網絡?(上)
雷峰網版權文章,未經授權禁止轉載。詳情見轉載須知。