1.算法为TD3,学习率初始化为1e-3,随训练回合数逐渐减小至1e-5.
2.actor网络和critic网络使用线性连接层,最后一层激活函数采用tanh,其余使用relu,层数在五层左右。
3.动作空间包含18个参数,范围均在+-0.5之间,观测空间包含47个函数,范围在+-10之间,奖励曲线如下图所示。
其他信息有需要可以补充,请各位先达不吝指导,非常感谢
谢!

1.算法为TD3,学习率初始化为1e-3,随训练回合数逐渐减小至1e-5.
2.actor网络和critic网络使用线性连接层,最后一层激活函数采用tanh,其余使用relu,层数在五层左右。
3.动作空间包含18个参数,范围均在+-0.5之间,观测空间包含47个函数,范围在+-10之间,奖励曲线如下图所示。
其他信息有需要可以补充,请各位先达不吝指导,非常感谢
谢!

关注引自免费微信小程序:皆我百晓生
针对你所描述的强化学习问题,训练曲线在某个点骤降至接近0附近并保持,这可能是由于多种原因导致的。这里是一些可能的解决方案和调整策略:
def cosine_annealing(lr_init, lr_min, total_steps, decay_steps):
return np.maximum(lr_min, lr_init * (1 + np.cos(np.pi * step / decay_steps)) / 2)
# 更新学习率
for episode in range(total_episodes):
current_lr = cosine_annealing(1e-3, 1e-5, total_episodes, decay_steps=10000)
# 在训练过程中设置当前学习率
optimizer.lr = current_lr
target_update_interval = 2
for _ in range(target_update_interval):
target_actor_net.soft_update(local_actor_net, tau)
target_critic_net.soft_update(local_critic_net, tau)
噪声添加:在探索策略上,检查你的噪声添加方式。确保噪声在训练后期仍然提供足够的随机性,避免过早收敛。可能需要调整噪声的方差衰减速度。
批次大小和更新频率:尝试调整批次大小和训练频率,以找到合适的平衡。较大的批次大小可能有助于捕捉更多的模式,但过大的可能导致过拟合。
模型结构:确认网络结构是否过于复杂,过深或过多的隐藏层可能导致欠拟合或过拟合。尝试减少层数或使用正则化技术。
奖励机制:检查奖励函数,确保它是连续的并且鼓励探索。如果奖励突然变化,可能会导致模型不稳定。
早期停止或回调机制:如果你发现模型在某个点开始停滞,可以考虑引入早期停止机制,当训练不再带来显著性能提升时自动停止。
数据集预处理:对输入特征进行归一化或标准化,确保所有输入都在相似的范围内,这有助于提高模型的稳定性和性能。
可视化和调试:使用可视化工具(如TensorBoard)观察网络权重、梯度分布等,以便找出问题所在。
重新初始化:如果以上调整都无法改善,可以尝试重新初始化网络权重或策略,看看是否能恢复学习过程。
请根据这些策略逐步调整你的代码,并在每次更改后评估训练曲线,以确定哪些调整是有效的。记住,强化学习是一个迭代过程,需要耐心和实验。