初めてのディープラーニング:DCGANを使って手書き数字を生成してみよう
前回GANの写経ブログをしたので、今回はDCGANの写経ブログ
本ブログのコードは、
https://github.com/HijikiTaro/DCGAN
に載せています。
DCGANを実装するきっかけ
GANについて調べると最初にGAN(シンプルなGAN?)を実装した後に、
DCGAN(CNNを利用したGAN)を実装したという流れが多いように感じたため、
自分もやってみようと思い、
DCGANを実装してみることに。
(これをすれば、画像生成にかなり近づくのではないかという気もしている・・・)
DCGANって何?
Deep Convolutional GAN
GANのGenerator, Discriminatorのモデル構造をCNNに変えたものらしい。
画像に適した畳み込みニューラルネットワーク(CNN)を利用することで、より精度のよい画像生成が実現できる的なことらしい。
下記が参考にしたブログ や記事
qiita.com 実装の参考にしたブログ(ほぼコピペしました)
qiita.com 潜在変数についてなにものかを説明してくれていて、概念としての理解の助けになりました。
ざっくり概要を書くと、
Generator(レプリカ作成) vs Discriminator(本物or偽物判定)
↓
Generator能力向上
↓
本物そっくりのレプリカ作れる
という仕組みは、変えずに各AIの能力を画像認識に強くしてみたという感じ。
CNNについては、下記ブログでちょろっと確認したぐらい。
GANの実装
実装環境
- Google Colaboratory
Webブラウザのみで環境構築でき、無料でGPU利用できるので使用。
実装
実装に関してはすべて写経。勉強は写経からとよく言うので・・・
参考にしたソースからCNNのmodelとweightもコピーし、
それを利用するようにパスのみ修正すれば実行できた。
結果は以下。
前回のGANよりもノイズが少なく数字がより分かりやすくなっていることがわかる。
これはより学習がCNNによってより進んだということなのだろうか。
ついでに、gifも作ったので載せてみる。
今後の課題
- model構造?ネットワーク構造?
- keras?TensolFlow?
- CNN?
- 実業務・ビジネスへの活用イメージ
とまだまだコードを微修正することすらできない・・・