櫟井唯ちゃんの画像を無限に生成する話
いくら待てどゆゆ式二期の発表がないのでそろそろ僕の櫟井唯ちゃん資源が枯渇してしまいそうです
そこで今話題のニューラルネットワークに唯ちゃんの画像を無限に生成してもらうことにしました
とりあえずこちらがデモです(設定の読み込みにかなり時間がかかります)
ランダムに生成したサンプルです
一応はっきりと唯ちゃんだと分かる
使ったのはDenoising Autoencoder(DAE)
ふつうのAutoencoderの入力にノイズを加えて学習させるだけです(今回はガウス分布のノイズを加えました)
ノイズ除去に使えたり生成モデルを作れたりします
DAEについては深層学習 (機械学習プロフェッショナルシリーズ)を参考にしました
作り方
まずはゆゆ式の本編から唯ちゃんの顔部分だけ切り抜きます
この作業はこのページを参考にさせていただきました
ご注文はDeep Learningですか? - kivantium活動日記
ゆゆ式1話と2話でだいたい1000枚の唯ちゃんの画像が手に入りました
次にニューラルネットワークの構成ですが、夏季セミのときに作ったのを流用しました
JOI夏季セミナー2015チューター記 - ジョイジョイジョイ
ネットワークは3層で、入力画像が96*96*3、中間層が128、出力画像が96*96*3です。
本当はもう少し中間層を増やしたかったのですが公開のときのサイズの都合上128にしました(これでも重い)
あとは普通に学習させるだけ
学習方法はSGD+Momentum(0.9)
学習係数は0.01
デモのネットワークはだいたい100epochくらいのもので、学習は1時間くらいで終わりました
やりたいこと
多層にすると精度上がるかなぁ
変分自己符号化器(VAE)を使ってみたい
自前のライブラリだと速度や実装コスト面でつらいのでそろそろライブラリの使い方を覚えたい
最後にリポジトリです