読者です 読者をやめる 読者になる 読者になる

オモンパカリスト

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

VAEと時系列を扱うVRAE

機械学習 Deep Learning

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。

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