GANで唐揚げをカラッとあげる
ディープラーニングのGAN(generative adversarial network)と呼ばれる技術で「からあげ画像」を生成してみました。「直感Deep Learning」という本から引用すると
GANは、ディープラーニングの権威の一人であるYann LeCunn によると「機械学習においてこの10年間で最も興味深いアイデア」とされています。
とのことです。こちらの記事(英文)も参照ください。
直感 Deep Learning ―Python×Kerasでアイデアを形にするレシピ
- 作者: Antonio Gulli,Sujit Pal,大串正矢,久保隆宏,中山光樹
- 出版社/メーカー: オライリージャパン
- 発売日: 2018/08/17
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
GANの具体的なメカニズムに関しては、よく贋作者と鑑定士に例えられます。具体的には、GANは贋作者の役割をするネットワークと鑑定士の役割をするネットワークの2つのネットワークがあり、贋作者ネットワーク:ランダムなノイズから、本物と見間違えるような贋作を作る一方、鑑定士ネットワークは、贋作かどうかを判別する役割を果たします。
この2つのネットワークが競い合うように性能を向上させることで、GANは自動生成(贋作者としての役割)を実現します。
そんな画期的技術であるところのGANを用いて「からあげ画像」を自動生成します。カラッと揚げてしまいました。
GANで「からあげ画像」生成した結果
試行錯誤して、ちょっと「からあげ」っぽい画像を生成できました。
GANで作った唐揚げ画像。200枚で半日くらいかけて1000epochくらい回してこの程度。データの量もepoch数も全然足りないのかなー pic.twitter.com/ETCBfvVxBz
— からあげ (@karaage0703) 2018年10月3日
からあげGANでの、からあげ画像自動生成。画像500枚、2000世代学習させた結果。まあまあかな、なかなか難しいね pic.twitter.com/OSuqawamun
— からあげ (@karaage0703) 2018年10月5日
学習の様子
だんだん、ノイズから「からあげ」に近づいていくことが分かると思います。
1世代
10世代
100世代
1000世代
2000世代
GANによる画像自動生成方法
今回は、以下の記事とGitHubのリポジトリを参考に試してみました。
GitHub - elm200/image-generator-with-keras-dcgan: Image generator with keras-dcgan
ただ、結構マシンスペックも必要なのと、環境構築も大変なので、Google Colab上で教師データの収集から含めて、簡単にGANを試せるようなチュートリアルを作成してみました。
正直クオリティ的に実用性が高いわけではないので公開は迷っていたのですが、以下有料マガジンのセットを買っていただいた人のみ追加料金無しで見られるようにしました(マガジン購入者へのサービス的位置付けです)。単体での購入はできません、悪しからず。
まとめ
GANで「からあげ画像」を生成してみました。ツイートの日付をみていただければ分かりますが、実は4ヶ月程前には試していたものの、なかなかクオリティが上がらず、記事やコードをお蔵入りにしていました。ただ、そのまま葬ってしまうには惜しいかなと思い、エイやっとまとめて公開してみました。
GANは研究が今凄まじい勢いて進んでいて、人に近いクオリティで画像を中心に様々なコンテンツを自動生成できるようになってきています。実は最初は、サイトで使うフリーの画像素材をGANで自動生成したら面白いなと思って試していました。
今回は、実際に使えるクオリティとまではいきませんでしたが、何か単語を入れるだけで即座に欲しいフリー画像を自動生成したり、更にはブログの文章をもとに、ふさわしい画像を適切に挿入してくれるようになるのも、そう遠い未来ではないかもしれませんね。
参考リンク
eriklindernoren/Keras-GAN | Porter.io
GAN Lab: Play with Generative Adversarial Networks in Your Browser!
GANsの最新動向: 応用領域でのGANs (CVPR 2018 完全読破チャレンジ報告会)