皆様のおかげで設立1周年を迎えました。

2-3. DCGANでお寿司の画像を生成する

やること

DCGANのプログラムは非常に高度ですが、勉強会で配布されたものをそのまま使えばだれでもできます。今日は、DCGANでお寿司の画像を生成してみます。

使うもの

Google Colaboratory
AIワークショップ|初心者だけどDCGANできちゃった (2019/01/18 18:00〜)
# 【注意】偽札を作るワークショプではありません【喚起】 警察関係者の立ち入りを禁止します() ## オンラインコミュニティ 情報交換・質問・クレームなどはAI FASHIONのSlack(自由参加)でお願いします。 ## 概要 GANが難しすぎる、というあなた。残念ながらマジで難しいです。技術・予算・時間ど...

画像のサイズ(解像度)を揃える

配布されたセットには、あらかじめ回転寿司チェーン店のWebサイトからスクレイピングしておいたお寿司の画像が250枚入っています。配布された「Resize.py」実行すると、自動的に「osushi_resize」というフォルダが生成され、画像がリサイズされて保存されます。jpgとpngに対応していますが、pngの透過部分は白くなります。

ジェネレータとディスクリミネータのモデル

2018年はGANの年だったと思います。さまざまな論文やテクニック集を参考に、珠玉のモデルを組みました。潜在変数は非常に少なく10次元に設定しました。

プログラムを実行する

配布された「DCGAN.py」を実行すると、学習が始まります。自動的に「DCGAN_img」フォルダが生成され、設定したエポック毎にジェネレータが作成した画像が保存されます。また、「DCGAN_para」フォルダも生成され、設定したエポック毎に、ジェネレータの重みとバイアスが保存されます。ハイパーパラメータの調整は非常に難しいのですが、128px*128px程度の画像であれば、調整済みのままで十分に学習が進みます。

結果

0エポックではジェネレータはグレーの画像しか出力しませんが、200エポックくらいになるとお寿司が爆誕します。この確認画像を生成するための乱数列はずっと固定したままです。

今回は4600エポックくらいが最適で、それ以上はmode collapseという現象が起きてしまい、お寿司の多様性が失われていきました。

余談

実はmode collapse対策として、Unrolled GANという手法が実装されています。興味がある方はunroll=0の値を1以上にして試してみてください。

タイトルとURLをコピーしました