深度学习16-连续动作空间

本文探讨了连续动作空间在强化学习(RL)中的重要性,对比了连续与离散动作空间的区别。通过GymAPI,作者展示了如何实现连续控制。文章详细介绍了D4PG算法,包括critic的forward()函数、探索策略(如OU过程和随机噪声)以及使用交叉熵损失进行训练。此外,还提出了使用优先级回放缓冲区、尝试不同环境(如PyBullet和DeepMindControlSuite)以及比较MuJoCo与PyBullet的实验建议。

### 连续动作空间 

▪  涵盖连续动作空间为何重要、它与离散动作空间有何不同,以及在Gym API中的实现方式。
▪  讨论将RL方法应用到连续控制的领域。
▪  查看解决四足机器人问题的三种不同算法。

critic的forward()函数首先用其较小的网络对观察进行转换,然后将输出和给定的动作进行组合,以将其转换为单个Q值。若要将actor神经网络与PTAN经验源一起使用,我们需要定义一个将观察结果转化为动作的智能体类。此类是放置OU探索过程最方便的地方,但是要更方便地执行此操作,我们还应该使用PTAN智能体的一个功能:可选状态。

最显著的变化是critic的输出。现在,它不返回给定状态和动作的单个Q值,而是返回N_ATOMS个值,该值对应于预定义范围中的值的概率。在我的代码中,我使用了N_ATOMS=51且分布范围为Vmin=-10和Vmax=10,因此critic返回51个数字,表示带折扣的奖励会落入[–10, –9.6, –9.2, …, 9.6, 10]中。
D4PG和DDPG之间的另一个区别是探索。DDPG使用OU过程进行探索,但据D4PG的作者称,他们同时尝试了在动作中添加OU以及简单的随机噪声,结果是相同的。因此,他们在本文中使用了一种更简单的方法进行探索。
代码中的最后一个显著差异与训练有关,因为D4PG使用交叉熵损失来计算两个概率分布之间的差异(由critic返回并由Bellman运算符得出)。为了使两个分布的原子对齐,与Bellemare在原始论文中的使用方式相同,他们使用了分布投影。

**可以尝试的事情**

1)在D4PG代码中,我使用了一个简单的回放缓冲区,它足以对DDPG进行良好的改进。你可以尝试按照与第8章中相同的方式将示例切换到带优先级的回放缓冲区,然后检查效果。
2)还有许多有趣且充满挑战的环境。例如,你可以从其他PyBullet环境开始,但也可以使用DeepMind Control Suite(见Tassa、Yuval等人发表的“DeepMind Control Suite”,arXiv abs/1801.00690(2018))、Gym中基于MuJoCo的环境以及许多其他环境。
3)你可以申请MuJoCo的试用许可证,并将其稳定性、性能和产生的策略与PyBullet进行比较。
4)你可以参加NIPS-2017极富挑战性的Learning to Run竞赛(该竞赛也在2018年和2019年进行,并存在更多具有挑战性的问题),你将获得一个人体模拟器,并且你的智能体需要弄清楚如何移动它。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五百五。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值