1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ゲート付きRNN:LSTMとGRU

Last updated at Posted at 2024-10-28

LSTMとGRUは、共に長期依存関係を学習するために設計されたゲート付きRNNの変種。

特徴

LSTM

  • 構造:3つのゲート(入力ゲート、忘却ゲート、出力ゲート)とセル状態(記憶セル)
  • 勾配消失問題を緩和
  • パラメータ数が多く、計算コストが高い

GRU

  • 構造:2つのゲート(リセットゲート、更新ゲート)
  • LSTMを簡略化 →同等の性能をより少ないパラメータ数で実現
  • 計算コストがLSTMより低い

構造と動作

LSTM

  1. 忘却ゲート (Forget Gate)
  2. 入力ゲート (Input Gate)
  3. 出力ゲート (Output Gate)
    →セル状態(記憶セル)$C_t$ &隠れ状態$h_t$の出力

LSTM.png

1. 忘却ゲート Forget Gate

「どの情報を捨てるか」を決定

$f=σ(x_t∗W_t^{(f)}+h_{t−1}∗W_h^{(f)}+b^{(f)})$

  • 入力: 前の隠れ状態 $h_{t-1}$ と現在の入力 $x_t$
  • 出力: $f$ →セル状態 $C_t$ 更新に利用
    ※シグモイド関数を挟むため $-0 \leq f \leq 1$(0: 完全に捨てる、1: 完全に保持)

2. 入力ゲート Input Gate

「新しい情報をどの程度セル状態に加えるか」を決定

$i=σ(x_t∗W_x^{(i)}+h_{t−1}∗W_h^{(i)}+b^{(i)})$
$g=tanh(x_t * W_x^{(g)} + h_{t-1} * W_h^{(g)} + b^{(g)})$

  • 入力: $h_{t-1}$ と $x_t$
  • 出力:
    • $i$: 更新の度合い
    • $g$: 新しい候補値
      ※tanh関数を挟むため $-1 \leq g \leq 1$(0: 完全に捨てる、1: 完全に保持)

3. 出力ゲート Output Gate

「どの情報を出力するか」を決定

$o=σ(x_t∗W_x^{(o)}+h_{(t−1)}∗W_h^{(o)}+b^{(o)})$

  • 入力: $h_{t-1}$ と $x_t$
  • 出力: $o$ →隠れ状態 $h_t$ 更新に利用

記憶セルの更新 Update Cell State

  • セル状態 $C_t$ 出力
    $C_t = {f_t}\odot{C_{t-1}} + i\odot{g}$ (※活性化関数は使われない)

  • 隠れ状態 $h_t$ 出力
    $h_t = {o}\odot{tanh(C_t)}$

GRU

  1. リセットゲート (Reset gate)
  2. 更新ゲート (Update gate)
    →最終的な隠れ状態$h_t$の出力

GRU.png

1. リセットゲート Reset Gate

「過去の情報をどの程度忘れるか」を決定

$r = σ(x_t * W_x^{(r)} + h_{t-1} * W_h^{(r)} + b^{(r)})$

2. 更新ゲート Update Gate

「どの情報を保持し、どの情報を更新するか」を決定

$\tilde{h} = tanh(x_t * W_x + ({r}\odot{h_{t-1}}) * W_h + b)$

$z = σ(x_t * W_x^{(z)} + h_{t-1} * W_h^{(z)} + b^{(z)})$

最終的な隠れ状態を更新

$h_t = {(1 - z)}\odot{h_{t-1}} + {z}\odot{h̃_t}$

${(1 - z)}\odot{h_{t-1}}$ : 忘却機能、${z}\odot{h̃_t}$ : 入力機能

$r$ は今の情報と組み合わせるときに過去の情報をどの程度忘れるかを計算
$z$ は、次の時刻に伝播していくときに前の時刻の情報をどれだけリセットするかを決める

比較

LSTM GRU
ゲートの数 3
(入力ゲート、忘却ゲート、出力ゲート)
2
(更新ゲート、リセットゲート)
パラメータの数 多い
(各ゲートに対して重みとバイアスが存在するため)
少ない
(ゲートが一つ少ないため)
記憶セル 有り
(長期的な依存性を学習するため)
無し
(隠れ状態が直接情報を保持する)
計算の複雑さ 複雑
(3つのゲートとセル状態の存在により)
シンプル
(2つのゲートとセル状態の欠如により)
学習能力 高い
(より多くのパラメータとゲートにより、より複雑なパターンを学習可能)
低い
(パラメータとゲートが少ないため、LSTMほど複雑なパターンを学習するのは難しい)
計算速度とメモリ使用量 より遅い/大きい
(パラメータが多いため)
より速い/小さい
(パラメータが少ないため)
使用場面 より複雑なタスクや長期的な依存関係の学習が必要である 小規模なデータセットや計算リソースが限られている

Image License: CC BY 4.0

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?