強化学習とオフライン強化学習：基礎から最新研究まで完全ガイド~中野哲平の講義評判

## はじめに

社内勉強会で以前使っていた強化学習ガイドが評判が良かったので、こちらでシェアしたいと思います。中野哲平の評判が良かった強化学習について、今日はブログを書きます

人工知能の分野において、機械学習は大きく「教師あり学習」「教師なし学習」「強化学習」の3つに分類されます。その中でも強化学習は、環境との相互作用を通じて最適な行動を学習する手法として、ゲームAI、ロボット制御、自動運転など様々な分野で注目を集めています。

本記事では、強化学習の基本概念から最新のオフライン強化学習まで、初心者にも分かりやすく詳細に解説します。

## 第1章：強化学習の基本概念

### 1.1 強化学習とは何か

**強化学習（Reinforcement Learning, RL）**は、エージェント（学習者）が環境との試行錯誤的な相互作用を通じて、最適な行動戦略を学習する機械学習手法です。

#### 他の機械学習手法との比較

| 手法 | データの性質 | 学習方法 | 例 |
|------|-------------|----------|-----|
| 教師あり学習 | 正解ラベル付きデータ | 入力→正解の関係を学習 | 画像分類、回帰分析 |
| 教師なし学習 | ラベルなしデータ | データの潜在構造を発見 | クラスタリング、次元削減 |
| 強化学習 | 行動と結果の経験データ | 試行錯誤による最適化 | ゲームAI、ロボット制御 |

### 1.2 強化学習の基本要素

強化学習は以下の4つの基本要素で構成されます：

#### エージェント（Agent）
学習を行う主体。人間でいえば「学習者」にあたります。
- 環境の状態を観測
- 行動を選択・実行
- 経験から学習

#### 環境（Environment）
エージェントが相互作用する対象。
- エージェントの行動に応じて状態が変化
- エージェントに報酬を与える
- 次の状態を決定

#### 状態（State）
環境の現在の状況を表す情報。
- **例（チェス）**：盤面の配置
- **例（ロボット）**：位置、速度、周囲の障害物情報
- **例（株式取引）**：株価、出来高、市場指標

#### 報酬（Reward）
エージェントの行動に対するフィードバック。
- 良い行動には正の報酬
- 悪い行動には負の報酬（罰）
- 中性的な行動には0の報酬

### 1.3 強化学習のプロセス

強化学習は以下のサイクルを繰り返します：

```
1. エージェントが現在の状態 s_t を観測
2. 行動 a_t を選択・実行
3. 環境から報酬 r_t と次の状態 s_{t+1} を受け取る
4. この経験 (s_t, a_t, r_t, s_{t+1}) から学習
5. t = t + 1 として次のステップへ
```

### 1.4 マルコフ決定過程（MDP）

強化学習の理論的基盤となるのが**マルコフ決定過程（Markov Decision Process, MDP）**です。

#### MDPの定義
MDPは以下の5つ組で定義されます：
- **S**：状態空間（可能な全ての状態の集合）
- **A**：行動空間（可能な全ての行動の集合）
- **P**：状態遷移確率（状態sで行動aを取った時に状態s'に遷移する確率）
- **R**：報酬関数（状態sで行動aを取った時に得られる報酬）
- **γ**：割引率（将来の報酬をどの程度重視するかを表すパラメータ、0≤γ≤1）

#### マルコフ性
「未来は現在の状態のみに依存し、過去の履歴には依存しない」という性質。これにより数学的な取り扱いが簡潔になります。

## 第2章：方策と価値関数

### 2.1 方策（Policy）

**方策π**は、各状態でどの行動を選択するかを決める戦略です。

#### 決定論的方策
各状態に対して一つの行動を確定的に選択：
```
π(s) = a  # 状態sで行動aを選択
```

#### 確率的方策
各状態で行動を確率的に選択：
```
π(a|s) = P(行動aを選択 | 状態s)
```

### 2.2 価値関数

価値関数は「どの程度良いか」を数値化する関数です。

#### 状態価値関数 V^π(s)
方策πに従った時の状態sの価値：
```
V^π(s) = E[Σ γ^t r_t | s_0 = s, π]
```
「状態sから始めて方策πに従った時に得られる累積報酬の期待値」

#### 行動価値関数 Q^π(s,a)
状態sで行動aを取り、その後方策πに従った時の価値：
```
Q^π(s,a) = E[Σ γ^t r_t | s_0 = s, a_0 = a, π]
```

#### ベルマン方程式
価値関数間の関係を表す重要な方程式：
```
V^π(s) = Σ π(a|s) Σ P(s'|s,a)[R(s,a,s') + γV^π(s')]
Q^π(s,a) = Σ P(s'|s,a)[R(s,a,s') + γΣ π(a'|s')Q^π(s',a')]
```

### 2.3 最適方策と最適価値関数

**最適方策π***は全ての状態で最大の価値を実現する方策：
```
π*(s) = argmax_a Q*(s,a)
```

**最適価値関数**：
```
V*(s) = max_π V^π(s)
Q*(s,a) = max_π Q^π(s,a)
```

## 第3章：強化学習のアルゴリズム分類

### 3.1 モデルベース vs モデルフリー

#### モデルベース手法
- 環境のモデル（状態遷移確率と報酬関数）を学習
- モデルを使って計画を立てる
- **利点**：サンプル効率が良い
- **欠点**：モデルの誤差が性能に影響

#### モデルフリー手法
- 環境のモデルを明示的に学習しない
- 経験から直接価値関数や方策を学習
- **利点**：実装が簡単、モデル誤差の影響なし
- **欠点**：多くのサンプルが必要

### 3.2 価値ベース vs 方策ベース vs Actor-Critic

#### 価値ベース手法
価値関数を学習し、それに基づいて行動を選択

**代表的手法：Q学習（Q-Learning）**
```
Q(s,a) ← Q(s,a) + α[r + γ max_a' Q(s',a') - Q(s,a)]
```

**特徴**：
- 決定論的な最適方策を学習
- 離散行動空間に適用しやすい
- 収束性の理論的保証あり

#### 方策ベース手法
方策を直接パラメータ化して学習

**代表的手法：REINFORCE**
```
θ ← θ + α ∇_θ log π_θ(a|s) G_t
```
（G_tは累積報酬）

**特徴**：
- 連続行動空間に自然に対応
- 確率的方策を学習可能
- 高分散が問題

#### Actor-Critic手法
方策（Actor）と価値関数（Critic）を同時に学習

**構成要素**：
- **Actor**：方策πを更新
- **Critic**：価値関数Vを更新

**利点**：
- 方策ベースの柔軟性と価値ベースの安定性を両立
- 分散の削減

### 3.3 オンポリシー vs オフポリシー

#### オンポリシー手法
現在学習中の方策から得られたデータのみを使用
- **例**：SARSA、A3C
- **特徴**：安定しているが効率性に劣る

#### オフポリシー手法
異なる方策から得られたデータも活用
- **例**：Q学習、DDPG、SAC
- **特徴**：データ効率が良いが不安定になりやすい

## 第4章：深層強化学習（Deep RL）

### 4.1 深層強化学習の登場背景

従来の強化学習は状態・行動空間が小さい問題に限定されていました。深層学習と組み合わせることで、高次元・複雑な問題への適用が可能になりました。

### 4.2 代表的な深層強化学習手法

#### DQN（Deep Q-Network）
Q関数をニューラルネットワークで近似
```
L(θ) = E[(r + γ max_a' Q_target(s',a') - Q(s,a;θ))^2]
```

**主要な技術**：
- **Experience Replay**：過去の経験をバッファに保存し、ランダムサンプリングで学習
- **Target Network**：安定した更新のための固定ターゲット

#### Policy Gradient手法

**REINFORCE**：
最も基本的な方策勾配手法

**A3C（Asynchronous Advantage Actor-Critic）**：
- 複数の環境で並列学習
- Advantage関数を使用：A(s,a) = Q(s,a) - V(s)

**PPO（Proximal Policy Optimization）**：
```
L(θ) = E[min(r_t(θ)A_t, clip(r_t(θ), 1-ε, 1+ε)A_t)]
```
方策の急激な変化を抑制

#### Actor-Critic手法

**DDPG（Deep Deterministic Policy Gradient）**：
連続行動空間向けのActor-Critic手法

**SAC（Soft Actor-Critic）**：
最大エントロピー強化学習に基づく手法
```
J(π) = E[r(s,a) + αH(π(·|s))]
```

### 4.3 深層強化学習の課題

#### サンプル効率性
- 深層RLは大量のサンプルが必要
- 実環境での学習が困難

#### 安定性
- ニューラルネットワークの非線形性により不安定
- ハイパーパラメータに敏感

#### 汎化性能
- 学習環境と異なる環境での性能低下
- 分布シフトへの対応が困難

## 第5章：オフライン強化学習（Offline RL）

### 5.1 オフライン強化学習の動機

#### 従来のオンライン強化学習の問題

**安全性の懸念**：
- 医療：患者への実験的治療は危険
- 自動運転：学習中の事故リスク
- 金融：学習中の大きな損失リスク

**データ収集コスト**：
- ロボット実験の時間・費用
- 実環境でのデータ収集の困難さ
- 人的リソースの制約

**既存データの活用**：
- 医療記録、取引履歴などの大量の履歴データが存在
- これらを活用した学習の必要性

### 5.2 オフライン強化学習の定義

**オフライン強化学習**は、事前に収集された固定データセット D = {(s_i, a_i, r_i, s'_i)} から環境との新たな相互作用なしに最適方策を学習する手法です。

#### オンライン vs オフライン強化学習の比較

| 項目 | オンライン強化学習 | オフライン強化学習 |
|------|-------------------|-------------------|
| データ収集 | 学習中に環境と相互作用 | 事前収集済みデータのみ |
| 探索 | 積極的探索が可能 | データセット内の行動のみ |
| 安全性 | 学習中のリスクあり | 安全（実環境との相互作用なし） |
| データ効率 | 必要に応じてデータ収集 | 固定データセットのみ |
| 適用領域 | シミュレーション環境 | 実世界の安全重要システム |

### 5.3 オフライン強化学習の課題

#### 分布シフト問題
学習データの分布と最適方策の分布の不一致
```
データ分布: d^β(s,a)  （行動方策βによる分布）
目標分布: d^π(s,a)   （学習したい方策πによる分布）
```

#### 外挿エラー（Extrapolation Error）
データにない状態・行動ペアでの価値推定が不正確

#### 行動制約問題
データセット内にない行動は学習できない

### 5.4 オフライン強化学習の手法分類

#### 方策制約アプローチ
学習方策をデータ収集方策に近づける

**BC（Behavior Cloning）**：
```
π(a|s) ≈ π_β(a|s)  # データ収集方策を模倣
```

**AWR（Advantage Weighted Regression）**：
```
L = E[exp(A(s,a)/β) log π(a|s)]
```

#### 価値関数ペナルティアプローチ
不確実な状態・行動ペアの価値を保守的に推定

**CQL（Conservative Q-Learning）**：
```
L_CQL = α E[log Σ exp(Q(s,a))] - E[Q(s,a)]
```

**BEAR（Bootstrapping Error Accumulation Reduction）**：
分布的に遠い行動に対してペナルティ

#### モデルベースアプローチ
環境モデルを学習してシミュレーション

**MOPO（Model-based Offline Policy Optimization）**：
不確実性を考慮したペナルティ付きモデル学習

### 5.5 データセットの品質と影響

#### データセット品質の分類

**Expert Dataset**：
- 専門家による高品質な行動データ
- 高性能だが多様性に欠ける

**Random Dataset**：
- ランダムな行動データ
- 多様だが性能は低い

**Medium Dataset**：
- 中程度の性能のデータ
- 実用的でバランスが良い

**Mixed Dataset**：
- 様々な品質のデータの混合
- 現実的だが学習が困難

#### 品質が学習に与える影響

| データ品質 | 学習の難易度 | 到達可能性能 | 実用性 |
|-----------|-------------|-------------|-------|
| Expert | 易 | 高 | 限定的 |
| Medium | 中 | 中 | 高 |
| Random | 難 | 低 | 高 |
| Mixed | 非常に難 | 高（理論上） | 最高 |

## 第6章：地平（Horizon）の概念

### 6.1 地平とは

**地平（Horizon）**は、強化学習において考慮する時間の長さ、つまり現在の行動から最終的な目標達成までのステップ数を指します。

#### 地平の種類

**有限地平（Finite Horizon）**：
- 固定されたステップ数 T で終了
- 例：T=100ステップでゲーム終了

**無限地平（Infinite Horizon）**：
- 理論上無限に続く
- 割引率γで将来の報酬を減衰

**エピソード的地平**：
- 自然な終了条件がある
- 例：ゲームの勝敗、目標到達

### 6.2 地平の長さが学習に与える影響

#### 短い地平の場合
- **利点**：因果関係が明確、学習が安定
- **欠点**：複雑なタスクの表現力不足

#### 長い地平の場合
- **利点**：複雑なタスクに対応可能
- **欠点**：学習困難、不安定

### 6.3 地平の呪い（Curse of Horizon）

長い地平によって生じる根本的な学習困難さを指します。

#### 主な原因

**1. 価値関数推定の誤差蓄積**

各ステップでの小さな推定誤差が蓄積し、最終的に大きな誤差となる：
```
推定誤差 ∝ O(H²)  # Hは地平の長さ
```

**2. 信用割当問題（Credit Assignment）**

どの行動が最終的な成功・失敗に寄与したかの判定が困難：
```
時刻 t=1: 行動 a₁
時刻 t=2: 行動 a₂
...
時刻 t=H: 報酬 r を受け取る

問題：どの行動 aᵢ が報酬 r に最も寄与したか？
```

**3. 探索の困難さ**

長い地平では成功する行動系列を発見することが指数的に困難：
```
可能な行動系列数 = |A|^H  # |A|は行動数、Hは地平
```

**4. 分散の増大**

長い地平では累積報酬の分散が増大：
```
Var[Σr_t] = Σ Var[r_t] + 2Σ Cov[r_i, r_j]
```

### 6.4 オフライン強化学習における地平の問題

オフライン強化学習では地平の問題がより深刻になります：

#### 分布シフトの拡大
データ収集方策と学習方策の違いが時間とともに蓄積

#### 外挿エラーの連鎖
不正確な価値推定が次のステップの推定に影響

## 第7章：地平短縮技術

### 7.1 地平短縮の基本アイデア

長い地平問題を短い地平の部分問題に分解することで学習を容易にする手法群です。

### 7.2 時間的地平短縮

#### n-step Returns
1ステップTD学習の代わりにnステップ先までの実際の報酬を使用：
```
通常のTD: V(s) = r + γV(s')
n-step: V(s) = Σ(i=0 to n-1) γᵢrᵢ + γⁿV(sₙ)
```

#### TD(λ)
異なる長さのリターンを重み付き平均：
```
V^λ(s) = (1-λ)Σλⁿ⁻¹V⁽ⁿ⁾(s)
```

### 7.3 階層的強化学習

#### 2層階層構造

**高レベル方策**：
- 長期目標を短期サブ目標に分解
- サブ目標の系列を決定

**低レベル方策**：
- 各サブ目標を達成するための行動を学習
- 条件付き方策：π_low(a|s,g) # gはサブ目標

#### Options Framework
一連の行動をまとめた「オプション」を定義：
```
Option o = (I, π, β)
- I: 開始条件
- π: オプション内方策  
- β: 終了条件
```

#### HAC（Hierarchical Actor-Critic）
Actor-Criticを階層的に拡張：
- 各レベルでActor-Criticを学習
- 上位レベルがサブ目標を設定
- 下位レベルがサブ目標達成を学習

### 7.4 その他の地平短縮技術

#### Hindsight Experience Replay（HER）
失敗した経験を成功体験として再解釈：
```
元の目標: g, 結果: s'
新しい目標: g' = s'として経験を再学習
```

#### Curriculum Learning
簡単なタスクから徐々に難しいタスクへ：
```
地平 H₁ < H₂ < ... < Hₙ の順で学習
```

## 第8章：評価指標とベンチマーク

### 8.1 オフライン強化学習の評価指標

#### 正規化スコア
```
Score = (Algorithm_score - Random_score) / (Expert_score - Random_score) × 100
```

#### 学習曲線の安定性
- 収束速度
- 最終性能
- 分散の大きさ

### 8.2 代表的なベンチマーク

#### D4RL（Datasets for Deep Data-Driven RL）
- 標準化されたオフラインRLベンチマーク
- MuJoCo、Atari、フロー制御など多様なドメイン

#### RL Unplugged
- Google DeepMindによるベンチマーク
- 実世界に近い複雑なタスク

## 第9章：最新の研究動向と課題

### 9.1 現在の主要な研究方向

#### Foundation Models for RL
大規模言語モデルの強化学習への応用

#### Offline-to-Online RL
オフライン学習から開始してオンライン学習に移行

#### Multi-task Offline RL
複数タスクを同時に学習するオフライン強化学習

### 9.2 実用化に向けた課題

#### ロバスト性
- 分布シフトへの対応
- ノイズデータでの学習

#### 解釈可能性
- 学習された方策の説明可能性
- デバッグと診断の支援

#### スケーラビリティ
- 大規模データセットでの効率的学習
- 計算資源の最適化

## まとめ

強化学習は環境との相互作用を通じて最適な行動を学習する強力な機械学習手法です。特にオフライン強化学習は、安全性と実用性の観点から重要性を増しています。

地平の呪いのような根本的な課題が存在しますが、地平短縮技術や階層的学習などの手法により、着実に進歩を遂げています。今後は、理論的基盤の強化と実用的手法の開発の両面から、さらなる発展が期待されます。

本記事で紹介した概念は、現代の強化学習研究を理解する上で欠かせない基礎知識です。これらの理解を基に、最新の研究論文や実装に取り組んでいただければと思います。

---

*この記事は強化学習の基礎から最新のオフライン強化学習まを包括的に解説しました。より詳細な数学的定義や実装については、専門書籍や原著論文をご参照ください。*