AI・機械学習
初級
Reinforcement Learning(リインフォースメントラーニング)
Reinforcement Learningは、人工知能・機械学習分野における重要な概念・技術です。
0 回閲覧
0 いいね
2026/4/25 更新
関連タグ
AI
機械学習
初心者向け
Reinforcement Learning(強化学習)
概要
Reinforcement Learning(強化学習、RL)は、エージェントが環境と相互作用しながら、報酬を最大化するような行動を学習する機械学習パラダイムです。教師あり学習のように明示的な正解ラベルはなく、行動の結果として得られる報酬を通じて最適な戦略(方策)を獲得します。ゲーム AI、ロボット制御、自動運転、推薦システム、LLM の RLHF など幅広く応用されています。
基本概念
エージェントと環境
- Agent(エージェント): 学習する主体
- Environment(環境): エージェントが相互作用する世界
- State(状態): 環境の現在の状況
- Action(行動): エージェントの選択肢
- Reward(報酬): 行動の結果として得られる数値
学習の流れ
- 観測: エージェントが状態 s_t を観測
- 行動選択: 方策 π に基づいて行動 a_t を選択
- 実行: 環境で a_t を実行
- 報酬取得: r_t と次状態 s_{t+1} を獲得
- 更新: 経験から方策または価値関数を更新
- 反復: 目標達成まで繰り返し
主要な用語
Policy(方策)
状態から行動への対応付け:π(a|s)
Value Function(価値関数)
- V(s): 状態価値、その状態の良さ
- Q(s, a): 行動価値、状態 s で行動 a を取る価値
Reward Signal(報酬信号)
- 即時報酬: r_t
- 累積報酬: G_t = Σ γ^k × r_{t+k}
- γ(割引率): 将来報酬の減衰(0〜1)
Exploration vs Exploitation
- 探索: 新しい行動を試す
- 活用: 既知の良い行動を選ぶ
- ε-greedy: 確率 ε で探索、1-ε で活用
主要なアルゴリズム
1. 値ベース(Value-based)
Q-Learning
Q(s,a) ← Q(s,a) + α[r + γ × max Q(s',a') - Q(s,a)]
- Off-policy: 挙動方策と学習方策が異なる
- 代表例: Watkins の Q-Learning(1989)
SARSA
Q(s,a) ← Q(s,a) + α[r + γ × Q(s',a') - Q(s,a)]
- On-policy: 実際の行動を使用
- 安全性: Q-Learning より保守的
DQN(Deep Q-Network)
- DeepMind、2013: Nature 論文
- 革新: Atari ゲーム人間超え
- 技術: CNN + Q-Learning + Experience Replay + Target Network
2. 方策ベース(Policy-based)
REINFORCE
- 方策勾配定理: 方策を直接最適化
- 高分散: サンプル効率が悪い
- 改善: Baseline の追加
Policy Gradient
∇θ J(θ) = E[∇θ log π(a|s,θ) × G_t]
PPO(Proximal Policy Optimization)
- OpenAI、2017: 現在の主流
- 安定性: クリッピングで大きな更新を抑制
- 実装容易: 広範に採用
TRPO(Trust Region Policy Optimization)
- 制約最適化: KL ダイバージェンスで制限
- 保守的: 安定するが計算重い
3. Actor-Critic
方策と価値関数を同時学習:
- A2C: Advantage Actor-Critic
- A3C: Asynchronous(並列)
- DDPG: 連続行動空間
- SAC(Soft Actor-Critic): エントロピー正則化
深層強化学習(Deep RL)
ニューラルネットを関数近似器として使用:
- DQN: 2013、Atari ゲーム
- AlphaGo: 2016、囲碁で世界チャンピオン勝利
- AlphaZero: 2017、ゼロから自己対戦で学習
- MuZero: 2020、モデルベース RL
- Dreamer: 2021、世界モデル
主要な応用
ゲーム
- Atari: DQN、Rainbow
- 囲碁: AlphaGo、AlphaZero
- チェス: AlphaZero
- StarCraft II: AlphaStar
- Dota 2: OpenAI Five
- Minecraft: DreamerV3
ロボット制御
- 歩行: 二足歩行、四足歩行
- 器用な操作: Rubik's Cube(OpenAI)
- 倉庫ロボット: 在庫管理
自動運転
- ドライビングポリシー: Waymo、Tesla
- シミュレーション学習: CARLA
- Sim-to-Real: 実環境への転移
推薦システム
- コンテンツ推薦: YouTube、Netflix
- 広告最適化: Google、Facebook
- 動的価格設定: Amazon
金融
- アルゴリズム取引: 高頻度取引
- ポートフォリオ最適化
- リスク管理
自然言語処理
- RLHF: ChatGPT、Claude、Gemini の学習
- 対話システム
- 機械翻訳
RLHF(Reinforcement Learning from Human Feedback)
現代の LLM の学習で重要:
手順
- Pre-training: 大規模コーパスで言語モデル学習
- SFT(Supervised Fine-Tuning): デモ例で教師あり学習
- Reward Model: 人間の選好から報酬モデル学習
- PPO: 報酬モデルで方策最適化
効果
- 指示従順: ユーザーの意図に沿う
- 安全性: 有害な応答を抑制
- スタイル: 丁寧、簡潔、正確
主要なライブラリ
Python
- Stable-Baselines3: 実装が豊富、初心者向け
- Ray RLlib: 大規模分散学習
- CleanRL: 教育的、シンプル
- Tianshou: PyTorch ベース、高速
- PFRL: PreferredAI、日本製
環境シミュレータ
- Gym / Gymnasium: 標準インターフェース
- MuJoCo: 物理シミュレーション
- Isaac Gym: GPU ベース、NVIDIA
- DeepMind Control: 連続制御
- Unity ML-Agents: ゲーム環境
実装例(Stable-Baselines3)
import gymnasium as gym
from stable_baselines3 import PPO
# 環境作成
env = gym.make('CartPole-v1')
# モデル作成
model = PPO('MlpPolicy', env, verbose=1)
# 学習
model.learn(total_timesteps=100000)
# 評価
obs, _ = env.reset()
for _ in range(1000):
action, _ = model.predict(obs, deterministic=True)
obs, reward, terminated, truncated, _ = env.step(action)
if terminated or truncated:
obs, _ = env.reset()
課題と限界
1. サンプル効率
- 必要データ: 数百万〜数十億ステップ
- 対策: Model-based RL、Offline RL
2. 報酬設計
- Reward Shaping: 良い報酬の設計が困難
- Sparse Reward: まれにしか得られない報酬
- Reward Hacking: 意図しない最適化
3. 安全性
- 探索リスク: 実環境で危険な行動
- Safe RL: 制約付き強化学習
4. 汎化
- オーバーフィット: 特定環境に特化
- Domain Randomization: 多様な環境で学習
自作 PC での強化学習
必要なスペック
| 用途 | CPU | GPU | メモリ |
|---|---|---|---|
| 小規模(CartPole 等) | Ryzen 5 | GTX 1660 | 16GB |
| 中規模(Atari 等) | Ryzen 7 | RTX 3070 | 32GB |
| 大規模(MuJoCo) | Ryzen 9 | RTX 4090 | 64GB |
| 分散学習 | Threadripper | RTX 4090 × 2+ | 128GB |
関連用語
- MDP(Markov Decision Process)
- Value Function、Q-Learning
- Policy Gradient、PPO、SAC
- DQN、AlphaGo、AlphaZero
- RLHF、DPO(Direct Preference Optimization)