【GAN】kerasでGANを試してみた【備忘録】

はじめに

こんにちは、がんがんです。
今回はDeep Learningの生成モデルであるGANについて実験した際の備忘録です。

自分の名前と似ているため、GANを初めて知ったときから試してみたいと考えていました。
しかし、理論は知っていても実装したことがありませんでした。
ですので、まずは手を動かそうと思い、息抜きとして実装していきました。

追記【2019.04.29】

GItHubのリンクを追加しました。
github.com

概要

  1. 生成モデルであるGANについて実際に手を動かしてみた
  2. 実験としてMNISTを生成していく

参考記事

GANの参考記事はいくつかありますが、特に参考になったものを掲載しておきます。

プログラムや理論は主にこちらを見ながら理解していきました。
バイトへの出勤中の電車内でずっと読んでました。
qiita.com

以前紹介したこちらで紹介したものもCycle GANというGANの一種です。

また、最近購入した以下の本でもGANについての解説がされています。
こちらでは主にDCGANについて解説されており、次回以降で利用していきます。

直感 Deep Learning ―Python×Kerasでアイデアを形にするレシピ

直感 Deep Learning ―Python×Kerasでアイデアを形にするレシピ

実行環境

OSはUbuntu 16.04 LTSです。

・ Python 3.5.2
・ Keras 2.1.5

実験

実験は参考記事を参考にしてMNISTのデータにて行います。
理論については参考記事にて非常に分かりやすく書かれています。そのため、そちらを参考にして下さい。
qiita.com


実験結果を以下に示します。
500 iteration後
f:id:gangannikki:20190128162719p:plain

7500 iteration後
f:id:gangannikki:20190128162913p:plain

15000 iteration後
f:id:gangannikki:20190128162957p:plain

30000 iteration後
f:id:gangannikki:20190129160535p:plain

90000 iteration後
f:id:gangannikki:20190129160738p:plain

徐々に数字らしいものを生成していることが分かります。

コード

こちらのGitHubにあるコードとほぼ一緒なため割愛します。
変更点としてはepoch数を減らしたぐらいです。
function APIで書くのはやめたので、GANに関する変更点は得にないです。

まとめ

今回はGANについての実験をしてみました。
実際にコードを書いてみると、なんとなくしか理解できていなかったものがより理解できたように感じます。

次回はGANの派生系であるDCGANについて実験してみます。