【強化学習】表形式Q学習とDQNの違い

強化学習の基本的な考え方から、表形式Q学習（テーブル型Q学習）と深層強化学習（DQN：Deep Q-Network）の違いについて解説します。

## 強化学習とは

強化学習は機械学習の一種で、「エージェント」が「環境」と呼ばれる世界の中で行動し、その結果として得られる「報酬」を最大化するように学習する手法です。

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

強化学習には、以下の基本的な要素があります:

1. **エージェント**: 学習を行い、行動を選択する主体
2. **行動**: エージェントが取ることのできる選択肢
3. **環境**: エージェントが作用する世界
4. **状態**: 環境の現在の様子を表す情報
5. **報酬**: 行動の結果として環境から得られる評価値
6. **方策**: どの状態でどの行動を選ぶかという戦略
7. **価値**: 将来的に得られると期待される報酬の総和

強化学習の学習プロセスは、以下のようなサイクルで進みます:

1. エージェントが現在の状態を観測
2. 方策に基づいて行動を選択
3. 環境が状態を更新し、報酬を返す
4. エージェントが報酬を元に方策を更新
5. 1に戻る（繰り返し）

このサイクルを通じて、エージェントは試行錯誤しながら、最適な行動を学習していきます。

## Q学習の基本

Q学習は強化学習の代表的なアルゴリズムの一つです。Q学習では、ある状態sでアクションaを取った時の「価値」をQ値（Q(s,a)）と呼び、このQ値を学習によって推定していきます。

### 表形式Q学習（テーブル型Q学習）

表形式Q学習では、すべての状態とアクションの組み合わせに対するQ値を「Qテーブル」と呼ばれる表で管理します。

例えば、状態が4種類、行動が3種類ある場合、4×3のテーブル（表）でQ値を管理します。学習が進むにつれて、このテーブルの値が更新され、最終的に最適な行動選択が可能になります。

表形式Q学習の更新式は以下のようになります:

```
Q(s, a) ← Q(s, a) + α [r + γ max_a' Q(s', a') - Q(s, a)]
```

ここで:
- α: 学習率
- r: 即時報酬
- γ: 割引率
- s': 次の状態
- a': 次の状態での可能な行動

### 表形式Q学習の限界

表形式Q学習の主な問題点は、状態が離散かつ有限でなければならないことです。例えば、ゲームのキャラクターの座標が1.1と1.11のように連続値をとる場合、これらは非常に近い状態ですが、表形式Q学習では別の状態として扱わなければならず、状態数が非常に多くなってしまいます。

また、状態数が多くなると、テーブルが巨大になり、すべての状態-行動ペアを十分に探索することが困難になります。これは「次元の呪い」と呼ばれる問題です。

## 深層強化学習（Deep Reinforcement Learning）

### DQN（Deep Q-Network）とは

DQNは、Q学習の考え方を拡張し、Q値をニューラルネットワークで近似する手法です。2013年にDeepMind社の研究チームによって発表され、2015年には「Nature」誌に掲載されました。Atariのゲームにおいて人間のプレイヤーを上回る性能を示したことで、強化学習の研究分野に大きな影響を与えました。

DQNでは、状態を入力として、各行動に対するQ値を出力するニューラルネットワークを構築します。これにより、連続的な状態空間や高次元の状態空間（例：画像）を扱うことが可能になります。

### 表形式Q学習とDQNの主な違い

1. **状態の表現**:
   - 表形式Q学習: 離散的な状態のみを扱える
   - DQN: 連続的な状態や高次元の状態（画像など）を扱える

2. **記憶方法**:
   - 表形式Q学習: すべての状態-行動ペアに対するQ値をテーブルに格納
   - DQN: ニューラルネットワークのパラメータ（重みとバイアス）としてQ関数を表現

3. **一般化能力**:
   - 表形式Q学習: 学習していない状態に対する予測が困難
   - DQN: 類似した状態に対して学習内容を一般化できる

4. **スケーラビリティ**:
   - 表形式Q学習: 状態数が増えるとテーブルが巨大になり、計算コストが高くなる
   - DQN: ニューラルネットワークのパラメータ数は状態数に直接依存しないため、複雑な環境にも対応可能

## DQNの学習を安定させるための工夫

DeepMindの研究者たちは、DQNの学習を安定させるために以下のような工夫を導入しました：

### 1. Experience Replay（経験再生）

エージェントが経験した状態、行動、報酬、次の状態のタプル(s, a, r, s')をメモリに保存し、学習時にランダムにサンプリングして使用します。この手法により、連続する経験の間の相関が低減され、学習の安定性が向上します。

### 2. Target Network（ターゲットネットワーク）

Q値の更新に使用するターゲット（目標値）を計算するための別のネットワーク（ターゲットネットワーク）を用意し、一定期間ごとにメインのネットワークからパラメータをコピーします。この方法により、学習プロセスの安定性が改善されます。

### 3. ε-greedy法

行動選択時に、確率εでランダムな行動を選択し、確率(1-ε)で最適と思われる行動（Q値が最大の行動）を選択します。この手法により、環境の探索（exploration）と知識の活用（exploitation）のバランスを取ることができます。

## DQNの応用例

DQNと深層強化学習技術は、以下のような様々な分野で応用されています：

- ゲームAI（Atariゲーム、囲碁、将棋など）
- ロボット制御（物体把持、ナビゲーションなど）
- 自動運転（障害物回避、経路計画など）
- 資源・エネルギー管理の最適化
- 製造プロセスの自動化と最適化
- 金融分野（トレーディング戦略の最適化など）

## まとめ

強化学習は、エージェントが環境と相互作用しながら最適な行動を学習する手法です。表形式Q学習は基本的なアプローチですが、連続的な状態や複雑な環境への適用には限界があります。

DQNはニューラルネットワークを用いてQ関数を近似することで、表形式Q学習の限界を克服し、より複雑な問題に対応できるようになりました。Experience ReplayやTarget Networkなどの技術的な工夫により、学習の安定性も大きく向上しています。

深層強化学習の分野は現在も活発に研究が続けられており、DQNをベースにした様々な改良アルゴリズム（Double DQN、Dueling DQN、Rainbow DQNなど）が開発されています。これらの技術は、ゲームAIだけでなく、ロボット制御や自動運転など様々な実用的な問題への応用も期待されています。


## 参考URL（英語）

1. [What is the difference between Q-learning, Deep Q-learning and Deep Q-network? - Artificial Intelligence Stack Exchange](https://ai.stackexchange.com/questions/25913/what-is-the-difference-between-q-learning-deep-q-learning-and-deep-q-network)
2. [Q-Learning vs. Deep Q-Learning vs. Deep Q-Network | Baeldung on Computer Science](https://www.baeldung.com/cs/q-learning-vs-deep-q-learning-vs-deep-q-network)