Reinforcement Learning发展至今日已无法进行非常明确而清晰的分类,很多新方法也是博采众长。不过,为了更好的了解强化学习算法主要学习什么以及怎么学习,本文尝试从不同角度对主要的RL算法进行大致分类。

Model-Based vs Model-Free

Model-Based通常被翻译成基于模型,Model-Free通常被翻译成无模型。这里的Model并不是用机器学习的方法训练出来的模型,而是在强化学习环境中各个状态之间转换的概率分布描述,如下表所示,

Sunny Cloudy Rainy
Sunny 0.3 0.5 0.2
Cloudy 0.4 0.1 0.5
Rainy 0.6 0.1 0.3

左侧的纵坐标表示第一天的天气状况,上方的横坐标表示第二天的天气状况。根据这个表格,在第一天是Cloudy的情况下,第二天也是Cloudy的概率是0.1。只要有这样一个天气转移概率表,就必然能够在初始状态确定的情况下找出一条满足特定要求的路径。只要模型是确定的,转移概率就是确定的。只要转移概率是确定的,我们就能知道对应于$S \rightarrow S’$的转移概率[$S$是当前状态,$S’$是下一状态],以及在状态$S$下做什么样的动作$A$会有最高的回报值。

如果在一个RL算法是基于这样一个状态转换的概率分布模型,该算法就是Model-Based。其实Model-Based和以前的规划问题[Planning Problem]的解法异曲同工,因为拥有这样的概率分布相当于开启了上帝视角,不需要建立一个含有待定系数的模型、通过正向传播让它产生误差、最终通过最优化的手段把极小值解出来的过程。

如果在一个RL算法无法获得并且也不是基于这样的状态转换的概率分布模型,该算法就是Model-Free。这种情况下,Environment的状态转移的方式和概率并不明确,甚至下一步状态是什么都不知道,只有在Agent和Environment真正开始交互之后才能了解。所以Model-Free的方法更贴近正常状态,即无法开启上帝视角,只能通过一般人角度解决问题,所以Model-Free的方法普适性更强也更为复杂,其实现方式为通过Agent和Environment不断进行交互并获得反馈,而不是通过已知的概率转移模型来获得反馈。

目前大部分主要的RL算法都是Model-Free,包括但不限于Monte Carlo,Q-learning,SARSA,DQN,PPO,TRPO,A3C。

On-Policy vs Off-Policy

On-Policy的强化学习的范畴内是指,在训练中用来计算估值并训练的策略和它所采用的所有Transition的策略是同一套策略。Off-Policy与On-Policy相反,在训练中用来计算估值并训练的策略和它所采用的所有Transition的策略都不相同。打个不是特别恰当的比方,On-Policy是一个棋艺不高的人,一边自己和自己下棋,一边总结得失。Off-Policy也是一个棋艺不高的人,但是他下棋喜欢看各种棋谱或者和其他比他厉害的棋手对弈。说不是很恰当是因为这个例子里Off-Policy是强于On-Policy的,但其实两者在不同的场景中有不同的优点和缺点、彼此之间不能完全互相取代。

SARSA算法是典型的On-Policy算法。它使用同一套策略在环境中做动作,并把Transition信息收集起来,每走一步,都要更新$Q(s, a)$的估值。这个逻辑是非常单纯的,但缺点也很明显,这样一根筋的逻辑,使得Transition的前后相关性非常强[因为这个Transition是根据相同的策略得出的],也就是说,一个由中途的某个Step产生的不太好的选择,会对未来若干步都产生比较深远的影响

Q-Learning算法是典型的Off-Policy算法,因为它每次都选择估值最大的动作进行更新,而不在乎策略是什么[即然有其他人可以做得更好,那就按他这个套路来]。因此,影响它的主要是每个状态的估值。按理说,Off-Policy的数据来源是使用不同的策略试探得到的Transition,所以比较丰富

Policy-Based vs Value-Based

Policy-Based的方法直接输出下一步动作的概率,根据概率来选取动作[这个概率的计算也是要结合reward和动作价值]。但不一定概率最高就会选择该动作,还是会从整体进行考虑。适用于非连续和连续的动作。常见的方法有Policy Gradients。

Value-Based的方法输出的是直接动作的价值,选择价值最高的动作,具体价值的计算方式也有两种,大多数情况下还是根据动作导致的状态的估值反向推出该动作的价值。适用于非连续的动作。常见的方法有Q-learning和SARSA。

Episode-Based vs Step-Based

Episode-Based即回合更新方法,是指在整个学习过程全部结束后进行更新[这里的更新就是训练强化学习模型,更新其参数],常见的方法有Monte-Carlo和基础版的Policy Gradients。

Step-Based即单步更新方法,是指学习过程中的每个Episode中的每一步之后都会进行更新,不用等到整个回合结束后再进行更新。相比而言,单步更新的方法更有效率。常见的方法有Q-Learning、SARSA和升级版的Policy Gradients。

Reference:

  1. 白话强化学习和PyTorch