强化学习中有多种不同的方法,比如说比较知名的控制方法 Q learning,Policy Gradients,还有基于对环境的理解的 model-based RL 等等。了解强化学习中常用到的几种方法,以及他们的区别, 对我们根据特定问题选择方法时很有帮助。接下来我们通过分类的方式来了解他们的区别。
第一种分类方法可分为不理解环境(Model-Free RL)和理解环境(Model-Based RL),其区别如下:
Model-Free RL | Model-Based RL | |
描述 | 从环境中得到反馈然后学习 只能按部就班, 一步一步等待真实世界的反馈, 再根据反馈采取下一步行动. | 可建立虚拟模型,事先理解环境,进行伪现实世界建模 可通过想象来预判断接下来将要发生的所有情况. 然后选择这些想象情况中最好的那种 |
主要方法 | Q learning,Sarsa,Policy Gradients | Q learning,Sarsa,Policy Gradients |
第二种分类方法可分为基于概率(Policy-Based RL)和 基于价值(Value-Based RL),其区别如下:
Policy-Based RL | Value-Based RL | |
描述 | 最直接, 可通过感官分析所处的环境, 直接输出下一步要采取的各种动作的概率, 然后根据概率采取行动, 所以每种动作都有可能被选中, 只是可能性不同 可利用概率分布在连续动作中选取特定动作 | 输出所有动作的价值, 根据最高价值来选择动作 对于选取连续的动作无能为力 |
主要方法 | Policy Gradients,... | Q learning,Sarsa,... |
我们还能结合这两类方法的优势之处, 创造更牛逼的一种方法, 叫做 Actor-Critic , actor 会基于概率做出动作, 而 critic 会对做出的动作给出动作的价值, 这样就在原有的 policy gradients 上加速了学习过程.
第三种分类方法可分为回合更新(Monte-Carlo update)和单步更新(Temporal-Difference update),其区别如下:
Monte-Carlo update | Temporal-Difference update | |
描述 | 例如玩游戏时,从开始到结束一整个回合更新一次 | 相当于在游戏过程中每一步都进行更新 |
主要方法 | 基础版Policy Gradients,Monte-Carlo learning | Q learning,Sarsa,升级版Policy Gradients |
因为单步更新更有效率, 所以现在大多方法都是基于单步更新.
第四种分类方法可分为在线学习(On-Policy)和离线学习(Off-Policy),其区别如下:
On-Policy | Off-Policy | |
描述 | 必须本人在场,且本人边玩边学习 | 可以选择自己玩或者看着别人玩,后者学习别人的行为准则 不必要边玩边学习, 可以存储下记忆, 再通过离线学习来学习之前的记忆. |
主要方法 | Sarsa,Sarsa(入) | Q learning,Deep-Q-Network |