Reinforcement Learningは、人工知能・機械学習分野における重要な概念・技術です。
Reinforcement Learning(強化学習、RL)は、エージェントが環境と相互作用しながら、報酬を最大化するような行動を学習する機械学習パラダイムです。教師あり学習のように明示的な正解ラベルはなく、行動の結果として得られる報酬を通じて最適な戦略(方策)を獲得します。ゲーム AI、ロボット制御、自動運転、推薦システム、LLM の RLHF など幅広く応用されています。
状態から行動への対応付け:π(a|s)
Q(s,a) ← Q(s,a) + α[r + γ × max Q(s',a') - Q(s,a)]
Q(s,a) ← Q(s,a) + α[r + γ × Q(s',a') - Q(s,a)]
∇θ J(θ) = E[∇θ log π(a|s,θ) × G_t]
方策と価値関数を同時学習:
ニューラルネットを関数近似器として使用:
現代の LLM の学習で重要:
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()
| 用途 | 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 |