はじめに
Capstone プロジェクトは、RL の知識をすべて実際のエンドツーエンドの問題に適用します。以下の 3 つのプロジェクトから 1 つをお選びください。
プロジェクト 1: ゲーム AI エージェント
説明
AI ゲーム エージェントを構築します — カスタム環境からデモが可能な訓練されたエージェントまで。
技術スタック
- 体育館カスタム環境 (スネーク、フラッピーバード、テトリス)
- DQNまたはPPOトレーニング
- Optuna によるハイパーパラメータの最適化
- Gradio を使用した Web デモ
ステップ
# 1. Build custom environment
class GameEnv(gym.Env):
# Implement reset(), step(), render()
pass
# 2. Train agent
from stable_baselines3 import PPO
model = PPO("MlpPolicy", GameEnv(), verbose=1)
model.learn(total_timesteps=1_000_000)
# 3. Evaluate
mean_reward, std = evaluate_policy(model, GameEnv(), n_eval_episodes=100)
print(f"Score: {mean_reward:.1f} +/- {std:.1f}")
# 4. Demo
import gradio as gr
def play_game(seed):
env = GameEnv(render_mode="rgb_array")
frames = record_episode(model, env, seed)
return frames
プロジェクト 2: ロボット制御
説明
MuJoCo でロボットの移動エージェントを訓練します — 歩く、走る、または操作します。
技術スタック
- MuJoCo (アリ、ヒューマノイド、またはカスタム ロボット)
- ドメインのランダム化による SAC トレーニング
- TensorBoard 分析
- Sim-to-Real 転送解析
評価
# Compare algorithms
algorithms = {
"PPO": PPO("MlpPolicy", env),
"SAC": SAC("MlpPolicy", env),
"TD3": TD3("MlpPolicy", env),
}
results = {}
for name, model in algorithms.items():
model.learn(total_timesteps=1_000_000)
mean_reward, _ = evaluate_policy(model, env, n_eval_episodes=50)
results[name] = mean_reward
プロジェクト 3: RLHF / DPO チャットボット
説明
DPO または RLHF を使用して、小さな LLM を人間の好みに合わせます。
技術スタック
- ベースモデル: SmolLM または Qwen2.5 (0.5B-1.5B)
- SFT + DPO 用の TRL ライブラリ
- 評価:MT-Bench、AlpacaEval
- グラディオチャットインターフェース
パイプライン
# 1. SFT
sft_trainer = SFTTrainer(model, train_dataset=sft_data)
sft_trainer.train()
# 2. DPO
dpo_trainer = DPOTrainer(model, ref_model, train_dataset=pref_data)
dpo_trainer.train()
# 3. Evaluate
# - Perplexity
# - Win rate vs base model
# - Human evaluation
# 4. Deploy
import gradio as gr
demo = gr.ChatInterface(fn=generate_response)
demo.launch()
成果物
| アイテム | 説明 | 重量 |
|---|---|---|
| コード | クリーンで文書化された GitHub リポジトリ | 30% |
| トレーニングログ | TensorBoard の視覚化、学習曲線 | 20% |
| レポート | アーキテクチャの決定、結果分析、アブレーション | 30% |
| デモ | インタラクティブなデモ (Web アプリまたはビデオ) | 20% |
概要
強化学習: 基本から上級まで シリーズの完了おめでとうございます。
学んだ知識
| パート | 主な内容 |
|---|---|
| 1. プラットフォーム | MDP、DP、MC、TD、Q ラーニング |
| 2.ディープRL | DQN、ポリシー勾配、PPO、SAC |
| 3. フレームワーク | 体育館、SB3、MuJoCo |
| 4. 生産 | RLHF、DPO、マルチエージェント、展開 |
さらなる開発の方向性
- 研究: arXiv で論文を読み、結果を再現します。
- コンテスト: Kaggle RL、NeurIPS の課題
- オープンソース: SB3、TRL、PettingZoo に貢献
- 経歴: RL エンジニア、AI 安全研究者、ロボティクス エンジニア