LSTM

に公開

はじめに

概要

  • シラバス:E資格2024#2
  • LSTMの構造を勉強する

キーワード

LSTM, 入力ゲート, 忘却ゲート, 出力ゲート,
メモリーセル, CEC, のぞき穴結合

学習内容

LSTM(Long Short-Term Memory)

  • RNNの一種で、長期依存関係を学習できる構造である。RNNでは難しかった「長い系列データの記憶と保持」を実現できる
  • RNNの勾配消失・爆発問題と長期依存関係の学習が苦手問題を解決する
  • 中間層のユニットをLSTM blockと呼ばれるメモリと3つのゲートを持つブロックに置き換えることで、情報を「覚える」「忘れる」「出力する」ことを制御する


出典:t_Signull, わかるLSTM ~ 最近の動向と共に(2015), https://qiita.com/t_Signull/items/21b82be280b46f467d1b

LSTMとRNNの比較

特徴 RNN LSTM
構造 単純 ゲート付きで複雑
長期記憶 苦手 得意
勾配消失 起きやすい 起きにくい
学習時間 短い(シンプル) 長め(構造が複雑)

LSTMの構造

  • 各ゲートは、値を0~1にする必要があるため、活性化関数にシグモイド関数を使う


出典:
Kizito, Rodney & Scruggs, Phillip & Li, Xueping & Devinney, Michael & Jansen, Joseph & Kress, Reid. (2021). Long Short-Term Memory Networks for Facility Infrastructure Failure and Remaining Useful Life Prediction. IEEE Access. PP. 1-1. 10.1109/ACCESS.2021.3077192.

要素名 役割
入力ゲート x_t 現時刻の入力をどの程度C_tに取り込むかを制御するゲート
忘却ゲート f_t 前の状態C_{t-1}をどの程度残すのかを制御するゲート
出力ゲート o_t 現在の状態をどの程度出力するかを制御するゲート
メモリーセル c_t 長期記憶(情報の蓄積)、過去のデータを保持するユニット
隠れ状態 h_t 直前の出力。出力にも使われる短期的な状態(RNNでの h)
前の入力と状態 W_f [h_{t-1}, x_t] 入力と状態1つの重み行列でまとめて処理
\sigma シグモイド関数

のぞき穴結合(Peephole connection)

  • 目的:ゲートがより細かくセル状態を制御できるようにする
  • 特に「正確なタイミング制御」が必要なタスク(例:時系列予測)に有効
  • 通常のLSTMでは、各ゲートの計算は 現在の入力x_tと直前の隠れ状態 h_{t-1}のみに依存する(忘却ゲートを例にする)
f_t = \sigma(W_f [h_{t-1}, x_t] + b_f)
  • のぞき穴結合を導入すると、セル状態c_{t-1}もゲートに入力されます
f_t = \sigma(W_f [h_{t-1}, x_t]+V_fc_{t-1} + b_f)

V_f:のぞき穴重み(セル状態にかかる係数)

出力ゲートと入力ゲートも同じくのぞき穴重みを付ける

GitHubで編集を提案

Discussion