强化学习实践(1):简单介绍


:此教程为莫烦python中RL的实践笔记

从监督学习到强化学习

监督学习中数据和数据对应的正确标签成对,而强化学习一开始并没有这一的标签,很多强化学习是通过在环境中尝试,然后根据环境给出的反馈学习。

RL算法有哪些(我们要实践哪些)

RL算法以及其变种其实很多,我们这里因为是实践莫烦的RL教程,所以不讨论莫烦列出来的算法之外的算法。

通过价值选行为直接选行为想象环境并从中学习
QlearningPolicy GradientsModel based RL
Sarsa
DQN

通过价值选行 意思是:是通过行为的价值来选特定的行为

Model-free和Model-based

所有DRL算法都可以抽象成如下步骤:

generate samples
fit a model/estimate the return
imporve the policy

Model-free的在fit model方便就没有去过多尝试,只是得到reward给到imporve policy的阶段;
Model-based模型就是有尝试用一个模型来表征(拟合)环境,这种算法可以不只是利用在真实环境中generate sample的数据,并且还可以使用自己的模型给出的数据
可以这样认为:Model-free只能够不断的和真实的环境进行交互,而Model-based在机器人的大脑中去构建了这个世界的模型,知道这个世界的某些(可能不准)运作方式,机器人不仅可以通过和真实环境进行交互还可以通过想象自己做了什么会得到什么结果来送入imporve policy策略提升阶段

Model-free算法 :

  • Q-learning
  • Sarsa
  • Policy Gradients

基于概率(Policy-Based) 和 基于价值(Value-Based)

Value-Based输出的是所有动作的价值,一般根据最高价值选择动作
Policy-Based输出的是所有动作的概率,每种动作都可能被选中
结论:Value-Based比较铁定,Policy-Based雨露均沾
在离散动作空间两者皆可,连续动作空间只能用Policy-Based基于概率的算法
Policy-Based: Policy Graients
Value-Based: Q learning;Sarsa
both Policy-Value: Actor-Critic
Actor-Critic中 actor基于概率做出动作,critic对做出的动作给出动作的价值,在Policy Gradient上加速了学习过程 1

回合更新(Monte-Carlo update)和单步更新(Temporal-Difference update)

我们往往会在一个游戏定义一个终点,比如五局三胜、救出公主、打死老大或者实践超时之类的,回合更新就是说游戏结束之后进行总结、学习;而单步更新就是边玩边学。

回合更新:

  • Monte-carlo learning
  • 基础版的 policy gradients

单步更新:

  • Qlearning
  • Sarsa
  • 升级版的 policy gradients

同策略和 异策略 1

同策略: o n − p o l i c y on-policy onpolicy;异策略: o f f − p o l i c y off-policy offpolicy
这和在线学习、离线学习是两个范畴的事情 2

o n − p o l i c y on-policy onpolicy是在使用当前policy的时候更新当前policy,而 o f f − p o l i c y off-policy offpolicy有两个部分,一个是behaviour policy,它用于产生behaviour,也就是产生<s, a, r, s’>的sample;另一个是estimation policy,是正在被评估和被优化的policy,behaviour policy和estimation policy可能没有关系。2

o n − p o l i c y on-policy onpolicy 必须要自己玩游戏(使用自己的策略)自己学(来跟新当前policy),闭门造车。
o f f − p o l i c y off-policy offpolicy可以选择自己玩也可以看主播(使用其他策略更新自己的策略)玩游戏,学习别人的行为准则,这些看见过的经历不一定要按照他人的策略行事(使用自己的策略行事)。

o n − p o l i c y on-policy onpolicy :Sarsa、Sarsa lambda
o f f − p o l i c y off-policy offpolicy: Q learning、Deep-Q-Network.

需要用到的模块(python)

Numpy, Pandas (必学), 用于学习的数据处理
Matplotlib (可学), 偶尔会用来呈现误差曲线什么的
Tkinter (可学), 你可以自己用它来编写模拟环境
Tensorflow (可学), 后面实现神经网络与强化学习结合的时候用到
OpenAI gym (可学), 提供了很多现成的模拟环境

最后,附上莫烦RL的github
以及一个写的不错的关于RL的博文
十分不错的RL实践教程


  1. 在莫烦的python RL教程中,我认为他所说的在线学习和离线学习想指的是on-policy和off-policy,这个的正确翻译应该是同策略和异策略,在很多文章中精彩把on-policy解释成在线学习,off-policy翻译成离线学习,但是这其实是不严谨不对的。 ↩︎ ↩︎

  2. 知乎问答·请问强化学习的off-policy/on-policy和机器学习的离线学习/在线学习是一个概念吗?[J]·https://www.zhihu.com/question/312824554 ↩︎ ↩︎

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值