强化学习调参技巧二:DDPG、TD3、SAC算法为例:

1.训练环境如何正确编写

强化学习里的 env.reset() env.step() 就是训练环境。其编写流程如下:

1.1 初始阶段:

先写一个简化版的训练环境。把任务难度降到最低,确保一定能正常训练。记录正常训练的智能体的分数,与随机动作、传统算法得到的分数做比较。
DRL算法的分数应该明显高于随机动作(随机执行动作)。DRL算法不应该低于传统算法的分数。如果没有传统算法,那么也需要自己写一个局部最优的算法

评估策略的性能: 大部分情况下,可以直接是对Reward Function 给出的reward 进行求和得到的每轮收益episode return作为策略评分。有时候可以需要直接拿策略的实际分数作为评分
需要保证这个简化版的代码:高效、简洁、可拓展

1.2 改进阶段:

让任务难度逐步提高,对训练环境env 进行缓慢的修改,时刻保存旧版本的代码同步微调 Reward Function,可以直接代入自己的人类视角,为某些行为添加正负奖励。注意奖励的平衡(有正有负)。注意不要为Reward Function 添加太多额外规则,时常回过头取消一些规则,避免过度矫正。
同步微调 DRL算法,只建议微调超参数,但不建议对算法核心进行修改。因为任务变困难了,所以需要调整超参数让训练变快。同时摸清楚在这个训练环境下,算法对哪几个超参数是敏感的。有时候为了节省时间,甚至可以为 off-policy 算法保存一些典型的 trajectory(不建议

你可能感兴趣的:(#,强化学习相关技巧(调参,画图等),机器学习,深度学习,神经网络,边缘计算)