作者对这本书的推荐序:https://zhuanlan.zhihu.com/p/403191691
须知任何机器学习方法都有各自的优势和适用范围,DRL算法也同样有其鲜明的优势和局限性,因此务必要做到具体问题具体分析。不是所有需求都适合用DRL解决,适合用DRL解决的需求在性能上也未必超越传统方法。因此在面对一个新需求的适合,要依次回答“是不是”、“值不值”、“能不能”、“边界在哪里”四个问题。
首先我们要明确需求任务中的Agent和环境。对于大多数任务而言,通常只存在一个决策和行为的主体,此时就是典型的单智能体强化学习问题。然而当任务中同时存在多个行为主体时,情况会变得复杂,即使这些行为主体之间完全同质和相互合作的关系,也至少存在两种Agent定义方案。第一种方案是将所有行为主体看作一个整体,从而构成单智能体强化学习问题;第二种方案是将每个行为主体都作为独立的Agent,从而构成多智能体强化学习(Multi-Agent Reinforcement Learning, MARL)问题。
第一种方案可以保证得到全局最优的联合策略,但状态空间维度和策略复杂度会随着行为主体数量的增加而迅速膨胀,导致算法难以扩展到大规模问题上;第二种方案通过每个Agent独立感知和决策避免了维度诅咒,但随之产生了多Agent间贡献度分配(见4.3.1)和联合探索难题,以及多策略协同优化所导致的环境不稳定性(Environment Nonstationarity),从而影响算法性能。
->
->
->
->
,这里简单用几个符号表示,就不具体展开了 )。以上过程被称为马尔科夫决策过程(Markov Decision Process,MDP)。若每步只能观测到部分状态信息,则称为部分可观测马尔科夫决策过程(Partially Observable Markov Decision Process,POMDP)。
强化学习的涵盖范围不止于此,当环境不存在特定状态转移概率分布
,或者说状态转移完全随机时,MDP问题就退化为上下文多臂老虎机(Contextual Multi-Armed bandits, CMAB)了;如果环境不存在状态的概念,或者说只有一个状态且没有状态转移,问题就退化为多臂老虎机。
在判断一个任务是否适合用DRL作为解决方案时,首先需要考虑两种可能性:能否使用规则或启发式搜索,以及是否应该使用传统强化学习算法,这两个问题的答案取决于任务解空间的大小和复杂度。任务解空间通常表示为
,即状态和动作的复合空间。
在解决实际问题时,应该追求条件允许范围内的最优定制化方案,即我们要想办法降低解空间的维度。这些方案可能抓住了底层的物理和数学本质,可能充分挖掘了任务逻辑和先验知识,可能充分发挥了计算机的算力,甚至可能主动设置高度可控的应用场景规避了很多棘手的问题。
在有一类任务中,一方面面由于维度较高导致很难通过观察发现有效规则,且启发式搜索所需的算力和存储能力显著增加,难以利用有限资源获得满意性能;另一方面,状态-动作组合的期望累计回报分布无显著规律并呈现多模态特征,即在相同状态下不同动作的期望累计回报较为接近。强化学习在这类任务中是可能具有优势的,并且在解空间可穷举、规模适中的前提下,诸如Q-learning和Sarsa等传统强化学习方法的性能未必逊于DRL算法。
在明确了使用DRL算法的必要性后,还需要仔细评估其可行性,即回答“能不能”的问题。在具体层面,这取决于目标任务是否满足场景固定和数据廉价这两个关键要求。前者关系到训练后的策略能否顺利迁移至部署环境并维持高性能,而后者则决定了是否有足够多的数据使DRL算法成功收敛。
如果说有监督学习的训练过程是针对某个目标函数,关于输入数据的单分布定制优化,DRL则是关于输入状态和状态转移概率的双分布定制优化。算法从前者习得定制化的特征提取能力,并根据后者学会基于上述特征的定制化决策或估值能力。
状态分布是由初始状态分布、策略和状态转移概率共同决定,其中最根本的影响因素还是来自环境的固有属性。关于状态分布的一致性,可以参考下图(a)的围棋游戏,若训练时直接采用左半边木质棋盘的原始图像作为输入,那么DRL算法中神经网络的特征提取功能将会在这种特殊状态分布下高度定制化。若后续把游戏切换为右上角的极简风格或右下角的“化石”风格,无论是棋盘底纹和棋子样式均发生了显著变化,则相当于状态信息进入了另外一种截然不同的分布,原来的网络将无法提取出有效的高层特征。
为了使同一套DRL算法适用于各种棋盘风格,一种有效手段是对原始信息进行抽象化预处理。如图(b)所示,整张棋盘被初始化为19×19大小的矩阵,空白位置、白子和黑子被分别表示为0,1和2。无论棋盘和棋子实际长什么样子,状态分布都始终保持一致。
所谓状态转移概率一致,就是要求Agent在任意状态
下采取动作
后,进入下一个状态
的概率分布
保持不变。状态转移概率分布一致要求的最大挑战通常来自使用模拟器(Simulator)训练时带来的Reality Gap。另外如果想要训练好的模型能顺利迁移至别的场景,需要在训练过程中制定更泛化的场景,使状态转移概率分布扩展至更大的范围。
由于强化学习缺乏高效的监督信号,再加上深度神经网络众所周知的特点,DRL算法天然需要大量数据进行训练,这也是DRL一直被学术界诟病的重要缺陷——低成本效率(Low Sample Efficiency)
在实际应用中,对于DRL算法在一个具体任务中的“职责范围”需要清晰界定。即使经过仔细评估后认为DRL可以带来较为显著的整体性能提升,也不代表任务内部每个子功能模块都应该交给DRL处理,任务中每个子功能模块也都可能有各自最适用的解决方案。
当然上述DRL和其他方法分别负责不同子功能模块的方案并不是协同式混合方案的唯一形式,在实践中还有其他融合方式:(1)可以在基于规则或传统控制算法的原有策略基础上训练增量式DRL策略,此时DRL算法学习的是如何修正原有策略的不足;还可以将其他方法作为DRL动作空间的一部分,此时DRL算法学习的是如何在恰当时机切换到这些方法使其发挥最大作用(见2.3.2节)。