本文对应该书第一章 需求分析的内容。本文对章节内容依次做总结,并记录心得体会,两种内容在下文会有清晰的界限。如果你对下文内容又任何的相关讨论、疑问, 可以仔细阅读书籍并发表评论。
《深度强化学习落地指南》这本书主要面向有一定DRL(Deep Reinforcement Learning, 深度强化学习)的理论知识,关心从理论到实践之间的gap的读者。
XX
概要:
该节首先是介绍了agent和environment概念,在强化学习问题中首先要认识什么是agent、什么是environment。并提到强化学习四要素:state(状态)、action(动作)、reward(原文中用词为 “回报”)、transition function(状态转移概率)。也提到MARL(Multi-Agent Reinforcement Learning)问题中最直接的两种方案:直接用单个智能体解决、用多个智能体解决。谦和有维度诅咒问题,而后者则存在Agent之间的贡献度分配、联合探索和多策略的环境不稳定的问题。
紧接着回顾了MDP(Markov Decision Process),并提到了除了基于MDP的完备强化学习外,还有CMAB(Contextual Multi-Armed Bandits,状态转移完全随机)、MAB(Multi-Armed Bandits,不仅状态随机,状态都只有一个)的广义强化学习。并且举例图像分类任务都可以被看作是具有静态脉冲回报函数的CMAB问题。作者也强调CMAB、MAB都有各自针对性的解决方案,该书主要关注完备强化学习。还提到MDP问题核心特征除了连续多部决策外,还有一点是action会以特定的规律反过来影响state。
思考:
1.关于强化学习四要素。
在Sutton的《强化学习》第二版中,提到过强化学习系统的四要素:policy、reward、value、model。 主要是从一个强化学习的系统的角度去看。《强化学习》这本书从迭代角度去开始入门强化学习,会有初始策略-与环境交互-获得奖励-评估值-更新策略,类似这样的迭代。
Beyond the agent and the environment, one can identify four main subelements of a reinforcement learning system:
a policy, a reward signal, a value function, and, optionally, a model of the environment.
(1)policy指的是智能体在给定时间点的行为方式。policy定义了当前state与该state下可选action之间的映射。
(2)reward signal定义了强化学习的目标。
(3)reward定义了当前的动作选取的好坏,value function则定义了长期视角动作选取策略的好坏。
(4)model指的是对于环境的模拟。也就是构造一个模型来推断环境是如何变化的使用模型和规划来解决强化学习问题的方法被称为是基于模型的强化学习方法,与此相反的是较简单的无模型强化学习方法(通常是直接在环境试错学习的)。
作者这里所说四要素更多是从我们使用强化学习去建模一个问题的角度去看,我们需要对state、action、reward进行设计,而transition function是对环境的内状态转移的分析,我们很多时候并不需要也不能知道某个环境里具体的环境的转移函数,但对其进行是否能建模成强化学习问题、MDP是很有必要的。上文黑体部分“还有一点是action会以特定的规律反过来影响state”,我更多理解为transition function P ( s ′ ∣ s , a ) P(s'|s,a) P(s′∣s,a)中的a确定的情况下,概率分布式确定的(就是环境是稳定的(stationary))。不论我们是用强化学习做科研、做工程,只要是需要实践的地方,对state、action、reward做设计是不可或缺的。
2.对“回报”和“奖励”用词的解释。
该书这个章节使用回报、回报函数、折扣累计回报等来表示reward、reward function、return。(我指的是《强化学习》第二版中的表示,笔者入门看的那本书的前面几章,所以在此列一下概念对应关系。)也就是说“回报”这里对应的就是一般说的“奖励”。
概要:
本节从任务的解空间复杂程度的角度来讨论DRL是否值使用。从方法层面进行了讨论,依次为rule-based、启发式到传统强化学习再到深度强化学习。
实际解空间特别小、动作状态之间存在某种可以被数学建模的特殊映射关系,并且能使任务达到理想性能。那么这种情况就可以充分挖掘任务逻辑和先验知识使用启发式方法。
在解空间可穷举、规模适中前提下丛台区回消息方法性能未必逊色于DRL。
解空间庞大难以得到启发式方案、解空间在表格上存在存储计算瓶颈、有图像时序等高维状态信息。
思考:
1.关于传统强化学习。
作者强调了规模可控的条件下,神经网络不一定就比表格有优势(强调的是Q-learning、sarsa这两个表格的传统强化学习)。正如作者所说:“同样的任务用Q-L可以成功解决,但换成DQN后却难以收敛的情况时有发生”。比如对于很简单的maze问题,一个4*4的小迷宫,dqn甚至不能收敛。每个方法都有其适用的条件,并不存在一个能解决所有问题的方法,“勿做DRL铁锤人”。
2.不得不用DRL的理由。
作者总结了三点,分别从启发式所不能应对(问题难,找不到有效规则)、传统强化学习局限性(表格形式瓶颈)、深度学习的优势(表征能力强)三个角度总结。可以理解为是问题需要足够难,这个难点可以体现在:问题解空间大且不好找解(如超越人脑极限);传统强化学习的表格已经难以表示。
概要:
作者能不能使用DRL在于目标任务是否满足场景固定和数据廉价两个关键要求;前者关系到训练后的策略能否顺利迁移部署到环境并维持高性能,后者决定是否有足够的数据使DRL算法收敛。
对于场景固定,作者提出进一步解释:需要满足状态分布一致、状态转移概率分布一致。(摘抄作者的一段话,体会一下:
“如果说有监督学习的训练过程是针对某个目标函数,关于输入数据的单分布定制优化,DRL则是关于输入状态和状态转移概率的双分布定制优化。算法从前者习得定制化的特征提取能力,并根据后者学会基于上述特征的定制化决策或估值能力,所谓DRL算法的内插泛化能力就是针对这两个分布而言的。”
)
对于状态分布一致,以围棋为例子,如果是以棋盘图像为状态输入,那么不同风格的棋盘就会导致只在某特定棋盘下的DRL失效,所以可以进行抽象化预处理(就是屏蔽掉那些棋盘图像的特征,直接用数字矩阵表示棋子。)。同时说明抽象化预处理只能处理一部分一致性问题,比如对于 迷宫 问题,如果旨在一张地图上训练,那这个agent就只学会了这张图。可以用随机生成的地图增强其泛化性。
状态转移概率分布一致,指环境模型本身的分布应该固定。并提到实际应用中,最大的挑战来自与simulator与reality之间的gap。
数据廉价,因为DRL的low sample efficiency问题,高速度、高质量的训练环境是DRL实用化的关键。
思考:
1.关于分布一致的理解。
作者提出状态分布和状态转移概率分布的一致性。本质上是环境本身的属性,一个问题的分布一致不一致,主要是看agent所处的环境的初始状态分布、状态转移概率分布是否会改变(事实上作者本身也表达了这个意思,在状态分布一直的第一段中)。
概要:
作者认为实践中应该把任务的核心模块给DRL去做,而非大包大揽的用end2end形式的DRL来做。从而可以充分利用先验知识、压缩问题解空间。并且可以在实践中把DRL难处理、处理不好的环节尝试将其开发为子功能模块,找到一种协同混合方案。
思考:
1.关于如何确定边界。
基于作者的描述,DRL使用边界的确定根本上需要具体问题进行实践摸索。如基于传统方案做增量式训练、将其他方案作为DRL的动作空间的一部分。