shimopino / papers-challenge

Paper Reading List I have already read
30 stars 2 forks source link

AutoGAN-Distiller: Searching to Compress Generative Adversarial Networks #154

Open shimopino opened 4 years ago

shimopino commented 4 years ago

論文へのリンク

[arXiv:2006.08198] AutoGAN-Distiller: Searching to Compress Generative Adversarial Networks

著者・所属機関

Yonggan Fu, Wuyang Chen, Haotao Wang, Haoran Li, Yingyan Lin, Zhangyang Wang

投稿日時(YYYY-MM-DD)

2020-06-15

1. どんなもの?

GANのモデルの各演算とチャンネル数を同時に探索するAutoGAN-Distiller (AGD) を提案した。本手法を画像変換と超解像に適用し、元のモデルのサイズを大きく削減し、レイテンシを下げることに成功した。

2. 先行研究と比べてどこがすごいの?

GANでは多大なメモリ量と計算資源が必要とされるため、モバイルデバイスなどのハードウェア上の制約が存在する環境で動作させることは難しい。例えばCycle-GANでは256x256の画像を扱うと54GFLOPsの計算を必要とする。

GANでのモデル圧縮は難しく、学習済みモデルのパラメータなどを削減していくと得られた潜在表現が崩れてしまったり、再学習時に不安定性を引き起こしたりしてしまう。

先行研究ではConsistency Lossなどの一部のGANのみに枝切りを適用しているので、他の軽量化手法はまだ調査されていない。また損失関数が学習済みのDiscriminatorに依存しているため、実用的に他のGeneratorに適用することができない。

本研究では、効率的なGeneratorを構築するための探索空間を定義し、また蒸留を行うことで軽量なGANを探索するAutoGAN-Distiller (AGD) を提案した。

3. 技術や手法の"キモ"はどこにある?

本手法での目的は、学習済みのGeneratorから性能を保ったまま、モデルのサイズを削減することである。次に本手法で採用しているモデルの探索空間とProxy Task (本来のタスクではなく簡易的なタスクで探索を行うこと) を議論する。

3.1 The Proposed Customized Search Space

先行研究では探索空間をDAGで表現しているものも存在するが、DAGによる手法はその柔軟性の代わりにイレギュラーに密な構造を作ってしまうことがある。この構造は並列計算も難しく、ハードウェアにも優しくないためSequentialな探索空間を採用する。

本手法ではモデルを構築する演算種類とチャンネル数を同時に探索していく。

Application-specific Supernet

GANではそれぞれのタスクによって最適なモデルの構造は異なっている。

例えば画像変換ではより詳細なテクスチャ情報とピクセル単位の情報を復元するためにも深いモデルが使用されるが、スタイル変換では細部よりも画像全体の一貫性を復元するために浅いモデルが使用されている。

そこでそれぞれのタスクに応じて探索空間を設計する。

この考え方は、ダウンサンプリングやアップサンプリングにより、バックボーンの計算コストを効率的に低減できる事実に基づいている。

image

image

Operator Search

探索する演算は以下になる。なお転置畳み込みは計算が重いため省いている。

i番目の層でパラメータαiを導入し、このパラメータのSoftmax値を確率として、どの演算を採用するのかを決めていく。

Width Search

チャンネル数をEnd-to-Endで探索するために、探索の過程に枝刈りを組み込んでいる。畳み込み層の探索で、カーネルサイズとチャンネル数を同時に探索すると探索空間が膨大になってしまうため、カーネルサイズを1つに固定した上で、チャンネル数を変化させて最適なパラメータを探索していく。

3.2 The Proposed Customized Proxy Task

次に最適化を行っていくタスクの設計をしていく。以下の損失関数を使用してモデルの最適化を行う。関数dは学習済みのgeneratorと削減を行うGeneratorとで蒸留を行うための距離関数であり、関数Fはハードウェアの制約を示している。

係数λを変更することで、性能とモデルサイズのトレードオフを行う。

image

この関数の特徴は学習済みのDiscriminatorを必要としない点であり、どのような構造のGeneratorにも適用できて点である。

演算のパラメータαとチャンネル数のパレメータγを同時に探索すると先行研究でも知られているArchitecture Collapseが発生する。これは探索中に低レイテンシであり低い性能のモデルにバイアスがかかってしまう現象である。

そこでそれぞれを異なる関数として表現する。

image

モデルの探索をより柔軟に行うために、上記の関数にそれぞれ上限と下限を設け、どちらかの境界値に達した際にλを半減・倍増させる。

距離関数には(1)Content Loss、(2)Perceptual Loss,(3)Total Variation Lossを採用している。

image

3.3 Algorithm

image

4. どうやって有効だと検証した?

以下が指標となるCycleGANでの計算速度やメモリ量である。なおGPUにはNVIDIA GEFORCE RTX 2080 Tiを使用している。

image

本手法を使用した結果を比較した。どのデータセットに関しても最も性能を保ったままモデルの削減に成功している。

image

実際に生成された画像を見てみても元のモデルの性能をよく保持していることがわかる。

image

image

本手法を8bit量子化と組み合わせることで更にモデルを削減することができる。

image

次に超解像タスクに本手法を適用した場合の結果を比較した。レイテンシを大幅に作芸で来ていることがわかる。

image

5. 議論はあるか?

shimopino commented 4 years ago

https://github.com/TAMU-VITA/AGD