26 lines
1.2 KiB
YAML
26 lines
1.2 KiB
YAML
# ==========================================
|
|||
|
|
# Proximal Policy Optimization (PPO-Clip)
|
||
|
|
# Pendulum-v1 配置
|
||
|
|
# 参考论文: Schulman et al., 2017 (arXiv:1707.06347)
|
||
|
|
# ==========================================
|
||
|
|
|
||
|
|
# --- 算法核心参数 ---
|
||
|
|
gamma: 0.9 # 折扣因子 (Pendulum 短周期任务用 0.9 比 0.99 更易收敛)
|
||
|
|
gae_lambda: 0.95 # GAE λ (论文 Table 3)
|
||
|
|
clip_epsilon: 0.2 # 概率比率裁剪范围 [1-ε, 1+ε]
|
||
|
|
lr: 0.001 # 学习率 (PPO on-policy 更新少,适当提高 lr)
|
||
|
|
|
||
|
|
# --- 网络更新参数 ---
|
||
|
|
n_epochs: 10 # 每轮收集后用同一批数据重复优化的 epoch 数
|
||
|
|
batch_size: 64 # mini-batch 大小
|
||
|
|
vf_coef: 0.5 # 价值损失系数 c1 (公式9)
|
||
|
|
entropy_coef: 0.0 # 熵奖励系数 c2 (Pendulum 简单任务,不需要额外探索奖励)
|
||
|
|
max_grad_norm: 0.5 # 梯度裁剪上限
|
||
|
|
|
||
|
|
# --- 数据收集参数 ---
|
||
|
|
steps_per_update: 1024 # 每次更新前收集的步数 (缩短到 5 个 episode 更新一次,加速学习)
|
||
|
|
|
||
|
|
# --- 训练循环控制 ---
|
||
|
|
max_episodes: 500 # PPO 是 on-policy,需要更多 episode 才能收敛
|
||
|
|
max_steps: 200 # 每 episode 最多步数 (Pendulum-v1 默认 200 步截断)
|