LIU C Y, MU C X, SUN C Y. An overview on algorithms and applications of deep reinforcement learning[J]. CHINESE JOURNAL OF INTELLIGENT SCIENCE AND TECHNOLOGY, 2020, 2(4): 314-326.
复杂游戏环境的状态和动作空间显著增大,更多地考虑 3D 环境的情况,并且涉及单智能体的多任务学习,或者多智能体之间的交互。Kempka M等人提出将 ViZDoom 作为 DRL 的测试平台。ViZDoom采用第一视角的3D游戏环境,且游戏环境可以自由设计,以测试算法在不同任务上的性能。Lample G等人提出了一种改进的DQN算法并将其应用于ViZDoom,该算法主要解决游戏中的两个任务,一个是在地图中导航搜寻敌人或者弹药,另一个是在发现敌人时采取射击行动,并且对每个任务分别采用一个网络,两个网络交替训练能够取得很好的效果。Dosovitskiy A等人将一种有监督学习的方法应用于ViZDoom,使用高维感知流和低维测量流分别处理高维的原始图像以及与智能体当前状态有关的信息,并且训练好的模型可以被用于动态的指定目标。Pathak D等人引入好奇心机制来解决 ViZDoom 游戏环境中奖励的稀疏性问题,将当前状态特征和动作输入前向模型中,对下一时刻的状态特征进行预测,并将预测误差作为内部奖励,鼓励智能体探索新奇的环境状态,同时还使用逆模型来提取只与当前动作有关的环境特征。针对 ViZDoom 游戏的复杂性,Wu Y 等人提出了一种主从式课程 DRL 的方法,该方法引入了主从智能体的概念,其中一个主智能体被用来处理目标任务,多个从智能体被用来处理子任务,并且主从智能体可以使用不同的动作空间,同时引入课程学习,大大提高了算法的训练速度,显著地提高了智能体在游戏中的表现性能。 Vinyals O 等人提出了一种基于实时策略(real-time strategy,RTS)的 DRL 游戏环境StarCraftII。游戏环境中存在多智能体模式,由多个智能体通过协作或者竞争来取得游戏的胜利。在游戏环境中智能体接收有限的观测范围,通过高维、多变的动作空间选取动作,并且智能体还需要处理长期的信度分配问题以及探索困境。为了方便对DRL算法的研究,将StarCraftII简化为7个微型游戏,每个微型游戏分别代表不同的子任务。针对这个游戏环境,Zambaldi V等人提出了一种关系型DRL(relational DRL)算法,该算法将关系型学习引入 DRL 中,将环境编码成二维输入,其中每个区域代表一个“实体”,并采用自我注意力机制来计算各个“实体”之间的关系。实验表明,提出的算法在6个StarCraftII的微型游戏中取得了较好的结果,并且在4个微型游戏中超越了人类大师水平的玩家。Rashid T等人采用一种MADRL算法来处理StarCraftII,提出QMIX算法将每个智能体的Q函数进行单调非线性的结合,形成一个联合Q函数,并使用联合Q函数进行学习。这种集中式训练、分布式执行的方式在StarCraftII上有很好的表现。 腾讯的AI Lab利用DRL研究了多人在线战术竞技(multi-player online battle arena,MOBA)游戏的1v1模式,该游戏具有很复杂的环境,并且需要很多的控制量。以MOBA中的王者荣耀(Honor of Kings)为例,它具有比围棋更大的状态和动作空间,给策略搜索带来了巨大的挑战。Ye D等人提出了一种包含人工智能服务器、调度模块、记忆池以及强化学习学习者的 DRL 架构来处理该游戏环境,其中人工智能服务器负责与环境进行交互来产生经验数据;调度模块负责将人工智能服务器产生的经验数据进行压缩、打包,送到记忆池中;记忆池用于存储数据,并支持各种长度的样本数据,以及基于生成时间的数据采样;强化学习学习者采用分布式训练,并行地从记忆池中采样数据得到梯度,在同步梯度取均值后,对策略参数进行更新,并且将更新的策略参数传到人工智能服务器中。经过训练后,提出的算法在2 100场Honor of Kings的1v1竞赛中的获胜率为99.81%。
4.2 DRL在导航中的应用
导航是 DRL 的另一个重要应用,它的目标是使智能体找到一条从起点到目标点的最优路径,同时,在导航中还需要完成各种任务,如避障、搜集物品以及导航到多个目标等。近年来,利用 DRL在迷宫导航、室内导航、街景导航的研究取得了一系列的成果。 对迷宫导航的研究首先根据应用场景设计迷宫环境,然后根据导航环境中要解决的问题采用相应的DRL算法。Oh J等人针对多变的3D导航环境 Minecraft,提出了一种基于记忆的DRL架构。智能体提前对导航环境信息进行记忆,然后根据记忆的信息到达指定的目标点并获得奖励。Jaderberg M等人提出采用无监督的辅助任务来增强 A3C 算法在迷宫导航中的性能。该辅助任务一方面将输入的迷宫图像分为多个不重叠的小区域,根据区域像素的变化生成伪奖励,鼓励智能体探索未知环境;另一方面使用先前的经验数据对下一时刻状态的即时奖励进行预测,解决环境奖励的稀疏性问题。经过辅助任务的加速训练,提出的算法在收敛速度、鲁棒性、成功率上都取得了较大的提升。Mirowski P等人提出了一种基于A3C的DRL算法,使用其在复杂的迷宫环境中进行导航,迷宫环境如图6(a)所示。除了A3C算法的训练任务外,该算法还加入了两个辅助任务。第一个辅助任务是重建一个低维的深度图进行避障及短期路径规划,第二个辅助任务是直接从同步定位与建模(simultaneous localization and mapping,SLAM)中调用循环闭包来防止环路的形成。经过算法的训练,智能体能够在目标不断变化的 3D 迷宫环境中达到人类水平。Wang Y等人提出了一种模块化的 DRL 算法来处理复杂的动态迷宫环境,并将导航任务分为避障模块和导航模块。避障模块采用时间和空间两个网络来处理动态障碍物信息。导航模块分为离线部分和在线部分,离线部分要进行预训练,用于快速地在无障碍的迷宫环境中找到终点,在线部分实时地在迷宫中探索、寻找路径。最后将两个模块采取的动作发送到动作调度器中选取智能体的动作。Shi H 等人提出了一种端对端的DRL导航策略,用于迷宫导航。该导航策略采用好奇心机制解决导航环境中奖励稀疏的问题,同时将低维、稀疏的传感器用于智能体的观测输入,确保训练好的智能体可以直接应用于现实的导航环境中。Savinov N等人将已经访问过的状态放入记忆模块中,并训练一个神经网络近似器来判断当前状态跟记忆中的状态的距离,并根据这个距离来判断这个状态是否为新奇的状态。经过该算法的训练,智能体能够在多种导航任务中取得好的表现,并且能够被用在无奖励的导航任务中。 图6 DRL导航环境 室内导航采用 DRL 算法在室内环境中找到指定的目标点,主要的研究包括多目标导航以及将在仿真环境中训练好的智能体直接用到现实环境中。Zhu Y 等人提出了一种多目标室内导航的 DRL算法,为了保证训练好的智能体能够被直接应用到新的导航目标,将导航的目标点和智能体的观测合并,作为输入,得到策略及值函数,采用A3C算法进行训练。同时,将算法应用于图6(b)所示的3D 室内导航环境中,训练后的智能体经过参数微调可以被直接应用到现实环境中。Tai L 等人采用DRL算法训练智能体在迷宫中避开各种障碍物,将原始的 RGB 图像作为输入,使用深度学习在导航环境中进行预训练,并把预训练的权重复制到DRL 的卷积层上,然后端对端地对智能体进行训练。此后 Tai L 等人又提出了一种连续控制的DRL导航方法,将虚拟导航环境中训练好的智能体直接应用到现实环境中。为了减少虚拟环境和现实环境的偏差,其采用低维的激光传感器作为视觉输入,并且输出智能体的线速度和角速度,以达到连续控制的效果。Wu Y等人提出了两个设计来提升 DRL 方法室内多目标导航的表现性能:一是将逆动态模型(inverse dynamics model,InvDM)引入AC结构中,该InvDM被训练为一个辅助任务,用于预测给定了当前状态和最后一个状态的情况下智能体所采取的最后一个动作;二是提出了一种多目标共同学习的方法,智能体导航到一个目标的路径中可能包含其他的目标,因此这条路径可以为导航到其他目标点提供帮助。Zhang W等人提出了一种适用于不同大小智能体的 DRL 算法,先利用 SAC 算法在虚拟导航环境中进行训练,然后将训练好的智能体直接应用到现实的导航环境中,进一步采用元学习方法将现实环境中训练好的导航技巧扩展到其他不同大小的智能体上。
街景导航的研究涉及长距离导航,主要通过DRL 算法来解决城市之间的路径规划问题。Mirowski P等人提出了一种无地图城市之间导航的 DRL 算法,主要使用谷歌街景地图的内容构建了一个覆盖全球的交互导航环境StreetLearn,并提出了一种模块化、以目标为导向的 DRL 算法来处理这个导航场景。Li A等人提出了利用鸟瞰以及地面两种视图来完成导航任务的 DRL 方法,先使用街景环境的地面和鸟瞰视图对智能体进行训练,通过新的导航环境的鸟瞰视图对智能体的训练结果进行调整,然后将调整的结果迁移到新的地面视图街景导航环境中。Hermann K M 等人在StreetLearn的基础上,加入了谷歌地图中的驾驶说明,用于指导从起点到终点的路径,使智能体像人类一样按照指示在城市之间导航,构建了一种新的街景导航环境StreetNav。针对DRL算法在现实导航任务中采样效率不足的问题,Chancán M等人提出了一种交互式街景导航架构CityLearn,采用视觉位置识别和深度学习模型对传感器的输入图像进行编码,将目标位置生成状态作为智能体的输入状态,再使用PPO算法对智能体进行训练,得到导航策略,训练好的智能体在极度变化的视觉环境中(如从白天到黑夜)也能应用。
4.3 DRL在多智能体协作中的应用
近年来,DRL在多智能体协作方面也得到了广泛的应用。采用 DRL 解决多智能体协作问题涉及智能体之间的交互,需要考虑状态-动作维数过大、环境非静态、部分可观测等问题,因此相对于单智能体来说,对多智能体的研究更具有挑战性。多智能体协作是指多个智能体通过相互合作达到共同的目标,从而得到联合的奖励值。DRL在多智能体协作方面的研究主要包括独立学习者协作、集中式评价器协作以及通信协作等。 独立学习者是指智能体在更新自身的策略时,把其他智能体作为环境的一部分,每个智能体采用独立更新的方式,不考虑其他智能体的状态和动作。若采用这种更新方式,每个智能体在训练时比较简单,方便智能体进行数量上的扩展。但其他智能体的策略在不断更新,因此智能体所处的环境是不断变化的,这导致智能体不满足 MDP 条件,即MADRL面临环境非静态问题。Omidshafiei S等人提出使用滞回强化学习的方法来解决环境非静态问题,通过对不同的TD误差采用不同大小的学习率,减弱环境变化对Q值的影响,并采用一种并行经验回放的方式,保证多个智能体在使用经验回放时能够得到最优的联合动作。对于多智能体来说,当智能体的策略不断变化时,经验回放技术也不再适用,这给MADRL带来了很大的挑战。Palmer G等人提出了宽松DQN(lenient DQN)算法来解决环境非静态问题,以宽松条件来决定经验池中的采样数据,不满足条件的经验数据将被忽略。Jin Y等人提出了对其他智能体的动作进行估计的方法来解决环境非稳态问题,在评估Q函数时加入对其他智能体动作的估计,减弱环境非静态带来的影响。Liu X等人对邻近智能体的关系进行建模,提出了注意力关系型编码器来聚合任意数量邻近智能体的特征,并采用参数共享的方式来减少参数的更新量,使算法可扩展到大规模智能体的训练。 Lowe R 等人采用集中式训练、分布式执行的训练机制,提出了多智能体深度确定性策略梯度(multi-agent deep deterministic policy gradient, MADDPG)算法,结构如图7所示。该机制采用集中式评价器,假设智能体的评价器在训练时能够得到其他所有智能体的状态和动作信息,这样即使其他智能体的策略发生变化,环境也是稳定的。而执行器只能得到环境的局部信息来执行动作,训练结束后,算法只采用独立的执行器进行分布式执行。这种机制能够很好地解决环境非静态问题,利用了AC 结构的优势,方便智能体的训练和执行。Foerster J等人提出了COMA策略梯度算法,采用集中式训练、分散式执行的机制,使得每个智能体在协作过程中都能收到对应于自身行动的奖励值,同时提高所有智能体共同的奖励值。Sunehag P等人将所有智能体的联合Q网络分解为每个智能体单独的Q网络,提出VDN算法。Mao H等人提出了基于注意力机制的MADDPG算法,对其他智能体的策略进行自适应建模,以促进多智能体之间的协作,同时引入注意力机制来提升智能体建模的效率。Iqbal S等人在集中式评判器中采用自我注意力机制,使每个智能体都对其他智能体的观测和动作信息进行不同程度的关注,有效提升了算法的效率,并且可以扩展到大规模智能体的情况,同时引入了 SAC 算法来避免收敛到次优的策略,采用 COMA 算法思想解决多智能体信度分配的问题。
多智能体通信一方面可以促进智能体之间的协作,另一方面,训练时智能体能够得到其他智能体的信息,从而缓解环境非静态问题。Foerster J N等人使用通信来促进智能体之间的协作,并提出了RIAL和DIAL两种通信方法。RIAL的Q网络中不仅要输出环境动作,还要输出通信动作到其他智能体的Q网络中。DIAL利用集中式学习的优势,直接在两个智能体的 Q 网络之间建立一个可微信道,促进智能体之间的双向交流。Sukhbaatar S 等人提出了一种通信神经网络模型 CommNet,使得多智能体在协作的过程中能够连续通信。Jiang J等人提出了注意力通信模型ATOC,通过注意力单元来选取智能体的通信对象,采用双向长短期记忆(long short term memory,LSTM)单元来收集通信智能体的信息,进而选取动作。Kim D 等人考虑更实际的多智能体通信,即带宽有限以及智能体共享通信介质的情况,提出了SchedNet结构,采用基于权重调度的方法和调度向量来确定需要通信的智能体,解决通信资源有限以及智能体竞争通信的问题。Das A等人提出了一种目标通信结构TarMAC,采用自注意力机制来计算智能体与其他智能体的通信权重,并根据权重来整合其他智能体的通信信息。
4.4 DRL在推荐系统中的应用
现有的大多数方法把推荐过程考虑为一个静态过程,按照贪婪策略进行推荐,这些方法无法捕捉到用户的动态偏好;另外,传统方法主要考虑最大化短期贡献,忽略了推荐对象在长期回报中的贡献。DRL可以很好地应对这些挑战,首先,DRL可以使用推荐系统与用户实时交互的反馈对推荐策略进行调整,直到最后收敛到一个满足用户动态偏好的最优策略;其次,DRL的目标是最大化累积的长期奖励,因此利用 DRL 训练出的推荐系统可以在用户推荐中得到长期的回报。例如,Zhao X等人采用一种基于 AC 结构的 DRL 方法,执行器根据用户的偏好生成推荐页面,评价器对生成的推荐页面进行评估,并且执行器根据评估的结果对推荐策略进行改进。Zheng G 等人提出了一种DRL算法,用于新闻推荐,不仅考虑了新闻推荐中存在的适应性和长期性问题,而且在用户反馈中加入了用户的积极性,即用户多久会返回到推荐服务中,此外还提出了一种改进的探索方式来解决现有推荐方法中存在的推荐相似新闻倾向的问题。