shimopino / papers-challenge

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

Freeze Discriminator: A Simple Baseline for Fine-tuning GANs #16

Open shimopino opened 4 years ago

shimopino commented 4 years ago

論文へのリンク

[arXiv:2002.10964] Freeze the Discriminator: a Simple Baseline for Fine-Tuning GANs

著者・所属機関

Sangwoo Mo, Minsu Cho, Jinwoo Shin

投稿日時(YYYY-MM-DD)

2020-02-25

1. どんなもの?

GANには通常大量の学習データと計算資源が必要とされている。この課題を解決する方法として転移学習を利用する流れがあったが、データ分布をシフトさせることが難しかった。

本論文では、Discriminator側の入力に近い層を固定させ、転移学習を行うことで従来よりも優れたFIDを達成することに成功した。

image

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

先行研究と比較して単純ながらに精度向上がすさまじい。 以下に先行研究をまとめておく。

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

提案手法であるFreezeDでは、入力に近い層のパラメータを固定し、出力に近い層のパラメータのみを学習させる。

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

FFHQデータセットを使用して学習させたStyleGANに対して、FreezeDを使用してそれぞれAnimal Faceデータセットの猫と犬のクラスで転移学習を行った。

それぞれ同じ位置の画像は、同じ潜在変数を使用して生成された画像である。背景色や髪色や毛色の情報が保存されていることがわかる。

image

Animal FaceデータセットやAnime Faceデータセットの様々なクラスに対して、単純なFune-Tuningを超えるFIDを達成しており、従来の手法に対しても優れたFIDを達成している。

image

SNGAN-projectionを使用して、fine-tuningを行った場合とfreezeDの場合の生成結果を比較した。2列目と8列目の生成結果を見てみると、freezeDがより精度の高い画像を生成できていることがわかる。

image

5. 議論はあるか?

6. 次に読むべき論文はあるか?

論文情報・リンク

shimopino commented 4 years ago

コード実行時にfeature_locでfreezeさせる層を指定する。 ソースコード上の以下の部分で、StyleGANの出力に近い層のみを学習可能にしておく。

if args.freeze_D:
  for loc in range(args.feature_loc):
     requires_grad(D_target, True, target_layer=f'progression.{8 - loc}')
  requires_grad(D_target, True, target_layer=f'linear')
else:
  requires_grad(D_target, True)
shimopino commented 4 years ago

https://github.com/sangwoomo/freezeD