【百度飞桨强化学习7日打卡营】学习笔记 -- 第五课:连续动作空间求解RL

写在前面

本次课程是参加百度飞桨7日打卡营活动的第五天笔记。
课程链接:https://aistudio.baidu.com/aistudio/education/group/info/1335

主要内容:DDPG
实践:DDPG

上节课更正说明

上节课PPT的红框部分有点小问题,需要注意
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

一、离散动作 VS 连续动作

在这里插入图片描述
在这里插入图片描述

二、DDPG

1.DQN --> DDPG

DDPG是DQN的扩展版本,DDPG需要一边学习Q网络,一边学习 策略网络。

在这里插入图片描述
在这里插入图片描述

2.Actor-Critic 结构

DDPG这种结构,是 Actor-Critic 结构。
策略网络(是 Actor ):Actor(演员)需要根据舞台的状态来做出action。
Q网络 (是 Critic ):Critic(评论家)需要根据舞台状态和Actor(演员)的表现来打一个分Q。

因此,Actor(演员)要做的是根据Critic(评论家)的打分来调整自己的策略,争取下次做得更好。Critic(评论家)要根据环境的反馈 reward 来调整自己的打分策略,目标是最大化未来的总收益。
(在刚开始是随机的,Critic(评论家)是随机得分的,Actor(演员)是随机乱来的。由于有环境的反馈 reward 的存在,Critic(评论家)打分越来越准确,然后会带着Actor(演员)的表现会越来越好)

在这里插入图片描述
在这里插入图片描述

3.目标网络target_network+经验回放RelayMemory

为了稳定 Q_target ,专门分别为 策略网络 和Q网络搭建了 target_network,

在这里插入图片描述

三、DDPG 程序实现

1.PARL DDPG

在这里插入图片描述

2.Critic 网络(Q网络)更新

在这里插入图片描述

3.Actor 网络(策略网络)更新

在这里插入图片描述

4.Target network 参数软更新

每次只把新的参数copy进去,控制更新的幅度,主要是保证Target network 不会每次大换血,希望Target network 更新能够更加平滑稳定。
在这里插入图片描述

5.连续动作的探索–CartPole的连续推力控制

在这里插入图片描述

四、总结

在这里插入图片描述
大作业: 四轴飞行器悬浮控制任务
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

课后作业

请按照notebook中说明,完成7处代码的补充和调试。预期效果:Test reward波动上涨,Evaluate reward可以超过8000分,分数越高越好。

1.课后作业AI Studio运行效果

参照课上老师讲解和 PARL/examples/tutorials 里面的内容,填写完整 Notebook,并运行代码。
先训练,然后修改程序 ckpt = 'model_dir/steps_540640.ckpt' # 请设置ckpt为你训练中效果最好的一次评估保存的模型文件名称,进行测试。

下面这个是自己的测试结果:
(自己运行没有能训练到好的效果,使得Evaluate reward的分数 > 8000)

在这里插入图片描述

1.1 AI Studio运行时遇到的问题

直接运行程序会报一下错误:

AssertionError: the action should be in range [-1.0, 1.0]

在这里插入图片描述

解决方法:
经过讨论区某为热心朋友的留言,修改 Step4 Training && Test(训练&&测试) 中的 evaluate(env, agent) 函数后的41行后增加限幅 action = np.clip(action, -1.0, 1.0) ,然后就可以运行成功了。
亲测有效~

在这里插入图片描述

2.课后作业本地运行效果

(本地运行,自己也没有能训练到Evaluate reward的分数 > 8000,原因主要是因为自己电脑CPU太菜了,程序跑起来很慢,所以自己训练时间比较短,测试时间也比较短,如果训练较长时间找到训练效果更好的模型,那么最终的测试效果会好很多)

pip install paddlepaddle==1.6.3
pip install parl==1.3.1
pip install gym
git clone --depth=1 https://gitee.com/PaddlePaddle/PARL.git  # 下载PARL代码库
dir PARL # 查看代码库根目录
cd PARL/examples/tutorials/homework/lesson5/ddpg_quadrotor/ #进入到 ddpg_quadrotor 文件夹
2.1 训练效果
## Step3 运行 train.py 进行训练
python train.py

在这里插入图片描述

在程序 evaluate.py 修改下面这一行,其中 ckpt为你训练中效果最好的一次评估保存的模型文件名称

ckpt = 'model_dir/steps_90199.ckpt'  # 请设置ckpt为你训练中效果最好的一次评估保存的模型文件名称
2.2 测试效果
## Step4 运行 evaluate.py 进行评估训练结果
python evaluate.py

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值