三年前,蒙特利爾大學(xué) Ian Goodfellow 等學(xué)者提出「生成式對(duì)抗網(wǎng)絡(luò)」(Generative Adversarial Networks,GANs)的概念,并逐漸引起 AI 業(yè)內(nèi)人士的注意。自 2016 年以來,學(xué)界、業(yè)界對(duì) GAN 的興趣出現(xiàn)「井噴」。近日,谷歌開源 TFGAN 輕量級(jí)的工具庫,據(jù)悉,其設(shè)計(jì)初衷是讓訓(xùn)練和評(píng)估 GAN 變得更加簡(jiǎn)單。
雷鋒網(wǎng) AI 科技評(píng)論將原文編譯整理如下:
訓(xùn)練神經(jīng)網(wǎng)絡(luò)的時(shí)候,通常需要定義一個(gè)損失函數(shù)來告訴網(wǎng)絡(luò)它離目標(biāo)還有多遠(yuǎn)。例如,圖像分類網(wǎng)絡(luò)中通常會(huì)有一個(gè)損失函數(shù),一旦給出錯(cuò)誤的分類就會(huì)進(jìn)行懲罰。如果一個(gè)網(wǎng)絡(luò)把狗的照片錯(cuò)當(dāng)成貓了,那將會(huì)出現(xiàn)很高的損失值。
然而,有些問題并不能輕松用損失函數(shù)來定義,特別是當(dāng)它們涉及到人的感知時(shí),比如圖像壓縮或文本轉(zhuǎn)語音系統(tǒng)。
生成式對(duì)抗網(wǎng)絡(luò) (GAN) 這種機(jī)器學(xué)習(xí)技術(shù)已經(jīng)在廣泛的應(yīng)用領(lǐng)域引導(dǎo)我們?nèi)〉昧诉M(jìn)步,包括基于文本生成圖像、超分辨率,以及機(jī)器人抓取的解決方案。然而,GAN 在理論和軟件工程上都引入了新的挑戰(zhàn),想要跟上它這種快速的研究步伐也很難。
為了讓基于 GAN 的實(shí)驗(yàn)更加容易,谷歌選擇開源 TFGAN,這是一個(gè)輕量級(jí)的庫,設(shè)計(jì)初衷是讓訓(xùn)練和評(píng)估 GAN 變得簡(jiǎn)單。
它提供訓(xùn)練 GAN 的基礎(chǔ)設(shè)施,也提供經(jīng)過良好測(cè)試的損失和評(píng)估指標(biāo),并包括易于使用的示例,可以看到這個(gè)庫極具表達(dá)性和靈活性。與此同時(shí),谷歌還發(fā)布了一個(gè)教程,其中包括能快速基于自己的數(shù)據(jù)進(jìn)行模型訓(xùn)練的高級(jí) API。
上圖展示了對(duì)抗損失對(duì)圖像壓縮的影響。最上面那行是來自 ImageNet 數(shù)據(jù)集的圖像 patch。中間展示了用傳統(tǒng)損失訓(xùn)練的圖像壓縮神經(jīng)網(wǎng)絡(luò)對(duì)圖像進(jìn)行壓縮和解壓縮的結(jié)果。底部是用傳統(tǒng)損失和對(duì)抗性損失訓(xùn)練的網(wǎng)絡(luò)對(duì)圖像進(jìn)行壓縮和解壓縮的結(jié)果。
雖然基于 GAN 損失訓(xùn)練的圖像比起原圖來,信息還是有所丟失,但比起其他的方法,圖片更加清晰,包含更多細(xì)節(jié)。
TFGAN 可以從以下幾個(gè)方面來支持實(shí)驗(yàn)。
它提供簡(jiǎn)單的函數(shù)調(diào)用功能,能覆蓋大部分的 GAN 用例,因此僅需幾行代碼你就能用自己的數(shù)據(jù)訓(xùn)練模型,而且因?yàn)槭遣捎媚K化的方式構(gòu)建,它能覆蓋更特殊的 GAN 設(shè)計(jì)。
你可以任意使用自己想要的模塊——損失、評(píng)估、特征、訓(xùn)練等模塊,這些都是獨(dú)立的。TFGAN 的輕量級(jí)設(shè)計(jì)意味著你可以將它與其他框架或原生 TensorFlow 代碼一起使用。
用 TFGAN 編寫的 GAN 模型很容易從未來基礎(chǔ)設(shè)施的改進(jìn)中受益,你可以從大量已經(jīng)實(shí)現(xiàn)的損失和特征值中進(jìn)行選擇,而不需要再重寫。
最后,代碼經(jīng)過了良好的測(cè)試,因此你不必?fù)?dān)心使用 GAN 庫時(shí)容易出現(xiàn)的數(shù)值或統(tǒng)計(jì)錯(cuò)誤。
如上圖,大多數(shù)文本轉(zhuǎn)語音 (TTS) 神經(jīng)系統(tǒng)產(chǎn)生的頻譜圖都過于平滑。當(dāng)應(yīng)用到 Tacotron TTS 系統(tǒng)時(shí),GAN 可以重新創(chuàng)建一些更真實(shí)的紋理,這將減少輸出音頻中的人工痕跡。
TFGAN 的開源意味著你將與許多 Google 的研究人員使用的相同的工具,任何人都可以受益于谷歌在庫中最先進(jìn)的改進(jìn)。