一個(gè) Transformer,很強(qiáng);兩個(gè),更強(qiáng)?

極市導(dǎo)讀
本文介紹了來自德州大學(xué)奧斯汀分校的博士生江亦凡的新工作-TransGAN,主要研究了不使用任何其他卷積網(wǎng)絡(luò)的情況下,Transformer能否用來構(gòu)建GAN網(wǎng)絡(luò)。本文記錄了作者的成文思路。>>加入極市CV技術(shù)交流群,走在計(jì)算機(jī)視覺的最前沿
TransGAN,顧名思義也就是無需卷積,僅使用Transfomer構(gòu)建的GAN網(wǎng)絡(luò)。在上周的青源LIVE報(bào)告中,來自德州大學(xué)奧斯汀分校的博士生江亦凡探討了有關(guān)TransGAN一些有趣的問題,如基于Transformer的GAN如何在不同的數(shù)據(jù)集上執(zhí)行;TransGAN與基于ConvNets的GAN相比有多快;如何將其擴(kuò)展到更高分辨率的圖像生成任務(wù)中等。本文記錄了作者的成文思路,以饗讀者。
首先回顧一下GAN的發(fā)展歷史。
14年開始發(fā)表了生成對(duì)抗網(wǎng)絡(luò)后,圍繞GAN的相關(guān)工作層出不窮:
15年DCGAN首次將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用到GAN網(wǎng)絡(luò)構(gòu)建當(dāng)中;
16年WGAN設(shè)計(jì)了新的損失函數(shù),相比于原始的GAN Loss有更加好的優(yōu)化效果;
17年SN-GAN利用譜歸一化的方法使模型更加穩(wěn)定,Progressive GAN把生成GAN的生成分辨率提升到了1024 x 1024的級(jí)別,同樣在17年SA-GAN利用了self-attention module讓生成器和判別器可以自動(dòng)學(xué)習(xí)圖像的全局信息。
之后GAN的發(fā)展越來越火爆,18年的BigGAN通過增加模型大小和batch size,使模型 能夠在ImageNet上達(dá)到優(yōu)異的效果,StyleGAN把不同維度的元素信息進(jìn)行融合增加模型性能。AutoGAN用神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索(NAS)的方法搜一個(gè)GAN 的網(wǎng)絡(luò)結(jié)構(gòu)。

01 下一步GAN將去向何方?
基于對(duì)前人工作的分析,作者試圖找到一種結(jié)構(gòu)更加新穎,同時(shí)能夠兼顧效率和生成質(zhì)量的新方法。
最早作者注意到了Vision Transformer的工作(圖2),這項(xiàng)工作提出了一個(gè)非常新的思維方式:「不再把圖像作為連續(xù)域的信息送入卷積神經(jīng)網(wǎng)絡(luò),而是把Image看成patch的組合,轉(zhuǎn)換成一維結(jié)構(gòu)送入Transformer網(wǎng)絡(luò)結(jié)構(gòu)」,這項(xiàng)工作中也結(jié)合了position encoding、classification token等技巧,作者也在試圖嚴(yán)格遵循最原始的Transformer結(jié)構(gòu)。

鑒于Transformer在NLP中已經(jīng)取得了非常大的成功,研究者們也在試圖探索其在更多領(lǐng)域的應(yīng)用,如Vision Transformer等等。事實(shí)上,如果Transformer能夠擴(kuò)展到更多的任務(wù)和領(lǐng)域當(dāng)中,甚至說如果Transformer能作為通用的模型來統(tǒng)一不同的領(lǐng)域,那將會(huì)對(duì)工業(yè)界和學(xué)術(shù)界影響深遠(yuǎn)。在這種想法的驅(qū)使下,作者主要研究了Transformer能否用來構(gòu)建GAN網(wǎng)絡(luò),且不使用任何其他卷積網(wǎng)絡(luò)。
02 TransGAN的主要架構(gòu)
TransGAN主要架構(gòu)有兩個(gè)核心部分:
l Generator,用來生成圖像來欺騙Discriminator;
l Discriminator,用來區(qū)分真圖像和假圖像。
該工作需要分別設(shè)計(jì)這兩個(gè)網(wǎng)絡(luò),其中最關(guān)鍵的是如何設(shè)計(jì)一個(gè)可用的Generator,在 該項(xiàng)工作出現(xiàn)之前,曾有一些工作嘗試把Transformer用低分辨率圖像生成上面去(如auto-regression),但這些工作并沒有解決GAN的任務(wù),并且往往是在pixel level進(jìn)行 復(fù)雜的計(jì)算,消耗巨大的計(jì)算資源。相?之下,由于GAN的訓(xùn)練不穩(wěn)定等因素,把 Transformer應(yīng)?在GAN?絡(luò)上更具有挑戰(zhàn)性。
作者的做法是首先從一個(gè)很低的Resolution生成圖像,圖3是TransGAN的主要結(jié)構(gòu),圖3左邊Generator中的(8? 8)表示把二維像素值壓平成了一維的結(jié)構(gòu)作為input,并且不斷增大圖像的大小,最終得到一個(gè)高分辨率的圖像。Discriminator的設(shè)計(jì)沿用了Vision Transformer中將圖像Token化的思路,分patch輸入到Transformer中去。

為了驗(yàn)證這種方法的有效性,作者將他們?cè)O(shè)計(jì)的Transformer結(jié)構(gòu)和之前的AutoGAN結(jié) 構(gòu)進(jìn)行了對(duì)比,分別設(shè)計(jì)了多組不同的實(shí)驗(yàn)。圖4顯示的是不同結(jié)構(gòu)組合的實(shí)驗(yàn)結(jié)果, 可以看到用Transformer作為l Generator,AutoGAN作為Discriminator取得的效果最佳。
作者猜想,是由于Transformer的self-attention結(jié)構(gòu)導(dǎo)致了圖像不同區(qū)域之間能夠相互作用,從而提升了Generator的效果。如果是單純想做一個(gè)應(yīng)用,到這里基本可以結(jié)束了,但是從研究者的角度,更有意義的事情是用pure transformer來設(shè)計(jì)GAN網(wǎng)絡(luò)。從圖4的表格第四行中可以看到,簡(jiǎn)單地使?transformer的效果并不好,于是需要進(jìn)一步探究,是什么導(dǎo)致了這樣糟糕的狀況?

03 Data Augmentation
經(jīng)過了許多驗(yàn)證,作者第一步探究了Data Augmentation(DA)對(duì)效果產(chǎn)生的影響。
作者把DA加在普通的GAN、AutoGAN、StyleGAN、TransGAN上面分別進(jìn)行了試驗(yàn), 得到的結(jié)果是TransGAN上的提升顯著高于另外兩個(gè)模型結(jié)構(gòu)的提升。為了進(jìn)一步提升效果,作者提出了一個(gè)很有意思的點(diǎn),叫做Local Initialization For Self-Attention,如圖 5所示,作者把當(dāng)前中心的周圍像素進(jìn)行了不同程度的mask。
這個(gè)做法是基于一個(gè)很直觀的設(shè)想,之前的卷積神經(jīng)網(wǎng)絡(luò)的感受野很小,增加感受野是一件對(duì)卷積神經(jīng)網(wǎng)絡(luò)很有意義的事,但是Transformer的self-attention自己本身就有全局感受野,但這恰恰造成了一定的局部信息的丟失,因?yàn)樯蓤D像的時(shí)候,往往領(lǐng)域的像素是更為重要的?;谶@樣的想法,作者提出來local initialization來增加self-attention計(jì)算過程中對(duì)領(lǐng)域像素的權(quán)重。
此外,收到BERT等NLP工作的啟發(fā),Vision Transformer是否能像BERT受到multi-task pretraining的幫助也值得討論。由于GAN的訓(xùn)練過程中需要等到生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò)的平衡,作者沒有直接采用pretraining策略而是還提出了Multi-task Co-Training的訓(xùn)練策略,在訓(xùn)練GAN的同時(shí)引入其他自監(jiān)督的方法(如超分辨率)增加另一個(gè)loss進(jìn)行訓(xùn)練,這幫助了Transformer生成細(xì)節(jié)更加豐富的圖像,使得最終性能得到了一定的提升。
最后,作者將TransGAN的generator在寬度和深度兩個(gè)維度上進(jìn)?了放?,實(shí)驗(yàn)結(jié)果表 明增加模型??同樣能顯著幫助TransGAN性能提升。

04 幾個(gè)問題
作者全面審視了這項(xiàng)工作,有幾個(gè)問題值得探究和回答:
TransGAN可以生成更高分辨率的圖像嗎?
答案是可以的,作者在論文中生成了最多64? 64圖像,但事實(shí)上我們?cè)谶M(jìn)一步試驗(yàn)中發(fā)現(xiàn)甚至能夠達(dá)到256的pixel,代價(jià)是會(huì)增加一定的顯存。
TransGAN的使用過程中有很多的trick嗎?
沒有,TransGAN的訓(xùn)練方法和基于卷機(jī)神經(jīng)?絡(luò)的GAN訓(xùn)練?法?乎?樣,沒有特別的trick。
TransGAN存在的意義?
TransGAN在推進(jìn)transformer成為視覺任務(wù)中的通??絡(luò)這?進(jìn)程上邁進(jìn)了??步,啟發(fā)了研究者們對(duì)取代卷機(jī)神經(jīng)?絡(luò)的?系列思考,同時(shí)將GAN?絡(luò)的圖像?成質(zhì)量進(jìn)?步提? 。
推薦閱讀
2021-03-29
2021-03-22
2021-03-22

# CV技術(shù)社群邀請(qǐng)函 #
備注:姓名-學(xué)校/公司-研究方向-城市(如:小極-北大-目標(biāo)檢測(cè)-深圳)
即可申請(qǐng)加入極市目標(biāo)檢測(cè)/圖像分割/工業(yè)檢測(cè)/人臉/醫(yī)學(xué)影像/3D/SLAM/自動(dòng)駕駛/超分辨率/姿態(tài)估計(jì)/ReID/GAN/圖像增強(qiáng)/OCR/視頻理解等技術(shù)交流群
每月大咖直播分享、真實(shí)項(xiàng)目需求對(duì)接、求職內(nèi)推、算法競(jìng)賽、干貨資訊匯總、與 10000+來自港科大、北大、清華、中科院、CMU、騰訊、百度等名校名企視覺開發(fā)者互動(dòng)交流~

