簡介
Capstone 專案將所有 RL 知識應用於真正的端到端問題。從以下 3 個項目中選擇 1 個。
項目1:遊戲AI代理
描述
建立人工智慧遊戲代理程式——從自訂環境到經過培訓的可以演示的代理。
技術堆疊
- 體育館自訂環境(蛇、Flappy Bird、俄羅斯方塊)
- DQN 或 PPO 培训
- 使用 Optuna 進行超參數優化
- 帶有 Gradio 的網路演示
步骤
# 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 分析
- 模擬到真實的傳輸分析
評價
# 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 使小型法學碩士與人們的偏好保持一致。
技術堆疊
- 基本款: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% |
| 演示 | 互動式演示(網頁應用程式或影片) | 20% |
總結
恭喜您完成強化學習:從基礎到進階系列!
###學到的知識
| 部分 | 主要内容 |
|---|---|
| 1. 平台 | MDP、DP、MC、TD、Q 學習 |
| 2. 深度強化學習 | DQN、策略梯度、PPO、SAC |
| 3. 框架 | 體育館、SB3、MuJoCo |
| 4. 生產 | RLHF、DPO、多重代理、部署 |
###進一步的發展方向
- 研究:閱讀 arXiv 上的論文,重現結果
- 競賽:Kaggle RL、NeurIPS 挑戰
- 開源:為 SB3、TRL、PettingZoo 做出貢獻
- 職業:強化學習工程師、人工智慧安全研究員、機器人工程師