オモンパカリスト

深層学習、計算論的神経科学に興味あります

VAEと時系列を扱うVRAE

Google日英翻訳がNMT(ニューラルネットワークを利用した翻訳モデル)になったらしいです。
文語ベースでバリバリ翻訳してくれてるみたいで、
単語にマウスオーバー当てても単語間の対応関係がわからなくなったのはさみしいけど、
たしかに精度がよくなったような、そんな気がするぜ。
というわけで英語論文めっちゃ読んだろ。。

VAEで何かしたいなーと思ってて、時系列を扱えるVRAE周りを調べました。

Variational AutoEncoder

Variational AutoEncoderをついにしっかり理解できた気がする。

はっつーさんのkeras実装ブログがとても勉強になりました。
有難うございます。
ralo23.hatenablog.com

Variational AutoEncoderについてまとめたスライドを作りました。

ほぼ自分用メモです。丸パクリしたソースの一部も載せてます、すみません。

2点の潜在変数間に直線を引いて、2点間のアナロジーを生成できるのはVAE系の魅力ですね。
時系列データを扱えるように拡張したらもっと面白い。というわけでリカレントなVAEの論文を紹介します。

Variational Recurrent AutoEncoder

[1412.6581] Variational Recurrent Auto-Encoders

ICLR2015で発表された(?)VAEのEncoderとDecoderをRNNにした論文。
実験ではゲームBGMのMIDIを学習させてます。動画あり。

www.youtube.com

マリオ強い(笑)

みたところ、使ってるRNNもスタンダードなものらしいです。すごいな。

  • 曲は80~90年代の有名な8曲。Tetris, Spongebob Theme Song, Super Mario, Mario Underworld, Mario Underwater, Mariokart 64 Choco Mountain, Pokemon Center and Pokemon Surf
  • MIDIデータが88次元のうち49次元に多くの楽譜が在る。そのため残りの次元は削る前処理を施す。
  • 各曲からのデータ点の数が等しくなるよう、最初の520データ点のみを使用した。
  • 勾配降下法はAdamを利用(β1 = 0.05, β2 = 0.001)。不安定にするため学習率を訓練中に減らしていく

なるほど〜。時系列データをひとつの潜在変数にマッピングするのは、なかなか面白いですね。

そんでもって、こんなニュースがあったのはご存知でしょうか。

gigazine.net

二つの文を与えると、その文の行間を表現するかのような文をいくつか生成するNN。
これの実態がLSTM+VAEです。

論文があります。

Generating Sentences from a Continuous Space

[1511.06349] Generating Sentences from a Continuous Space

文(時系列)データを潜在空間へ符号化し、同等に復号化するように学習。
あの行間補間する文の実態は、二つの文の潜在空間を通る文アナロジーってわけですね。

ちょっと精読できてないですが、最適化のためにいろいろテクニックがあるみたいです。
KLアニーリングとかword dropoutとか。あとで読む。

構想

M1(VAE)とM2(CVAE)を合体させたSemi-supervised Learning with Deep Generative Modelsがありますが、
これのラベルを取り替えて再生成するアナロジーが面白いと思っていて、
MNISTだと筆跡のようなものをzが捉えてるんですが、
音楽データだと何をzが捉えるのか、ためしてみたくなりました。

VRAEの元論文はMIDIデータらしいけど、世の中にはABC記法というフォーマットもあるみたいなので、
ABC記法のデータを食わせて実験してみようかな。と思ってるところでブログうp。

今日もまとまらなかった。