近些天想用DRL在VREP中搞一个机械臂reach任务,首选了DDPG算法,算法运行效果有点不尽人意,actor的loss简直是要飞上天,于是陷入了漫长的调参过程,后续将考虑应用新的连续动作的控制算法或者对DDPG进行一系列的改进,不过这都是后面的事了。今天实在不想继续往下看了,整理一下近期看的一些关于DDPG的资料,方便日后查看,也方便同行们一起学习。
1. DDPG原理介绍
DDPG原理讲解BLOG①:这篇blog简明的讲出了DDPG的构成,并且解释了Actor和Critic的loss。
DDPG原理讲解BLOG②:这篇blog的讲解也比较细致,不过笔者更喜欢blog中的一些网络流程图,故此收藏。
2. DDPG中的trick
3. 基于PyTorch的ddpg的实现
Demo1
Demo2
Demo3
Demo4
Demo5
Demo6
4. DDPG调参
DDPG的调参过程是真的**,在知乎上看到有筒子调了一个多月,笔者也还挣扎在调参的苦海中。下面有两篇关于DDPG调参经验的blog
Blog①
Blog②
5. DDPG的改进方式
- DDPG优先经验回放:这里实际上实在replay buffer做一些手脚,传统的训练过程是从replay buffer中随机抽取一些记忆,而prioritized experience replay在进行抽样时是按照memory的优先级进行抽样。利用TDerror计算每个memory的优先级,通过建立SumTree来实现这一过程。具体实现见该blog。
待尝试 - DelayDDPG:改变更新网络的时机 待 尝 试 \color{red}{待尝试} 待尝试
- TD3–Twin DelayDDPG
TD3 Twin DelayDDPG①
TD3 Twin DelayDDPG②
(尝试了该方法,不知为嘛,程序一直停留在最初的随机收集经验的阶段不继续执行,未果,先mark一下,之后如果解决了再回来补充)