【百度飞桨强化学习7日打卡营】学习笔记 -- 第二课:基于表格型方法求解RL

写在前面

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

主要内容:MDP、状态价值、Q表格
实践:Sarsa、Q-learning

一、状态转移和序列决策

【百度飞桨强化学习7日打卡营】学习笔记 -- 第二课:基于表格型方法求解RL_第1张图片

强化学习面对的环境是完全未知的,这里的P函数和R函数是未知的。
【百度飞桨强化学习7日打卡营】学习笔记 -- 第二课:基于表格型方法求解RL_第2张图片

二、Q表格

1. Q表格:一本生活手册,包含取得成功的知识。【百度飞桨强化学习7日打卡营】学习笔记 -- 第二课:基于表格型方法求解RL_第3张图片

下面的救护车闯红灯的例子,就体现了 现实世界中奖励reward是延迟的。
【百度飞桨强化学习7日打卡营】学习笔记 -- 第二课:基于表格型方法求解RL_第4张图片

2. Q表格:指导每一个Step的动作选择,目标导向

比如股票预测,引入了衰减因子。
【百度飞桨强化学习7日打卡营】学习笔记 -- 第二课:基于表格型方法求解RL_第5张图片

reward 折扣因子
【百度飞桨强化学习7日打卡营】学习笔记 -- 第二课:基于表格型方法求解RL_第6张图片
【百度飞桨强化学习7日打卡营】学习笔记 -- 第二课:基于表格型方法求解RL_第7张图片
Q表格的形式:
【百度飞桨强化学习7日打卡营】学习笔记 -- 第二课:基于表格型方法求解RL_第8张图片

三、Sarsa算法

1.Sarsa算法

下面的公式展示了更新的方式,通过不断更新α让Q(St,At) 逐步逼近 [Rt+1 + rQ(St+1,At+1)],这就是Sarsa算法。
【百度飞桨强化学习7日打卡营】学习笔记 -- 第二课:基于表格型方法求解RL_第9张图片

2.Sarsa算法思路

【百度飞桨强化学习7日打卡营】学习笔记 -- 第二课:基于表格型方法求解RL_第10张图片

3.Sarsa算法编程实践

注意 在执行learn(),需要先根据 下一次的观测next_obs,利用sample()拿到 下一次的动作next_action。
【百度飞桨强化学习7日打卡营】学习笔记 -- 第二课:基于表格型方法求解RL_第11张图片

【百度飞桨强化学习7日打卡营】学习笔记 -- 第二课:基于表格型方法求解RL_第12张图片

【百度飞桨强化学习7日打卡营】学习笔记 -- 第二课:基于表格型方法求解RL_第13张图片
【百度飞桨强化学习7日打卡营】学习笔记 -- 第二课:基于表格型方法求解RL_第14张图片

Sarsa实际上是一种 On-Policy的策略。它优化的是它实际执行的策略,他直接拿下一步我一定会执行的action,来优化Q表格。所以在执行过程中,只存在一种策略。它用一种策略来做action的选取,也用一种策略来做优化。
所以对于悬崖的例子,Sarsa知道自己下一步有可能到悬崖那边去,所以他尽量里悬崖远一点。这样就可以保证哪怕下一步有随机动作,他也可以保证在安全区域内。

四、Q-learning算法

【百度飞桨强化学习7日打卡营】学习笔记 -- 第二课:基于表格型方法求解RL_第15张图片
【百度飞桨强化学习7日打卡营】学习笔记 -- 第二课:基于表格型方法求解RL_第16张图片

五、Sarsa vs Q-learning

【百度飞桨强化学习7日打卡营】学习笔记 -- 第二课:基于表格型方法求解RL_第17张图片
他们之间最明显的区别是:

Sarsa需要得到 下一步动作next_action,然后再进行学习learn();但是Q-learning 不需要得到 下一步动作next_action,就可以进行学习learn()。

【百度飞桨强化学习7日打卡营】学习笔记 -- 第二课:基于表格型方法求解RL_第18张图片

六、总结

【百度飞桨强化学习7日打卡营】学习笔记 -- 第二课:基于表格型方法求解RL_第19张图片
(课后作业感兴趣可以自己做一做,跑一跑)【百度飞桨强化学习7日打卡营】学习笔记 -- 第二课:基于表格型方法求解RL_第20张图片

【百度飞桨强化学习7日打卡营】学习笔记 -- 第二课:基于表格型方法求解RL_第21张图片

课后作业

实现Sarsa算法玩迷宫游戏 预期效果:最终输出的 test reward 为1.0

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

参照课上老师讲解和 PARL/examples/tutorials 里面的内容,填写完整 Notebook,并运行代码。
【百度飞桨强化学习7日打卡营】学习笔记 -- 第二课:基于表格型方法求解RL_第22张图片

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

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 运行sarsa
python examples/tutorials/lesson2/sarsa/train.py

## Step3 运行 q_learning
python examples/tutorials/lesson2/q_learning/train.py

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