出手的,是谷歌大腦和蘇黎世聯(lián)邦理工學院。他們提出了新一代GAN:S3GAN。
它們生成的照片,都是真假難辨。
下面這兩只蝴蝶,哪只更生動?
兩張風景照片,哪張更真實?
難以抉擇也正常,反正都是假的。上面的照騙,都是左邊出自S3GAN,右邊的出自BigGAN之手。
它們還有更多作品:
至于哪些是S3GAN,答案文末揭曉。
肉眼難分高下,就用數(shù)據(jù)說話。跑個FID(Frechet Inception Distance)得分,分值越低,就表示這些照騙,越接近人類認識里的真實照片——
S3GAN是8.0分,而BigGAN是8.4分。新選手略微勝出。
你可還記得BigGAN問世之初,直接將圖像生成的逼真度提高了一個Level,引來Twitter上花樣贊賞?
如今它不止被超越,而且是被輕松超越。
“輕松”在哪呢?
S3GAN達到這么好的效果,只用了10%的人工標注數(shù)據(jù)。而老前輩BigGAN,訓練所用的數(shù)據(jù)100%是人工標注過的。
如果用上20%的標注數(shù)據(jù),S3GAN的效果又會更上一層樓。
標注數(shù)據(jù)的缺乏,已經是幫GAN提高生成能力,拓展使用場景的一大瓶頸。如今,這個瓶頸已經幾乎被打破。
現(xiàn)在的S3GAN,只經過了ImageNet的實驗,是實現(xiàn)用更少標注數(shù)據(jù)訓練生成高保真圖像的第一步。
接下來,作者們想要把這種技術應用到“更大”和“更多樣化”的數(shù)據(jù)集中。
為什么訓練GAN生成圖像,需要大量數(shù)據(jù)標注呢?
GAN有生成器、判別器兩大組件。
其中判別器要不停地識破假圖像,激勵生成器拿出更逼真的圖像。
而圖像的標注,就是給判別器做判斷依據(jù)的。比如,這是真的貓,這是真的狗,這是真的漢堡……這是假圖。
可是,沒有那么多標注數(shù)據(jù)怎么辦?
谷歌和ETH蘇黎世的研究人員,決定訓練AI自己標注圖像,給判別器食用。
要讓判別器自己標注圖像,有兩種方法。
一是自監(jiān)督方法,就是給判別器加一個特征提取器 (Feature Extractor) ,從沒有標注的真實訓練數(shù)據(jù)里面,學到它們的表征 (Feature Representation) 。
對這個表征做聚類 (Clustering) ,然后把聚類的分配結果,當成標注來用。
這里的訓練,用的是自監(jiān)督損失函數(shù)。
二是半監(jiān)督方法,也要做特征提取器,但比上一種方法復雜一點點。
在訓練集的一個子集已經標注過的情況下,根據(jù)這些已知信息來學習表征,同時訓練一個線性分類器 (Linear Classifier) 。
這樣,損失函數(shù)會在自監(jiān)督的基礎上,再加一項半監(jiān)督的交叉熵損失 (Cross-Entropy Loss) 。
預訓練了特征提取器,就可以拿去訓練GAN了。這個用一小部分已知標注養(yǎng)成的GAN,叫做S2GAN。
不過,預訓練也不是唯一的方法。
想要雙管齊下,可以用協(xié)同訓練 (Co-Training) :
直接在判別器的表征上面,訓練一個半監(jiān)督的線性分類器,用來預測沒有標注的圖像。這個過程,和GAN的訓練一同進行。
這樣就有了S2GAN的協(xié)同版,叫S2GAN-CO。
然后,團隊還想讓S2GAN變得更強大,就在GAN訓練的穩(wěn)定性上面花了心思。
研究人員說,判別器自己就是一個分類器嘛,如果把這個分類器擴增 (Augmentation) 一下,可能療效上佳。
于是,他們給了分類器一個額外的自監(jiān)督任務,就是為旋轉擴增過的訓練集 (包括真圖和假圖) ,做個預測。
再把這個步驟,和前面的半監(jiān)督模型結合起來,GAN的訓練變得更加穩(wěn)定,就有了升級版S3GAN:
不管是S2GAN還是S3GAN,都借用了前輩BigGAN的網絡架構,用的優(yōu)化超參數(shù)也和前輩一樣。
不同的是,這個研究中,沒有使用正交正則化 (Orthogonal Regularization) ,也沒有使用截斷 (Truncation) 技巧。
訓練的數(shù)據(jù)集,來自ImageNet,其中有130萬訓練圖像和5萬測試圖像,圖像中共有1000個類別。
圖像尺寸被調整成了128×128×3,在每個類別中隨機選擇k%的樣本,來獲取半監(jiān)督方法中的使用的部分標注數(shù)據(jù)集。
最后,在128核的Google TPU v3 Pod進行訓練。
研究對比的基線,是DeepMind的BigGAN,當前記錄的保持者,F(xiàn)ID得分為7.4。
不過,他們在ImageNet上自己實現(xiàn)的BigGAN,F(xiàn)ID為8.4,IS為75,并以此作為了標準。
在這個圖表中,S2GAN是半監(jiān)督的預訓練方法。S2GAN-CO是半監(jiān)督的協(xié)同訓練方法。
S3GAN,是S2GAN加上一個自監(jiān)督的線性分類器 (把數(shù)據(jù)集旋轉擴增之后再拿給它分類) 。
其中,效果最好的是S3GAN,只使用10%由人工標注的數(shù)據(jù),F(xiàn)ID得分達到8.0,IS得分為78.7,表現(xiàn)均優(yōu)于BigGAN。
如果你對這項研究感興趣,請收好傳送門:
論文:
High-Fidelity Image Generation With Fewer Labels
https://arxiv.org/abs/1903.02271
文章開頭的這些照騙展示,就出自論文之中:
第一行是BigGAN作品,第二行是S3GAN新品,你猜對了嗎?
另外,他們還在GitHub上開源了論文中實驗所用全部代碼:
https://github.com/google/compare_gan
— 完 —
訂閱AI內參,獲取AI行業(yè)資訊
購買AI書籍
誠摯招聘