GRU

に公開

はじめに

概要

  • シラバス:E資格2024#2
  • GRUを理解する

キーワード

GRU

学習内容

GRU(Gated Recurrent Unit)

  • LSTMの簡略版のRNNで、少ないゲートとパラメータで長期依存関係を学習できる構造
  • パラメータ数が多く計算に時間が掛かるというLSTMの弱点を克服したモデル

比較

項目 GRU LSTM
ゲート数 2(更新ゲート、リセットゲート) 3(入力ゲート、忘却ゲート、出力ゲート)
メモリーセル なし(状態はすべて h_t に格納) あり(長期メモリ c_t、短期 h_t
パラメータ数 少なめ(軽量) 多め(表現力があるが重い)
計算コスト 低い(高速) 高い
性能 多くのタスクでLSTMと同等〜やや良好 長期依存関係ではやや有利なことも

GRUの構造

ゲート 役割
更新ゲート z_t どれだけ「過去の状態」を引き継ぐか。値が1に近いと、過去の情報を忘却し、新しい情報から強く影響を受ける。0に近いと新しい情報からは影響を受けない
リセットゲート r_t 過去の情報をどれだけ無視するか。値が1に近いと新しい隠れ状態\hat hは、過去の隠れ状態の影響を強く受ける。0に近いと入力値のみから影響を受ける


出典:
Li, P., Luo, A., Liu, J., Wang, Y., Zhu, J., Deng, Y., & Zhang, J. (2020). Bidirectional Gated Recurrent Unit Neural Network for Chinese Address Element Segmentation. ISPRS International Journal of Geo-Information, 9(11), 635. https://doi.org/10.3390/ijgi9110635

\begin{align*} z_t &= \sigma\left(W_z \cdot [h_{t-1}, x_t]\right) \\ r_t &= \sigma\left(W_r \cdot [h_{t-1}, x_t]\right) \\ \tilde{h}_t &= \tanh\left(W \cdot [r_t \cdot h_{t-1}, x_t]\right) \\ h_t &= (1 - z_t) \cdot h_{t-1} + z_t \cdot \tilde{h}_t \end{align*}
要素名 内容
z_t 今の出力は「過去」と「現在」どちらを重視するか?を制御するゲート
r_t 「過去の記憶」をどの程度リセットするか?を制御するゲート
\tilde{h}_t 新しい隠れ状態。リセットされた過去情報と現在の入力で、新たな候補状態を計算
h_t 現時刻の出力。最終的な状態は、過去と現在の候補の加重平均で決まる
GitHubで編集を提案

Discussion