强化学习中关键超参数的详细说明
以下是强化学习中关键超参数的详细说明及典型设置建议,以Markdown表格形式呈现:
强化学习核心超参数说明表
参数名称 | 符号表示 | 作用描述 | 典型取值范围 | 调整建议 |
---|---|---|---|---|
折扣因子 | γ (gamma) | 控制未来奖励的重要性,值越大表示越重视长期收益 | 0.9~0.999 | 任务持续性越长取值应越大 |
学习率 | α (alpha) | 控制参数更新步长,决定神经网络权重调整的幅度 | 1e-5~1e-3 | 训练初期可设较大值,后期逐步衰减 |
探索率 | ε (epsilon) | 控制探索-利用权衡,决定随机选择动作的概率 | 0.1~1.0 | 通常采用衰减策略(如指数衰减) |
经验回放容量 | - | 经验池存储的历史经验数量 | 1e4~1e6 | 复杂任务需要更大容量 |
批处理大小 | batch_size | 每次网络更新时采样的经验数量 | 32~512 | 根据显存容量调整,较大值可提高稳定性 |
目标网络更新频率 | τ (tau) | 控制目标网络参数更新的速度(软更新方式) | 1e-4~1e-2 | 值越小目标网络更新越平缓 |
优先级指数 | α (alpha) | 控制优先经验回放的采样偏好程度(0表示均匀采样) | 0.4~0.7 | 需配合重要性采样权重校正 |
重要性采样修正因子 | β (beta) | 调整优先级采样带来的偏差 | 0.4~1.0 | 训练过程中应从较小值逐步增加到1.0 |
梯度裁剪阈值 | - | 防止梯度爆炸的最大梯度范数 | 0.1~10.0 | 根据网络稳定性调整 |
奖励缩放因子 | - | 对奖励值进行缩放,控制梯度幅度 | 0.01~1.0 | 保持网络输出的Q值在合理范围内 |
探索噪声方差 | σ | 在确定性策略中控制探索行为的噪声强度 | 任务相关 | 通常随训练进程逐步衰减 |
参数设置示例(基于DQN)
class DQNConfig:# 时间折扣参数GAMMA = 0.99 # 长期收益折扣率# 学习过程控制LEARNING_RATE = 1e-4 # 初始学习率LR_DECAY_STEPS = 10000 # 学习率衰减步数BATCH_SIZE = 64 # 经验回放采样量# 探索策略参数EPSILON_START = 1.0 # 初始探索率EPSILON_MIN = 0.01 # 最小探索率 EPS_DECAY = 0.995 # 探索率衰减率# 经验回放配置REPLAY_SIZE = 100000 # 经验池容量PRIORITY_ALPHA = 0.6 # 优先级指数BETA_START = 0.4 # 重要性采样初始值# 网络更新参数TAU = 0.01 # 目标网络软更新系数UPDATE_INTERVAL = 100 # 目标网络硬更新间隔GRAD_CLIP = 5.0 # 梯度裁剪阈值
参数调整策略
-
学习率调试:
- 观察损失曲线:
- 持续震荡 → 降低学习率
- 下降停滞 → 适当提高学习率
- 使用学习率衰减策略:
lr_schedule = tf.keras.optimizers.schedules.ExponentialDecay(initial_learning_rate=1e-3,decay_steps=10000,decay_rate=0.96)
- 观察损失曲线:
-
探索率动态调整:
class EpsilonController:def __init__(self):self.epsilon = Config.EPSILON_STARTdef decay(self):self.epsilon = max(Config.EPSILON_MIN, self.epsilon * Config.EPS_DECAY)
-
折扣因子选择原则:
- 回合制任务:γ ≈ 0.9~0.99
- 持续型任务:γ ≈ 0.99~0.999
- 即时奖励任务:γ ≈ 0.8~0.95
-
批量大小经验法则:
- 简单任务:32~64
- Atari级别任务:128~512
- 需要增加稳定性时:≥256
参数关联影响
-
学习率与批大小:
- 较大批次可支持更高学习率
- 经验公式:
lr = base_lr * sqrt(batch_size/64)
-
折扣因子与奖励缩放:
Q_{max} ≈ \frac{R_{max}}{1-γ}
应确保缩放后的奖励值使Q值范围合理
-
探索策略协同调整:
- 高探索率时:
- 可降低学习率防止Q值震荡
- 增加经验回放容量
- 低探索率时:
- 可提高目标网络更新频率
- 减小批处理大小
- 高探索率时:
建议通过网格搜索或贝叶斯优化进行系统调参,重点关注γ、α、ε这三个最敏感参数。