GRU(Gated Recurrent Unit)

1 GRU の概要

GRU(Gated Recurrent Unit) [Chung et al., 2014] は,LSTM(Long Short Term Memory) の簡易版である.LSTMのゲート機構を簡略させることで,計算効率化を狙った改善版である.

この記事では,GRUについて簡潔に紹介する.

元々GRUは,機械翻訳用のseq2seq向けに,LSTMのブロックの代わりに提案されたもの [Cho et al., 2014] を指すが,Gated Recurrent Neural Networkとは呼ばれず「GRU」と呼ばれることが多い.GRUは,LSTM簡易版なので,NLPや音声認識にビジョンなどの,様々な系列ラベリング問題において,LSTMの代わりに用いられる.

LSTMでは3つあったゲート機構を,GRUでは2つに減らしながらも,LSTMと同等の精度を果たすような仕組みになっている.LSTMには用意されていた「記憶セル」変数は,GRUでは使わない.

2 GRU の構造と性質

GRUのゲート構造
図2 GRUのゲート構造

概要で述べたとおり,GRUは,LSTMを少し簡易したモデルである.LSTMのゲート機構は,パラメータ数も多く,学習に時間がかかる原因ともなる.そこで,LSTMの各ゲートを結合し,2つのゲートから構成されるブロックへと単純化し,セルも用いず$\bm{h}_t$だけで同等の働きを達成するようにしたことで,LSTMよりも計算効率性を向上させた.各ステップ$t$で再帰される 図2のブロックを,Gated Recurrent Unitと呼ぶ.そのユニットを$t$ステップ分つなげたので,GRU / GRUs もしくは GRU network と呼ぶ.

GRUでは,リセット(reset) ゲート更新(update)ゲートの2つのゲートを用いて,毎ステップ $t$ における潜在状態 $\bm{h}_t$の回帰を行う:

\begin{align}
\bm{z}_t &= \sigma (\bm{W}_{z} [\bm{x}_{t}, \bm{h}_{t-1}]) \\
\bm{r}_t &= \sigma (\bm{W}_{r}[\bm{x}_{t}, \bm{h}_{t-1}]) \\
\tilde{\bm{h}}_t &= \tanh (\bm{W}_{h}[\bm{x}_{t}, \bm{r}_t \circ \bm{h}_{t-1} ]) \\
\bm{h}_t &= (1 -\bm{z}_t) \circ \tilde{\bm{h}}_{t-1} + \bm{z}_t \circ \bm{h}_t
\end{align}

この最後の4行目の処理が,GRUの肝となる仕組みに相当している.

次節で,これら4つの処理を,順に紹介する

2.1 GRU のブロック構造:「忘れる」と「覚える」のバランス調整による長期記憶.

GRUは,異なる時間スケール間での依存関係について,適応的に「覚える(remember) v.s 忘れる(forget)」の割合を調整する仕組みとなっている.LSTMはこの仕組みを3つのゲートで実現していたが,それを簡素化してGRUでは2つのゲート「更新ゲート」と「リセットゲート」で実現している.

更新ゲートは,新たに記憶として覚える割合の調整を担当しており,長期記憶の記憶の更新割合の重み$\bm{z}_t$を生成する:

\[
\bm{z}_t = \sigma (\bm{W}_{z} [\bm{x}_{t}, \bm{h}_{t-1}])
\]

リセットゲートは,記憶の忘れる割合の調整を担当しており,記憶中のリセットする割合の重み$\bm{r}_t$を生成する:

\[
\bm{r}_t = \sigma (\bm{W}_{r}[\bm{x}_{t}, \bm{h}_{t-1}])
\]

リセットゲートは,LSTMの忘却ゲートと同じく「前フレームの潜在状態$\bm{h}_{t-1}$をどれだけ忘れるか(どれくらいメモリ上から除去するか)」の役割を担当している.

次にリセット量の$\bm{r}_t$を用いて,記憶の更新を行うための$\tilde{\bm{h}}_t$を準備する:

\[
\tilde{\bm{h}}_t = \tanh (\bm{W}_{h}[\bm{x}_{t}, \bm{r}_t \circ \bm{h}_{t-1} ])
\]

そして,ブロック中の最後の処理として,$(1-z):z$ の比で, $\bm{h}_{t-1}$ と $\tilde{\bm{h}}_t$ の2つをそれぞれ重み付けし,長期記憶 $\bm{h}_t$ を更新する:

\[
\bm{h}_t = (1 -\bm{z}_t) \circ \tilde{\bm{h}}_{t-1} + \bm{z}_t \circ \bm{h}_t
\]

2.3 LSTMとGRUの使い分け

動画認識や言語処理などにおいて,中~高次元の特徴ベクトルを使う場合にはGRUの方が計算性効率が良い.しかし,1次元の生波形をそのまま特徴化しないで解析する場合など,入力特徴ベクトルが低~中次元ベクトルであり,なおかつ系列長もあまり長くない対象であればLSTMで十分でもある.

またGRUは,省略前のLSTMほどの長期記憶性能は持ち合わせいないので,GRUだと性能が出ない場合には,LSTMのほうが予測性能が良くなる場合もある.2者の使い分け意識は大事である.

長い系列データには向かないが,再帰型ニューラル言語モデルとして,よくLSTMとGRUは用いられてきた.「系列長がそれほど長くない問題」や「フレーム間で連続的に特徴ベクトルやトークンが変化している問題」では,良い埋め込みベクトルに助けられて,よい性能が出せる.よって,Transformer・BERT登場以降も,Vision and Languageや動画認識などで,引き続きGRUが系列モデル部に採用される傾向は続いた.Transformer・BERTは,そもそも大規模パラメータから成る巨大ネットワークであるので,系列長の問題がどうこう以前に,大量データや大量タスクからの学習において威力を発揮する.

参考書籍

References

  • [Cho et al., 2014] Kyunghyun Cho, Bart Van Merrie ̈nboer, Caglar Gulcehre, Dzmitry Bahdanau, Fethi Bougares, Holger Schwenk, and Yoshua Bengio. “Learning phrase representations using rnn encoder-decoder for statistical machine translation.” In EMNLP, 2014.
  • [Chung et al., 2014] J. Chung, C. Gulcehre, K. Cho, and Y. Bengio. Empirical evaluation of gated recurrent neural networks on sequence modeling. arXiv preprint arXiv:1412.3555, 2014

参照外部リンク

関連記事

↓ ためになった方は,記事をSNSでシェアをしてくださると,管理人の記事執筆モチベーションが上がります