\(\eta\) なのにVAE

1 前置き

いきなりですが,これはなんだかわかりますか? ヒントは森博嗣です.

mori.png

nzwです. 現在はklisを卒業して院生をしています. このカレンダーをやるといった本人です.

この記事は klis advent calendar 2016 4日目の記事です. 3年目にして重複なしで25名集まりました. 関係者の皆様,ありがとうございます.

さて既にklisが含まれればいいという制約は,達成されました. klisというのは私が学位(図書館情報学)をとった学類(学科相当)の略称です. そういえば,学位(知識情報学)ではないんですね...

2 本題

最初に出した画像は, 森博嗣の著作本の表紙を使ってVariational Auto Encoder [1]で生成した画像です. VAEでなにができるのかを簡単に説明すると, 画像をたくさん使って(ちゃんと)学習できれば, 学習したデータに含まれていないデータでそれらしいものが生成できます. VAEについては最近まとめたのでこちらを. 苦しいですが,右下には白っぽい輪郭で講談社らしきマーク,上部には文字らしきものがうっすらと見えます. この画像がそれらしく見えないのは,データ数が少ないこと (300枚) とシリーズによって表紙が全然違うことが原因だと思います. VシリーズやS&Mの白い方,Gシリーズの表紙はかなり好みなのですが,それぞれをたくさん集めないといけないのかもしれません.

いままでは複数クラス (手書き数字で言えば0-9までの10種類) としてギリシア文字全体でやろうとしたのですが, 使おうとした Omniglot [2] はone-shot learningという1つの学習データから学習するためのデータなので使えるデータが少ないです(1文字につき20枚). VAEの論文では,手書き数字を数万のオーダーで使っているので,ギリシア文字全体ではおそらく無理です.

複数クラスは無理そうなので \(\eta\) を19枚だけ使ってできるか試してみました. つまりこういうのを19枚使います (本当はもう1枚あるが,validation dataとして使用).

eta_raw.png

生成した結果です.

eta.png

これらの画像ではノイズっぽいものがのっているためきれいではないですが, \(\eta\) の輪郭はわかります. 一応はうまくできてそうです(生成系のモデルで,なにをもってうまく行ったか判断するのか機械的に判断するのは難しい....)

というわけでVAEは19枚くらいでもそれらしく学習はできたっぽいという記事でした.

3 References

  1. D.P. Kingma, M. Welling. (2014). Auto-Encoding Variational Bayes. Proc ICLR.
  2. Lake, B. M., Salakhutdinov, R., and Tenenbaum, J. B. (2015). Human-level concept learning through probabilistic program induction. Science, 350(6266), 1332-1338.