天天看點

壓縮感覺算法_Co-Evolutionary CycleGAN壓縮方法

壓縮感覺算法_Co-Evolutionary CycleGAN壓縮方法

華為諾亞方舟實驗室的論文《Co-Evolutionary Compression for Unpaired Image Translation》被ICCV 2019錄用,該論文首次提出針對GAN中生成網絡的剪枝算法,在圖像遷移任務中,可以在保持遷移效果的情況下,網絡參數量和計算量壓縮四倍以上,實測推理時間壓縮壓縮三倍以上。華為諾亞方舟實驗室的論文《Co-Evolutionary Compression for Unpaired Image Translation》被ICCV 2019錄用,該論文首次提出針對GAN中生成網絡的剪枝算法,在圖像遷移任務中,可以在保持遷移效果的情況下,網絡參數量和計算量壓縮四倍以上,實測推理時間壓縮壓縮三倍以上。

研究背景

随着手機等智能終端的廣泛普及,基于移動端的圖像風格遷移,人像渲染等應用有着廣泛的需求,在智能相機、移動社交、虛拟穿戴等領域有着巨大的應用前景。生成對抗神經網絡在圖像風格遷移、人臉屬性控制等任務中取得了良好的效果。但是生成式模型由于其本身輸出結果和優化目标的特點,模型往往需要較大的記憶體,運作這些模型需要較大的計算開銷,一般隻能在GPU平台上運作,不能直接将這些模型遷移到移動端上。而現有的針對神經網絡的壓縮算法都是針對判别式神經網絡模型設計,直接應用在生成網絡上不能取得令人滿意的壓縮結果。

本文作者提出了一種新的協同進化方法來同時減少記憶體使用和FLOP。在實踐中,兩個圖像域的Generator被編碼為

兩個群體

協同優化

來疊代得到最重要的卷積濾波器。用

參數的數量、鑒别器感覺正則化和循環一緻性

來計算每個個體的适應度。

最直接的想法是讓壓縮後的生成器

壓縮感覺算法_Co-Evolutionary CycleGAN壓縮方法

和原始生成器

壓縮感覺算法_Co-Evolutionary CycleGAN壓縮方法

盡量像素相近:

壓縮感覺算法_Co-Evolutionary CycleGAN壓縮方法

但是在圖像風格遷移任務中确沒必要。比如,一個“斑馬”,不管是有5條還是8條白色條紋,都可以看成是成功的風格遷移,然而這在傳統損失函數看來是非常大的誤差,是以作者提出用判别器誤差來作為壓縮的誤差标準:

壓縮感覺算法_Co-Evolutionary CycleGAN壓縮方法

雖然在推理階段,判别器

壓縮感覺算法_Co-Evolutionary CycleGAN壓縮方法

經常不會被使用,但是判别器中包含了判别圖像域的重要資訊,是以論文提出了判别器感覺損失來牽引生成器的壓縮過程。

壓縮感覺算法_Co-Evolutionary CycleGAN壓縮方法

是原始網絡中的判别器。與公式1相比,公式2并不直接關注壓縮前後的生成器模型在像素級别的相似性,而是通過判别器,更加關注壓縮前後風格的一緻性,這對壓縮生成器是一個更好的優化方向。

對于兩個圖像域的互相轉換,循環一緻性誤差的重要性也在多篇論文裡得到證明,是以也是壓縮生成器重要的優化方向。

壓縮感覺算法_Co-Evolutionary CycleGAN壓縮方法

是以總體來說,壓縮一個生成網絡的目标函數如下:

壓縮感覺算法_Co-Evolutionary CycleGAN壓縮方法

其中

壓縮感覺算法_Co-Evolutionary CycleGAN壓縮方法

表示網絡的參數量,

壓縮感覺算法_Co-Evolutionary CycleGAN壓縮方法

用來平衡網絡參數量和壓縮模型的誤差。

對于兩個的圖像域互相轉換,兩個生成器一般有相同的網絡結構和參數量,如果隻優化其中一個生成器會導緻網絡訓練過程不穩定,是以提出同時優化兩個生成器,這樣也可以節省計算時間和資源。

壓縮感覺算法_Co-Evolutionary CycleGAN壓縮方法
協同進化壓縮

考慮到無法準确地計算生成網絡中的每一個通道對于最終輸出結果的影響,采用進化算法,對網絡進行全局二值編碼:

壓縮感覺算法_Co-Evolutionary CycleGAN壓縮方法

是以

壓縮感覺算法_Co-Evolutionary CycleGAN壓縮方法

代表的是第

壓縮感覺算法_Co-Evolutionary CycleGAN壓縮方法

個layer的第n個filter,

壓縮感覺算法_Co-Evolutionary CycleGAN壓縮方法

代表的就是第

壓縮感覺算法_Co-Evolutionary CycleGAN壓縮方法

個layer的channel number。

壓縮感覺算法_Co-Evolutionary CycleGAN壓縮方法

得出了一個individual的Fitness公式:

壓縮感覺算法_Co-Evolutionary CycleGAN壓縮方法

Fitness定義

壓縮感覺算法_Co-Evolutionary CycleGAN壓縮方法
壓縮感覺算法_Co-Evolutionary CycleGAN壓縮方法

算法流程

對兩個對稱的生成器分别維持一個種群,将生成器A種群

适應值fitness

最高的個體與生成器B的種群一起訓練,選出B種群中

适應值fitness

最高的個體,再和A的下一代種群進行訓練,以此類推,進行協同交替壓縮,最終得到兩個壓縮的生成器。

壓縮感覺算法_Co-Evolutionary CycleGAN壓縮方法

上式是每個個體選為parents的機率,選完parents以後

(select)

按照NSGA-2的辦法雜交

(crossover)

,變異

(mutation)

産生新一代。

對于

壓縮感覺算法_Co-Evolutionary CycleGAN壓縮方法

的更新有另一個population,也執行相同的過程,二者交替優化。

實驗:
壓縮感覺算法_Co-Evolutionary CycleGAN壓縮方法

使用不同方法在斑馬-馬轉換和夏天-冬天轉換資料集得到的結果。第一、二列是輸入圖檔和未壓縮CycleGAN生成的結果。(a)代表使用ThiNet剪枝得到的結果,(b)代表使用遺傳算法和L_DisA分開優化兩個生成器得到的結果,(c)代表使用協同進化算法優化L_GenA得到的結果,(d)代表使用協同進化算法優化L_DisA

壓縮感覺算法_Co-Evolutionary CycleGAN壓縮方法

在horse2zebra和summer2winter資料集上的不同方法FID分數對比

作者做的主要工作我認為有兩點:

  1. 提出了對于圖像遷移網絡壓縮的損失函數,基于風格損失,更加 适合這個specific的task
  2. 提出了 協同進化的訓練算法 ,framework。