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

写在前面

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

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

一、状态转移和序列决策

在这里插入图片描述

强化学习面对的环境是完全未知的,这里的P函数和R函数是未知的。
在这里插入图片描述

二、Q表格

1. Q表格:一本生活手册,包含取得成功的知识。在这里插入图片描述

下面的救护车闯红灯的例子,就体现了 现实世界中奖励reward是延迟的。
在这里插入图片描述

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

比如股票预测,引入了衰减因子。
在这里插入图片描述

reward 折扣因子
在这里插入图片描述
在这里插入图片描述
Q表格的形式:
在这里插入图片描述

三、Sarsa算法

1.Sarsa算法

下面的公式展示了更新的方式,通过不断更新α让Q(St,At) 逐步逼近 [Rt+1 + rQ(St+1,At+1)],这就是Sarsa算法。
在这里插入图片描述

2.Sarsa算法思路

在这里插入图片描述

3.Sarsa算法编程实践

注意 在执行learn(),需要先根据 下一次的观测next_obs,利用sample()拿到 下一次的动作next_action。
在这里插入图片描述

在这里插入图片描述

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

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

四、Q-learning算法

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

五、Sarsa vs Q-learning

在这里插入图片描述
他们之间最明显的区别是:

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

在这里插入图片描述

六、总结

在这里插入图片描述
(课后作业感兴趣可以自己做一做,跑一跑)在这里插入图片描述

在这里插入图片描述

课后作业

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

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

参照课上老师讲解和 PARL/examples/tutorials 里面的内容,填写完整 Notebook,并运行代码。
在这里插入图片描述

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

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值