EZ | AutoGAN-Distiller:做神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索,用來(lái)壓縮GAN | 01

AutoGAN-Distiller: Searching to Compress Generative Adversarial Networks

綜述

對(duì)生成式對(duì)抗網(wǎng)絡(luò)GAN進(jìn)行壓縮的研究最近很熱門(mén),因?yàn)槿藗儗?duì)于把GAN部署到移動(dòng)設(shè)備上做圖像翻譯、增強(qiáng)或者編輯之類(lèi)的需求日益旺盛。無(wú)論如何,其他深度學(xué)習(xí)模型的壓縮效果都不差,但GAN的壓縮——主要是生成器的壓縮仍處在起步階段?,F(xiàn)存的GAN壓縮算法一般只對(duì)有特殊Loss的GAN結(jié)構(gòu)起作用(缺少泛化能力)。受到最近深度壓縮領(lǐng)域AutoML的啟發(fā),我們把AutoML引入GAN壓縮中,提出了AutoGAN-Distiller架構(gòu),簡(jiǎn)稱AGD。始于對(duì)經(jīng)過(guò)特殊設(shè)計(jì)的搜索空間的研究,AGD對(duì)多種生成器結(jié)構(gòu)都有效果,只需給定計(jì)算資源的約束條件,想要多少算力的消耗。這一研究被原始的GAN模型所引導(dǎo),通過(guò)知識(shí)蒸餾來(lái)實(shí)現(xiàn),最終完成壓縮。AGD是全自動(dòng)的,單穩(wěn)態(tài)的,普適性的。(單穩(wěn)態(tài)意味著它不需要訓(xùn)練好的鑒別器)。我們?cè)趦煞N具有代表性的GAN任務(wù)中驗(yàn)證了AGD的價(jià)值:圖像生成和圖像超分辨率。AGD的效果比現(xiàn)在的其他方法都更有競(jìng)爭(zhēng)力。代碼已經(jīng)開(kāi)源了:https:// github.com/TAMU-VITA/AGD

1. 引言

在許多場(chǎng)景——像是圖像風(fēng)格轉(zhuǎn)化或者圖像編輯又或者圖像增強(qiáng),GAN的發(fā)展都令人矚目。這些應(yīng)用場(chǎng)景一般的工作流程是把訓(xùn)練好的生成器部署在一些計(jì)算能力不算強(qiáng)的平臺(tái)上,比如在手機(jī)APP里做圖像風(fēng)格遷移或者超分辨率重構(gòu)。然而,就像其他深度學(xué)習(xí)模型一樣,GAN的生成器需要吃很大的內(nèi)存,對(duì)算力要求很高,大部分移動(dòng)設(shè)備一跑就嗝屁了,舉個(gè)例子來(lái)說(shuō),大名鼎鼎的CycleGAN模型跑一張256*256像素的小圖片,需要做54GFLOPs的運(yùn)算,即使能跑完,也毫無(wú)用戶體驗(yàn)可言。

為了消弭這一差距,一個(gè)自然而然的想法是借助于模型壓縮技術(shù)。主流的模型壓縮方法都把注意力放在深度的圖像分類(lèi)或者語(yǔ)義提取方面,很難拓展到GAN的壓縮領(lǐng)域——這里專指壓縮GAN生成器。這主要是因?yàn)樗鼈儗W(xué)到的對(duì)應(yīng)關(guān)系很脆弱,而且GAN訓(xùn)練的穩(wěn)定性問(wèn)題一直沒(méi)有得到真正的解決。我們知道的,只有一種叫做at the time of submission的GAN壓縮算法,它主要關(guān)注于對(duì)有循環(huán)一致性Loss的GAN進(jìn)行壓縮,具體一點(diǎn),對(duì)雙向的生成器都做了壓縮。盡管結(jié)果不賴,但他們的研究成果想要拓展到其他GAN還是有難度的,而且,現(xiàn)有的壓縮算法本質(zhì)上是基于剪枝的,而很多像是量化、知識(shí)蒸餾或者AutoML還未得到足夠的重視。另加一點(diǎn),現(xiàn)有算法的壓縮過(guò)程必須有訓(xùn)練好的判別器相配合,但在實(shí)際場(chǎng)景中,這壓根兒不現(xiàn)實(shí):幾乎所有的應(yīng)用場(chǎng)景都只用到了生成器,判別器一般都被delete掉了。

此篇論文想要做的是顯著地推動(dòng)GAN壓縮方向研究的邊界,我們寄希望于最先進(jìn)的壓縮算法,包括AutoML和知識(shí)蒸餾,并使用了一些通用技術(shù),保證我們的方法對(duì)于各種各樣的GAN生成器都是有效的。研究成果是一種架構(gòu),我們命名為AutoGAN-Distiller,AGD,它是首個(gè)將AutoML引入GAN壓縮的架構(gòu)。AGD建立在經(jīng)過(guò)了專門(mén)設(shè)計(jì)的高效的生成器的搜索空間上,使用最先進(jìn)的GAN的知識(shí)來(lái)完成不同的任務(wù),而后,在目標(biāo)壓縮比(計(jì)算資源壓縮約束)下執(zhí)行有區(qū)分度的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索,從而在知識(shí)蒸餾的指導(dǎo)下讓GAN的生成質(zhì)量不至于下降。AGD不對(duì)GAN的結(jié)構(gòu)、Loss的形式、判別器的可用性做多余的假設(shè),用在CycleGAN或者其他沒(méi)有循環(huán)一致性損失的GAN上都是可行的。我們用AGD做了兩個(gè)移動(dòng)設(shè)備上常見(jiàn)的場(chǎng)景測(cè)試:非配對(duì)的圖像翻譯(用到了CycleGAN),和超分分辨率(用到了編解碼GAN),在兩項(xiàng)測(cè)試中,AGD的效果都是現(xiàn)在這些方法里最好的。

2. 相關(guān)工作

2.1 AutoML:神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索

作為一種AutoML里最出色的細(xì)分領(lǐng)域,神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索(NAS)從數(shù)據(jù)中總結(jié)出最佳的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)以代替人工。截至目前,NAS方法已經(jīng)在多種任務(wù)中得到了應(yīng)用。

把NAS引入GAN模型是很有挑戰(zhàn)性的,因?yàn)橛?xùn)練穩(wěn)定性上的不足,以及直觀的效果衡量方式的缺失。2019年,Gong等人才第一次將NAS架構(gòu)加入到GAN中,做的工作主要是從隨機(jī)噪聲中用無(wú)條件的方式(這里的無(wú)條件是無(wú)附加條件,unconditional)生成圖像。他們用了一種多級(jí)的搜索策略,用RNN控制器+增強(qiáng)學(xué)習(xí)方法在生成器結(jié)構(gòu)的搜索空間里搜索。然而,目前的NAS+GAN的架構(gòu)并不完美,原因如下:

  • Gong等人的架構(gòu)搜索順序是從零開(kāi)始,沒(méi)有訓(xùn)練好的模型提供一些先驗(yàn),而且,搜索中也沒(méi)有加入對(duì)計(jì)算資源的限制。因此,他們的方法嚴(yán)格意義上不能算是一種“壓縮”,也沒(méi)有很強(qiáng)的從受過(guò)訓(xùn)練的高性能GAN里進(jìn)行知識(shí)提取的能力。

  • Gong的方法之應(yīng)用在從噪聲中合成低分辨率,而且是小尺寸圖像的GAN模型中,一般是六層生成器,跑32*32大小的CIFAT-10的圖像。沒(méi)考慮image-to-image的情況。但,我們真正想要的是一種高分辨率的,image-to-image的GAN壓縮結(jié)果。

2.2 模型壓縮

隨著在算力不佳的平臺(tái)上不是深度學(xué)習(xí)模型的需要,學(xué)界有很多壓縮方法,用來(lái)降低模型復(fù)雜性,主要是三種思路:知識(shí)蒸餾、剪枝和量化。

知識(shí)蒸餾于2015年出現(xiàn),通過(guò)模仿以模型生成的軟標(biāo)簽,把知識(shí)轉(zhuǎn)移到另一個(gè)模型上,因?yàn)橄喈?dāng)于獲得了一定的先驗(yàn)知識(shí),因此,可以降低后一個(gè)模型的計(jì)算復(fù)雜度。

剪枝是通過(guò)一個(gè)閾值,刪除不太重要的權(quán)重的操作,可以讓模型權(quán)重更稀疏。一般而言,這種方法的操作過(guò)程都是類(lèi)似的:把模型剪小,再重新訓(xùn)練以保證效果——并不斷迭代這一過(guò)程。

量化則是改變權(quán)重和激活的浮點(diǎn)表示法,除了用標(biāo)量代替浮點(diǎn)數(shù)外,還可以用向量來(lái)做參數(shù)共享,實(shí)現(xiàn)對(duì)模型結(jié)構(gòu)的壓縮。

最近,又有人指出,傳統(tǒng)的以來(lái)專家設(shè)計(jì)搜索空間的方法結(jié)果好不了,因此AutoML的思想大行其道——雖然他們大都關(guān)注于對(duì)深度的分類(lèi)器進(jìn)行壓縮。

2.3 GAN和GAN壓縮

GAN的部分文章很多,我也做了一些,因此不再翻譯,但總的來(lái)說(shuō),因?yàn)樽髡呦胙芯康氖欠桥鋵?duì)的圖像轉(zhuǎn)化,因此主要關(guān)注在CycleGAN和編解碼器GAN。

盡管有了很多對(duì)GAN的改進(jìn)辦法,GAN固有的復(fù)雜性高的特點(diǎn)仍讓它在移動(dòng)平臺(tái)的部署困難重重?,F(xiàn)有的算法只能對(duì)有循環(huán)一致性損失的CycleGAN及其變體進(jìn)行壓縮,而且需要有判別器的參與。

和我們齊頭并進(jìn)的是Li等人的工作,他們也嘗試將AutoML引入GAN壓縮,主要關(guān)注在生成器的通道寬度,效果不錯(cuò),相比之下,我們的AGD主要區(qū)別在于能夠針對(duì)具有不同屬性的任務(wù)對(duì)搜索空間進(jìn)行自定義,不僅關(guān)注通道寬度,還將運(yùn)算符類(lèi)型納入考慮范圍,并能應(yīng)用在超分辨率任務(wù)中。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容