studylog/北の雲

chainer/python/nlp

シンプルなRNN - MGUとSGU(DSGU)

ようやく北海道も雪が解けて街中を自転車で走り回れるようになりました。あと二週間ぐらいで桜も咲きます。

[1604.02910] Deep Gate Recurrent Neural Network
[1603.09420] Minimal Gated Unit for Recurrent Neural Networks
という二つのRNN関連の論文をGoogle翻訳で斜め読みしました。

RNNの代表格はLSTMで、二番手によりシンプルなGRUがつけていますが、上記で提案された手法はさらに構造をシンプルにする事で可視化などで結果の解釈を容易にしたり学習速度の向上を狙ってるという感じみたいです。

MGUはGRUをさらにMinimalにしてパラメータを減らしたものです。
f:id:kitanokumo:20160415004918p:plain
(上記論文より 上がGRU、下が提案手法)
パラメータが少ないぶん学習速度が速い。
精度はIMDBではMGUが上、Mnistは同等、PTBはGRUが上。PTBだけはハッキリとGRUよりも悪くパラメータの差のわりに実行速度もあまりアドバンテージ無しな模様。


SGU(DSGU)の方の論文を眺めるとSGUが凄いっていうよりも、LSTMがあまりにもイケてない子になってしまっています。以下はIMDBタスク。
f:id:kitanokumo:20160415005416p:plain
(上記論文より)
精度0.75に達するのにLSTMはGRUと比べても10倍近くかかっています。これ本当なのかな。あまりにも悪すぎてちょっと信じがたいです。


MGUは先月、SGUは先日の論文にも関わらずchainer実装は既に作られつつあるようです(会社チャットに論文が流れた65分後にそれを実装したPRがとぶ)。

[WIP] SGU and DSGU by unnonouno · Pull Request #1115 · pfnet/chainer · GitHub
[WIP] Implement MGU by unnonouno · Pull Request #1101 · pfnet/chainer · GitHub

おしまい。