【百度飞桨强化学习7日打卡营】学习笔记 -- 第四课:基于策略梯度求解RL

写在前面

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

主要内容:策路近似、策路梯度
实践:Policy Gradient

一、Value-based 与 Policy-based 区别

Value-based Policy-based
区别1 间接方式求action 直接一步到位求action
区别2 确定性策略:优化到最优后,参数就固定下来了。那么输入一样的状态会输出一样的action 随机策略:根据概率来采样,概率越大,动作越容易被采样到

【百度飞桨强化学习7日打卡营】学习笔记 -- 第四课:基于策略梯度求解RL_第1张图片
【百度飞桨强化学习7日打卡营】学习笔记 -- 第四课:基于策略梯度求解RL_第2张图片

智能体的选择是我们可以去优化的策略,但是环境随机性的概率我们是不能控制的。
【百度飞桨强化学习7日打卡营】学习笔记 -- 第四课:基于策略梯度求解RL_第3张图片

【百度飞桨强化学习7日打卡营】学习笔记 -- 第四课:基于策略梯度求解RL_第4张图片

【百度飞桨强化学习7日打卡营】学习笔记 -- 第四课:基于策略梯度求解RL_第5张图片
为了使reward上升,我们引入梯度上升概念。
【百度飞桨强化学习7日打卡营】学习笔记 -- 第四课:基于策略梯度求解RL_第6张图片

二、蒙特卡洛MC与时序差分TD

1.蒙特卡洛MC与时序差分TD区别

蒙特卡洛MC:算法完成一个episode之后,再那这个episode 的数据来去做一次 learn() 更新。注意这里的G_t(外加上标n) 是指当前步开始,我往后能拿到的收益之和。
时序差分TD:每个step都会进行learn() 更新,使用Q(外加上标n)来近似G_t(外加上标n)
【百度飞桨强化学习7日打卡营】学习笔记 -- 第四课:基于策略梯度求解RL_第7张图片

2.Gt的计算

【百度飞桨强化学习7日打卡营】学习笔记 -- 第四课:基于策略梯度求解RL_第8张图片

三、类比监督学习来理解Policy Gradient

手写数字识别,差不多算是神经网络里面的 “hello world”
【百度飞桨强化学习7日打卡营】学习笔记 -- 第四课:基于策略梯度求解RL_第9张图片
【百度飞桨强化学习7日打卡营】学习笔记 -- 第四课:基于策略梯度求解RL_第10张图片
用交叉熵来计算两个概率之间的差值。因为我们希望这两个动作概率分布之间的差距,所以计算得到的距离就可以作为 loss 传给神经网络里面的优化器进行优化。
【百度飞桨强化学习7日打卡营】学习笔记 -- 第四课:基于策略梯度求解RL_第11张图片

【百度飞桨强化学习7日打卡营】学习笔记 -- 第四课:基于策略梯度求解RL_第12张图片
【百度飞桨强化学习7日打卡营】学习笔记 -- 第四课:基于策略梯度求解RL_第13张图片

四、REINFORCE 算法

1.REINFORCE 算法原理

【百度飞桨强化学习7日打卡营】学习笔记 -- 第四课:基于策略梯度求解RL_第14张图片

2.REINFORCE 流程图

【百度飞桨强化学习7日打卡营】学习笔记 -- 第四课:基于策略梯度求解RL_第15张图片

3.REINFORCE 程序实现

【百度飞桨强化学习7日打卡营】学习笔记 -- 第四课:基于策略梯度求解RL_第16张图片

五、总结

【百度飞桨强化学习7日打卡营】学习笔记 -- 第四课:基于策略梯度求解RL_第17张图片
课后作业
【百度飞桨强化学习7日打卡营】学习笔记 -- 第四课:基于策略梯度求解RL_第18张图片
【百度飞桨强化学习7日打卡营】学习笔记 -- 第四课:基于策略梯度求解RL_第19张图片
【百度飞桨强化学习7日打卡营】学习笔记 -- 第四课:基于策略梯度求解RL_第20张图片
最后附上一部分的公式推导过程:
【百度飞桨强化学习7日打卡营】学习笔记 -- 第四课:基于策略梯度求解RL_第21张图片
【百度飞桨强化学习7日打卡营】学习笔记 -- 第四课:基于策略梯度求解RL_第22张图片

课后作业

请按照notebook中说明,完成4处代码的补充和调试。预期效果:分数从-21开始逐渐上涨收敛,Test reward的分数可以收敛到0分以上(说明打败对方了),越高越好。

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

参照课上老师讲解和 PARL/examples/tutorials 里面的内容,填写完整 Notebook,并运行代码。(自己运行没有能训练到reward的分数 > 0)

【百度飞桨强化学习7日打卡营】学习笔记 -- 第四课:基于策略梯度求解RL_第23张图片

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

(本地运行,自己也没有能训练到reward的分数 > 0,可能自己的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 #进入到 PARL 文件夹
## Step3 运行QuickStart
python examples/tutorials/lesson4/policy_gradient_pong/train.py

【百度飞桨强化学习7日打卡营】学习笔记 -- 第四课:基于策略梯度求解RL_第24张图片

你可能感兴趣的:(强化学习)