LoginSignup
1
4

More than 3 years have passed since last update.

kaggle犬コンペの上位解法まとめ

Posted at

kaggle犬コンペというGANを使って犬の画像を生成するコンペティションがありました。僕自身も参加はしていましたが全く奮わなかったので後学のために上位解法をまとめておきます。Discussion に書かれていることをまとめただけでコードは読んでないので注意。

1位

データ前処理

  • アスペクト比が極端な画像を除く (縦/横 < 0.2 または縦/横 > 4)
  • 余分なオブジェクトが写っていない部分のみ使う (参考)
  • Bounding Boxの利用
  • 64x64へのリサイズ
  • Horizontal Flip

モデル

  • BigGAN
  • 入力は120次元標準正規分布からのサンプル
  • LeakyReLU
  • 32x32でSelf-Attention
  • truncation trick. 閾値は0.8
  • EMAなし

学習

  • binary cross entropy
  • Adam (lrG=3e-4, lrD=3e-4, beta1=0.0, beta2=0.999)
  • batch sizeは32
  • 130 Epoch
  • label smoothing

2位

データ前処理

  • 画像に一様なノイズを付加 ### モデル
  • BigGAN(shared embedding、hierarchical latent noise, projection) ### 学習
  • RaLSにauxiliary classification lossで荷重
  • batch sizeは128
  • generator には EMA使用

3位

データ前処理

  • public scoreとしてはBounding Boxでのclippingをした画像と元画像を両方使うのがベストだった

モデル

  • Self-Attention GAN
  • 32x32でSelf-Attention
  • 入力は180次元

学習

  • binary cross entropyが最良、次点でLSGAN-sigmoid
  • generatorの学習率は2e-4、discriminatorの学習率は4e-4
  • label smoothing
  • batch sizeは32 (64も試したが32の方がよかった)
  • Cosine Annealing Warm Restarts
  • 170 epoch

4位

データ前処理

  • Bounding Boxで切り抜いたもの+オリジナルの画像 ### モデル
  • BigGANベース
  • channel数のベースが24 ### 学習
  • batch sizeは32
  • 200エポック
  • Gの学習率は1e-4、Dの学習率は6e-4

5位

データ前処理

モデル

  • BigGAN-deep、ただしtruncation trickなし
  • Generatorにshared class embeddingによるhierarchical noise injection
  • channel数のベースの数はgeneratorが32、discriminatorが64

学習

  • cosine annealing
  • batch sizeは32

8位

データ前処理

  • Bounding Box でのcrop、horizontal flip
  • 綺麗なデータをピックして使おうとしたがあまりいい影響はなかった

モデル

  • StyleGAN
  • 入力は256次元

学習

  • Auxiliary Classifierはあり

それぞれのコードの詳細を読んだ方がいいのでしょうが、とりあえずほとんどの人がBigGANを推していること、Bounding Boxを使って切り抜いた画像とオリジナルの画像を両方使うことあたりは重要そうな気がします。

1
4
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4