AutoGAN-Distiller: Searching to Compress Generative Adversarial Networks
綜述
對生成式對抗網(wǎng)絡GAN進行壓縮的研究最近很熱門,因為人們對于把GAN部署到移動設備上做圖像翻譯匆瓜、增強或者編輯之類的需求日益旺盛吩屹。無論如何,其他深度學習模型的壓縮效果都不差倔约,但GAN的壓縮——主要是生成器的壓縮仍處在起步階段。現(xiàn)存的GAN壓縮算法一般只對有特殊Loss的GAN結構起作用(缺少泛化能力)坝初。受到最近深度壓縮領域AutoML的啟發(fā)浸剩,我們把AutoML引入GAN壓縮中,提出了AutoGAN-Distiller架構鳄袍,簡稱AGD绢要。始于對經(jīng)過特殊設計的搜索空間的研究,AGD對多種生成器結構都有效果拗小,只需給定計算資源的約束條件重罪,想要多少算力的消耗。這一研究被原始的GAN模型所引導哀九,通過知識蒸餾來實現(xiàn)剿配,最終完成壓縮。AGD是全自動的阅束,單穩(wěn)態(tài)的呼胚,普適性的。(單穩(wěn)態(tài)意味著它不需要訓練好的鑒別器)息裸。我們在兩種具有代表性的GAN任務中驗證了AGD的價值:圖像生成和圖像超分辨率蝇更。AGD的效果比現(xiàn)在的其他方法都更有競爭力。代碼已經(jīng)開源了:https:// github.com/TAMU-VITA/AGD
1. 引言
在許多場景——像是圖像風格轉(zhuǎn)化或者圖像編輯又或者圖像增強呼盆,GAN的發(fā)展都令人矚目年扩。這些應用場景一般的工作流程是把訓練好的生成器部署在一些計算能力不算強的平臺上,比如在手機APP里做圖像風格遷移或者超分辨率重構访圃。然而厨幻,就像其他深度學習模型一樣,GAN的生成器需要吃很大的內(nèi)存腿时,對算力要求很高克胳,大部分移動設備一跑就嗝屁了,舉個例子來說圈匆,大名鼎鼎的CycleGAN模型跑一張256*256像素的小圖片漠另,需要做54GFLOPs的運算,即使能跑完跃赚,也毫無用戶體驗可言笆搓。
為了消弭這一差距性湿,一個自然而然的想法是借助于模型壓縮技術。主流的模型壓縮方法都把注意力放在深度的圖像分類或者語義提取方面满败,很難拓展到GAN的壓縮領域——這里專指壓縮GAN生成器肤频。這主要是因為它們學到的對應關系很脆弱,而且GAN訓練的穩(wěn)定性問題一直沒有得到真正的解決算墨。我們知道的宵荒,只有一種叫做at the time of submission的GAN壓縮算法,它主要關注于對有循環(huán)一致性Loss的GAN進行壓縮净嘀,具體一點报咳,對雙向的生成器都做了壓縮。盡管結果不賴挖藏,但他們的研究成果想要拓展到其他GAN還是有難度的暑刃,而且,現(xiàn)有的壓縮算法本質(zhì)上是基于剪枝的膜眠,而很多像是量化岩臣、知識蒸餾或者AutoML還未得到足夠的重視。另加一點宵膨,現(xiàn)有算法的壓縮過程必須有訓練好的判別器相配合架谎,但在實際場景中,這壓根兒不現(xiàn)實:幾乎所有的應用場景都只用到了生成器辟躏,判別器一般都被delete掉了谷扣。
此篇論文想要做的是顯著地推動GAN壓縮方向研究的邊界,我們寄希望于最先進的壓縮算法鸿脓,包括AutoML和知識蒸餾,并使用了一些通用技術涯曲,保證我們的方法對于各種各樣的GAN生成器都是有效的野哭。研究成果是一種架構,我們命名為AutoGAN-Distiller幻件,AGD拨黔,它是首個將AutoML引入GAN壓縮的架構。AGD建立在經(jīng)過了專門設計的高效的生成器的搜索空間上绰沥,使用最先進的GAN的知識來完成不同的任務篱蝇,而后,在目標壓縮比(計算資源壓縮約束)下執(zhí)行有區(qū)分度的神經(jīng)網(wǎng)絡結構搜索徽曲,從而在知識蒸餾的指導下讓GAN的生成質(zhì)量不至于下降零截。AGD不對GAN的結構、Loss的形式秃臣、判別器的可用性做多余的假設涧衙,用在CycleGAN或者其他沒有循環(huán)一致性損失的GAN上都是可行的哪工。我們用AGD做了兩個移動設備上常見的場景測試:非配對的圖像翻譯(用到了CycleGAN),和超分分辨率(用到了編解碼GAN)弧哎,在兩項測試中雁比,AGD的效果都是現(xiàn)在這些方法里最好的。
2. 相關工作
2.1 AutoML:神經(jīng)網(wǎng)絡結構搜索
作為一種AutoML里最出色的細分領域撤嫩,神經(jīng)網(wǎng)絡結構搜索(NAS)從數(shù)據(jù)中總結出最佳的神經(jīng)網(wǎng)絡結構以代替人工偎捎。截至目前,NAS方法已經(jīng)在多種任務中得到了應用序攘。
把NAS引入GAN模型是很有挑戰(zhàn)性的茴她,因為訓練穩(wěn)定性上的不足,以及直觀的效果衡量方式的缺失两踏。2019年败京,Gong等人才第一次將NAS架構加入到GAN中,做的工作主要是從隨機噪聲中用無條件的方式(這里的無條件是無附加條件梦染,unconditional)生成圖像赡麦。他們用了一種多級的搜索策略,用RNN控制器+增強學習方法在生成器結構的搜索空間里搜索帕识。然而泛粹,目前的NAS+GAN的架構并不完美,原因如下:
Gong等人的架構搜索順序是從零開始肮疗,沒有訓練好的模型提供一些先驗晶姊,而且,搜索中也沒有加入對計算資源的限制伪货。因此们衙,他們的方法嚴格意義上不能算是一種“壓縮”,也沒有很強的從受過訓練的高性能GAN里進行知識提取的能力碱呼。
Gong的方法之應用在從噪聲中合成低分辨率蒙挑,而且是小尺寸圖像的GAN模型中,一般是六層生成器愚臀,跑32*32大小的CIFAT-10的圖像忆蚀。沒考慮image-to-image的情況。但姑裂,我們真正想要的是一種高分辨率的馋袜,image-to-image的GAN壓縮結果。
2.2 模型壓縮
隨著在算力不佳的平臺上不是深度學習模型的需要舶斧,學界有很多壓縮方法欣鳖,用來降低模型復雜性,主要是三種思路:知識蒸餾茴厉、剪枝和量化观堂。
知識蒸餾于2015年出現(xiàn)让网,通過模仿以模型生成的軟標簽,把知識轉(zhuǎn)移到另一個模型上师痕,因為相當于獲得了一定的先驗知識溃睹,因此,可以降低后一個模型的計算復雜度胰坟。
剪枝是通過一個閾值因篇,刪除不太重要的權重的操作,可以讓模型權重更稀疏笔横。一般而言竞滓,這種方法的操作過程都是類似的:把模型剪小,再重新訓練以保證效果——并不斷迭代這一過程吹缔。
量化則是改變權重和激活的浮點表示法商佑,除了用標量代替浮點數(shù)外,還可以用向量來做參數(shù)共享厢塘,實現(xiàn)對模型結構的壓縮茶没。
最近,又有人指出晚碾,傳統(tǒng)的以來專家設計搜索空間的方法結果好不了抓半,因此AutoML的思想大行其道——雖然他們大都關注于對深度的分類器進行壓縮。
2.3 GAN和GAN壓縮
GAN的部分文章很多格嘁,我也做了一些笛求,因此不再翻譯,但總的來說糕簿,因為作者想研究的是非配對的圖像轉(zhuǎn)化探入,因此主要關注在CycleGAN和編解碼器GAN。
盡管有了很多對GAN的改進辦法懂诗,GAN固有的復雜性高的特點仍讓它在移動平臺的部署困難重重》渌裕現(xiàn)有的算法只能對有循環(huán)一致性損失的CycleGAN及其變體進行壓縮,而且需要有判別器的參與响禽。
和我們齊頭并進的是Li等人的工作徒爹,他們也嘗試將AutoML引入GAN壓縮荚醒,主要關注在生成器的通道寬度芋类,效果不錯,相比之下界阁,我們的AGD主要區(qū)別在于能夠針對具有不同屬性的任務對搜索空間進行自定義侯繁,不僅關注通道寬度,還將運算符類型納入考慮范圍泡躯,并能應用在超分辨率任務中贮竟。