---
title: "GRU（Gated Recurrent Unit）"
description: "GRUは、更新ゲートとリセットゲートで過去情報を制御し、単純RNNの長期依存問題を緩和する系列モデルです。独立したセル状態を持たない点、LSTMよりゲートとパラメータが少ない点を整理し、性能の優劣を一律に断定する選択肢を避ける判断軸を確認します。"
last_modified_at: "2026-06-27"
canonical_url: "https://stemtazoo.github.io/gk/gru/"
section: "gk"
---

## まず結論

* **GRUはLSTMを簡略化したRNNの一種**
* ゲート数を減らして **構造をシンプルに** した
* **勾配消失を緩和** しつつ、計算効率が良い

---

## 直感的な説明

GRUは、

> 「LSTMほど細かく制御しなくても、十分うまく覚えられる」

という発想で作られたモデルです。

* 覚えるか、忘れるか
* どれくらい反映するか

を **少ないゲート** で判断します。

---

## 定義・仕組み

### GRUの基本構造

GRUには次の **2つのゲート** があります。

1. **更新ゲート（Update Gate）**
2. **リセットゲート（Reset Gate）**

※ LSTMの「セル状態」は明示的に持ちません。

---

### 各ゲートの役割

#### 更新ゲート

* 過去の情報をどれだけ残すか決める
* 新しい情報をどれだけ取り入れるか調整

---

#### リセットゲート

* 過去の情報をどれだけ無視するか決める
* 短期的な依存関係を扱いやすくする

更新ゲートは、以前の隠れ状態をどれだけ維持し、新しい候補状態をどれだけ反映するかを調整します。リセットゲートは、新しい候補状態を計算するときに、過去情報をどの程度参照するかを調整します。

ゲートを通る加算的な情報経路があるため、単純RNNよりも勾配が長い時間方向へ伝わりやすくなります。ただし、勾配消失が完全になくなるわけではありません。

---

### LSTMとの違い

| 項目   | LSTM | GRU  |
| ---- | ---- | ---- |
| ゲート数 | 3    | 2    |
| セル状態 | あり   | なし   |
| 構造   | 複雑   | シンプル |
| パラメータ数 | 多い傾向 | 少ない傾向 |
| 長期記憶 | セル状態で管理 | 隠れ状態に統合 |

---

## いつ使う？（得意・不得意）

### 得意なこと

* 時系列・系列データ
* モデルを軽量にしたい場合

### 注意点

* GRUとLSTMのどちらが高精度かは、データやタスクによって異なる
* GRUは軽量な傾向があるが、常に高速・高精度とは限らない
* Transformerと異なり、時刻順の依存があるため並列化しにくい

---

## G検定ひっかけポイント

* ❌「GRUはLSTMよりゲートが多い」→ **誤り**
* ❌「GRUはセル状態を持つ」→ **誤り**
* ✅ GRUは **ゲート2つ**
* ✅ LSTMより構造がシンプル
* ❌「GRUは常にLSTMより性能が低い」→ **一律には決まらない**
* ❌「GRUは勾配消失を完全に解決する」→ **緩和する手法**

---

## まとめ（試験直前用）

* GRUは **軽量なLSTM**
* ゲート数は2つ
* 勾配消失を緩和

👉 これで **RNN系ブロックは完成** です。
