https://github.com/tigerneil/deep-reinforcement-learning-family
https://morvanzhou.github.io/tutorials/machine-learning/reinforcement-learning/1-1-B-RL-methods/
-------主要引用morvan老师的教学视频
【强化学习】强化学习分类
在学习强化学习的过程中我们经常会遇到一些陌生的名词分类,什么model-free,offpolicy之类的,学习的时候不明觉厉可能就一眼带过了,但是其实这些分类的名词其实十分有趣,掌握他们十分有助于我们加深对相关强化学习算法的了解。
1、Model-free 和 Model-based
举个栗子:我们刚刚学习强化学习的时候都学习过gridworld这个机器人走迷宫的例子吧,就是有一个迷宫机器人从起点出发通过强化学习的方式选择出到达终点的最优路径。
model-based方式就是我们给机器人地图全开,事先了解好整个游戏环境根据过往的经验选取最优策略,也就是说model-based他能通过想象来预判断接下来将要发生的所有情况. 然后选择这些想象情况中最好的那种. 并依据这种情况来采取下一步的策略
model-free方法就是不依赖模型,这种情况下就是直接将我们的机器人丢到迷宫里面瞎溜达,然后机器人会根据现实环境的反馈采取下一步的动作。这种方法不对环境进行建模也能找到最优的策略。Model-free 的方法有很多, 像 Q learning, Sarsa, Policy Gradients 都是从环境中得到反馈然后从中学习。
2、Policy-based RL 和 Value-based RL
说道Policy与Value就不得不提到他们的两大代表算法,Policy-based有 Policy Grandient;Value-based有Q-Learning。根据这两种算法我们很清晰的就能看出他们之间的区别,Policy-based算法是通过对策略抽样训练出一个概率分布,并增强回报值高的动作被选中的概率。而Value-based是通过潜在奖励计算出动作回报期望来作为选取动作的依据。
Policy基于策略的算法在连续动作空间上比起Value-based更有优势
还有一种nb的算法Actor-Critic他结合了这两类方法的优势之处, actor 会基于策略的概率分布做出动作,而 critic 会对做出的动作给出动作的价值, 这样就在原有的 policy gradients 上加速了学习过程。
3、回合更新 和 单步更新
回合更新和单步更新, 假设强化学习就是在玩游戏, 游戏回合有开始和结束. 回合更新指的是游戏开始后,我们要等到打完这一局我们才对这局游戏的经历进行总结学习新的策略。 而单步更新则是在游戏进行中每一步都在更新,这样就可以一边游戏一边学习不用等到回合结束。
再来说说方法, Monte-carlo learning 和基础版的 policy gradients 等 都是回合更新制, Qlearning, Sarsa, 升级版的 policy gradients 等都是单步更新制. 因为单步更新更有效率, 所以现在大多方法都是基于单步更新。 比如有的强化学习问题并不属于回合问题。
4、在线学习 和 离线学习
On-Policy在线学习智能体本身必须与环境进行互动然后一边选取动作一边学习。
Off-Policy是指智能体可以亲自与环境进行交互进行学习,也可以通过别人的经验进行学习,也就是说经验是共享的,可以使自己的过往经验也可以是其他人的学习经验。
最典型的在线学习就是 Sarsa 了, 还有一种优化 Sarsa 的算法, 叫做 Sarsa lambda, 最典型的离线学习就是 Q learning, 后来人也根据离线学习的属性, 开发了更强大的算法, 比如让计算机学会玩电动的 Deep-Q-Network