Variational Autoencoderでアルバムジャケットの生成

Variational Autoencoder

この論文に詳しくは記載されています。

Semi Supervised Learning with Deep Generative Models

簡単に言うと、入力の変数を潜在変数に落としてAutoencoder。

ラベルも含めた生成モデルとすることで教師データを生成することができ、半教師あり学習に応用したところ、少ない教師データでそれなりの結果がでたとのこと。

面白いのは学習したモデルに対して、任意の潜在変数を入力することでXが生成できるところ。

結果が面白いため、色んな人が紹介してくれてます。

www.slideshare.net

http://deeplearning.jp/wp-content/uploads/2014/04/dl_hacks2015-04-21-iwasawa1.pdf

アルバムジャケットの生成

VAEを使ってアルバムジャケットを学習して、潜在変数をランダムに入力することで新たなジャケットを生成する実験しています。

この方がすでにやられてることなので、新しいことでは無いです。

VAEはchainerで実装しています。

github.com

学習に使用したデータは radioheadのアルバム9枚 Atoms for peaceのアルバム1枚 の計10枚の画像。 データサイズは学習を早く進めたかったため、128*128のグレースケールに変換しています。

学習の進みはこんな感じ。

f:id:l94q:20150901074828p:plain

で、任意の潜在変数を渡して生成した例が以下の通り。

f:id:l94q:20150901074914j:plainf:id:l94q:20150901074947j:plainf:id:l94q:20150901075014j:plainf:id:l94q:20150901075415j:plainf:id:l94q:20150901075435j:plain

潜在変数の数を300にしている一方、入力データは10通りと入力が単純の割には大きい値にしてしまった感は有ります。(そのまま入力データが出力されてる?) また、学習画像が少ないので、単純に重ね合わさってる印象も強いかなと。

今回はRadioheadっぽいアルバムをつくろうと思い10枚の画像しか使いませんでしたが、入力データを増やすともっとバリエーションの多い画像になるかも。

あとカラー画像にしたほうが結果面白いと思うので、その辺も調整する。