GoogleColaboratoryで Wasserstein GANを試してみた

シェアする

  • このエントリーをはてなブックマークに追加
スポンサーリンク

はじめに

 今回は、GoogleColaboratoryを使ってKeras-GANに実装されている Wasserstein GAN を試していきたいと思います。

他のGANについてもこちらでまとめてあります。

GoogleColaboratoryでGAN超高速入門

WGANとは

  • 学習が安定する(DiscriminatorとGeneratorの学習の進み具合を調整する必要がない)
  • 色んなアーキテクチャで上手くいく.
  • 出力画像の質とlossが相関関係にあるので、learning curveが生成画像の質の指標とみなせる
  • Ex∼Pr[f(x)]−Ex∼Pg[f(x)] のプロットが収束するので,いつGANの学習を終えればいいか判断できる.
  • Mode Collapseがない

詳しく理解しようとすると、数学的な知識を要求されるし、うまく説明できる気がしないのでふわりと説明していきます。

GANのアプローチというのは、自分の分布Pθを真の分布Prに近づけていくというものだけど、この分布間の距離/ダイバージェンスの定義の仕方によって、学習の収束性、安定性に差異がある.

基本的な距離/ダイバージェンスの定義としては以下の4つがある.これらの式は論文に記載されているので、気になる方は見てほしい。

  • Total Variation (TV) distance
  • Kullback-Leibler (KL) divergence
  • Jensen-Shannon (JS) divergence
  • Earth-Mover (EM) distance (Wasserstein-1)

    EM distance(左)              JS divergence(右)

(論文より)

通常のGANはJensen-Shannonダイバージェンスを指標に、二つの確率密度間の距離を学習によって近づけていく作業と見なせる。しかし、 Jensen-Shannonダイバージェンスを用いることの欠点に、勾配消失の問題がある(図より、多くの場所で平らになっていることから多くの場所で勾配が0となることを示している)。そこで、Wasserstein距離を用いることで、この問題を解決しようといったのが、WGANになる。これにより、パラメータの最適点付近で勾配が消失せず、学習が安定して進めることができる。

WGAN では、Jensen-Shanonダイバージェンスの代わりにWasserstein距離を用いた損失関数を定義します。二つの確率密度間のWasserstein距離Wは次のようになる。

WGANについては、次のリンクですごく丁寧に説明してあるので、気になる方は見てください。

WGANについて参考になったリンク

Wasserstein GAN(WGAN)でいらすとや画像を生成してみる

今さら聞けないGAN(4) WGAN

GoogleColaboratoryの使い方はこちら

論文:https://arxiv.org/abs/1701.07875

Keras-GAN にある Wasserstein GAN のコードはこちら


対象者

 Wasserstein GAN  を手っ取り早く試してみたい方。色々なGANに興味があるけど書き方がわからない方。Kerasでの実装を知りたい方。

 GANの基本を知っていることが前提になっています。

 こちらはGANの基本を押さえることができる良記事になっているので、読んでから進むことをお勧めします。


Wasserstein GAN

前回同様、Keras-GANにあるコードではGoogleColaboratoryではエラーが返ってきてしまうので、書き直しました。今回はMNISTを使っていきたいと思います。

MNIST

 今回デフォルト値が4000epochでしたが、出力された画像が全然形になっていなかったので20000epochにして、5000epoch毎にサンプル画像を出力させています。学習回数とサンプル画像を出力するインターバルはtrain関数の引数で変更できるので、変更しながら試してみてください。

コード

出力結果


 今回は、Wasserstein GAN をGoogleColaboratory上で試してみました。GoogleColaboratoryを使うことで簡単に試すことができると思うのでぜひやってみてください。

他のGANについてもこちらでまとめてあります。

GoogleColaboratoryでGAN超高速入門

最後まで読んでいただきありがとうございました。よろしければこの記事をシェアしていただけると励みになります。よろしくお願いします。

スポンサーリンク
レクタングル広告(大)
レクタングル広告(大)

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
レクタングル広告(大)