MGUとかSGUといったLSTMの簡略化版をTensorFlowで実装した

それぞれは以下の通り(ただしTensorFlow 0.12でのみ動作確認):

これらは基本的にLSTMの構造を簡略化して、ゲートやパラメータ(重み行列)の数を減らしている。例えばMGUはLSTMの約半分のパラメタ数になっている。こうすることで可視化や解析がしやすくなったり、学習時間やデコードの時間が減らせるので嬉しい。また、パラメタ数削減によりL1正則化と類似した効果も期待できるだろう(ホントに?)。ちなみに上記論文で比較対象に挙がっているGRU (Gated Recurrent Unit) はパラメタ数的にLSTMの約3/4になっている。

LSTMの各構成要素(ゲートとか)のうち、どれが一番性能が効くのか、ということをきちんと調べた論文は以下が挙げられる。

これら論文によれば、性能を一番左右するのはForget gateだそうで、またForget gateのbiasは1.0にすると良いらしい。TensorFlowにおけるLSTM実装は既にそうなっている。上記各ネットワークアーキテクチャにおいて、簡略化されても残るのはForget gateの機能だったりする。