1.2 强化学习初探
1.2.1 智能体和环境
强化学习方法通过与环境交互,学习状态到行为的映射关系。它包括智能体和环境两大对象。智能体也称为学习者或玩家,环境是指与智能体交互的外部。
图1-2解释了强化学习的基本原理。在一个离散时间序列t=0,1,2,…中,智能体需要完成某项任务。在每一个时间t,智能体都能从环境中接收一个状态st,并通过动作at与环境继续交互,环境会产生新的状态st+1,同时给出一个立即回报rt+1。如此循环下去,智能体与环境不断地交互,从而产生更多数据(状态和回报),并利用新的数据进一步改善自身的行为。
图1-2 强化学习原理
智能体不会被告知在当前状态下,应该采取哪一个动作,只能通过不断尝试每一个动作,依靠环境对动作的反馈,改善自己的行为,以适应环境。经过数次迭代之后,智能体最终能学到完成相应任务的最优动作(即最优策略)。
特别地,智能体和环境之间的边界通常与机器人结构或动物躯体的物理界限不同。通常情况下,智能体指的是存在于环境中,能够与环境进行交互,自主采取行动以完成任务的强化学习系统。系统之外的部分称为环境。例如,扫地机器人的电动机和机械结构,以及它的传感器硬件被认为是环境,基于强化学习的路径规划算法被认为是智能体。同样地,AlphaGo的智能体就是算法本身,当前棋局和回报是外部环境。进一步,如果我们将强化学习模型应用到人或动物身上,则思想和灵魂是智能体,肌肉、骨骼、各种感觉器官都被认为是环境的一部分。
另外一个区分智能体和环境的规则是:不能被智能体随意改变的东西都被认为是该智能体的外部环境。比如回报,作为行为和状态的函数,也许会在智能体的物理实体内部被计算,但是它定义了智能体面临的任务,智能体没有权限和能力去任意地改变它,因此回报就属于外部环境。智能体和环境之间的边界代表了智能体绝对控制的极限,而不是其学习和推理、进化的极限。
智能体和环境的边界基于不同的目的和场合有不同的划分方式。比如,一个复杂的机器人系统可能包含多个同时运行的智能体,每个智能体都有自己和环境的边界。对于一个执行高层决策的低层智能体来说,那个制定高层决策的智能体就构成了它的外部环境。在实际任务中,强化学习框架的状态、行为和回报一旦确定,智能体和环境的边界也就确定了。
1.2.2 智能体主要组成
如1.2.1节所述,智能体指的是能够与环境进行交互,自主采取行动以完成任务的强化学习系统。它主要由策略、值函数、模型三个组成部分中的一个或多个组成。
1.策略
策略是决定智能体行为的机制,是状态到行为的映射,用π(a|s)表示,它定义了智能体在各个状态下的各种可能的行为及概率。
π(a|s)=P(At=a|St=s)
策略分为两种,确定性策略和随机性策略。确定性策略会根据具体状态输出一个动作,如μ(s)=a。而随机性策略则会根据状态输出每个动作的概率(概率值大于等于0,小于等于1),输出值为一个概率分布。
一个策略完整定义了智能体的行为方式,也就定义了智能体在各个状态下的各种可能的行为方式及其概率大小。策略仅和当前的状态有关,与历史信息无关。同一个状态下,策略不会发生改变,发生变化的是依据策略可能产生的具体行为,因为具体的行为是有一定的概率的,策略就是用来描述各个不同状态下执行各个不同行为的概率。同时某一确定的策略是静态的,与时间无关,但是智能体可以随着时间更新策略。
2.值函数
值函数代表智能体在给定状态下的表现,或者给定状态下采取某个行为的好坏程度。这里的好坏用未来的期望回报表示,而回报和采取的策略相关,所有值函数的估计都是基于给定的策略进行的。
回报Gt为从t时刻开始往后所有的回报的有衰减的总和,也称“收益”或“奖励”。公式如下:
其中折扣因子γ(也称为衰减系数)体现了未来的回报在当前时刻的价值比例,在k+1时刻获得的回报R在t时刻体现出的价值是γkR。γ接近0,表明趋向于“近视”性评估;γ接近1,表明偏重考虑远期的利益。
状态值函数Vπ(s)表示从状态s开始,遵循当前策略π所获得的期望回报;或者说在执行当前策略π时,衡量智能体所处状态s时的价值大小。这个值可用来评价一个状态的好坏,指导智能体选择动作,使得其转移到具有较大值函数的状态上去。数学表示如下:
值函数还有另外一个类别,即状态行为值函数Qπ(s,a),简称行为值函数。该指标表示在执行策略π时,针对当前状态s执行某一具体行为a所获得的期望回报;也表示遵循策略π时,对当前状态s执行行为a的价值大小。公式描述如下:
3.模型
在强化学习任务中,模型M是智能体对环境的一个建模。即以智能体的视角来看待环境的运行机制,期望模型能够模拟环境与智能体的交互机制。给定一个状态和行为,该环境模型能够预测下一个状态和立即回报。
环境模型至少要解决两个问题:一是状态转换概率,预测下一个可能状态发生的概率;二是预测可能获得的立即回报。
表征环境的动态特性,用以预测在状态s上采取行为a后,下个状态s'的概率分布。表征在状态s上采取行为a后得到的回报。公式描述如下:
一般我们说的模型已知,指的就是获得了状态转移概率和回报。模型仅针对智能体而言,它是环境实际运行机制的近似。环境实际运行机制称为环境动力学(Dynamics of Environment),它能够确定智能体下一个状态和所得的立即回报。当然,模型并不是构建一个智能体所必需的组成,很多强化学习算法中智能体并不试图构建一个模型,如后面介绍的蒙特卡罗、时序差分等。
1.2.3 强化学习、监督学习、非监督学习
作为人工智能的重要分支,机器学习主要分为三大类:监督学习、非监督学习和强化学习,如图1-3所示。监督学习需人工给定标记,通过对具有标记的训练样本进行学习,以期正确地对训练集之外的样本标记进行预测。非监督学习无须给定标记,通过对没有标记的训练样本进行学习,以挖掘训练样本中潜在的结构信息。
图1-3 机器学习分类
与监督学习和非监督学习均不同,强化学习的训练样本(这里指的是智能体与环境交互产生的数据)没有任何标记,仅有一个延迟的回报信号。强化学习通过对训练数据进行学习,以期获得从状态到行动的映射。这是强化学习与其他机器学习方法的第一个区别。
从强化学习的基本原理可以看出强化学习与其他机器学习算法的第二个区别。在监督学习和非监督学习中,数据是静态的,不需要与环境进行交互,如分类聚类,只要将训练数据输入算法中进行训练即可。并且,对于数据有更多的前提假设,如混合高斯分布、泊松分布。然而,强化学习是一个序贯决策(Sequential Decision Making)的过程,需要在与环境不断交互的过程中动态学习,该方法所需要的数据也是通过与环境不断交互动态产生的,并且所产生的数据之间存在高度的相关关系。相比监督学习和非监督学习,强化学习涉及的对象更多、更复杂,如动作、环境、状态转移概率和回报函数等。
目前,强化学习在策略选择的理论和算法方面已经取得了很大的进步,然而直接从高维感知输入(如图像、语音等)中提取特征,学习最优策略,对强化学习来说依然是一个挑战。人工特征选取存在的主观性和局限性,以及低效率、高成本等问题,严重影响了学习效果。近期深度学习的发展使得直接从原始数据中提取高水平特征变成可能,如图像识别和语音识别。那么可否借助深度学习对高维输入的感知,使得强化学习直接从图像或视频中学习最优策略成为可能呢?这就是深度强化学习方法。深度强化同时结合了深度学习的感知和强化学习的决策,试图通过感知进行智能决策,帮助人类实现人工智能的终极目标。
1.2.4 强化学习分类
在机器学习的所有方法中,强化学习最接近人类及其他动物在自然中学习的方法,许多强化学习的核心算法最初均是受生物学习系统的启发,通过研究动物的心理学模型(从经验中学习)和大脑回报系统(采取行为获取最大回报)而发展起来的。
根据智能体在解决强化学习问题时是否建立环境动力学的模型,将其分为两大类,即有模型方法和无模型方法,如图1-4所示。
图1-4 强化学习分类
假定智能体与环境交互过程中,环境的反馈机制已知,或者假定智能体已经对环境进行了建模,能在智能体内部模拟出与环境相同或近似的状况。即:知道环境在任一状态s,接收任一行为a,转移到任一状态s'的概率,和在任一状态s,接收任一行为a得到的回报r。这种在已知模型的环境中学习及求解的方法叫作有模型方法,如动态规划法。
在实际的强化学习任务中,很难知道环境的反馈机制,如状态转移的概率、环境反馈的回报等。这时候只能使用不依赖环境模型的方法,这种方法叫作无模型方法,如蒙特卡罗、时序差分法都属于此类方法。
在介绍第二种分类之前,先回顾两个基本概念:状态值函数Vπ(s)和状态行为值函数Qπ(s,a)。
状态值函数Vπ(s)和状态行为值函数Qπ(s,a)都与回报有关。Vπ(s)是指在当前状态下,遵循策略π,能够获得的期望回报。Qπ(s,a)表示在当前状态下,遵循策略π,采取行为a,能够获得的期望回报。两者都可称为值函数。
可以通过建立状态值估计来解决强化学习问题,也可以通过直接建立策略的估计来解决强化学习问题。根据不同的估计方法,可以把强化学习方法分为如下三类(见图1-4)。
· 基于值函数(Value Based)的方法:求解时仅估计状态值函数,不去估计策略函数,最优策略在对值函数进行迭代求解时间接得到。接下来介绍的动态规划方法、蒙特卡罗方法、时序差分方法、值函数逼近法都属于基于值函数的方法。
· 基于策略(Policy Based)的方法:最优行为或策略直接通过求解策略函数产生,不去求解各状态值的估计函数。所有的策略函数逼近方法都属于基于策略的方法,包括蒙特卡罗策略梯度、时序差分策略梯度等。
· 行动者-评论家方法(Actor-Critic,AC):求解方法中既有值函数估计又有策略函数估计。两者相互结合解决问题,如典型的行动者-评论家方法、优势行动者-评论家方法(Advantage Actor-Critic,A2C)、异步优势行动者-评论家方法(Asynchronous Advantage Actor-Critic,A3C)等。
1.2.5 研究方法
强化学习自从第一次被提出来到现在也有六十多年的发展时间了,理论日益完善,已初步应用于机器人、自动控制、游戏等各种领域。在实际场景中,任何一个需要决策的问题理论上都可以使用强化学习方法来解决。求解强化学习问题的目标是求解每个状态下的最优策略。策略是指在每一时刻,某个状态下智能体采取所有行为的概率分布,策略的目标是在长期运行过程中接收的累积回报最大。为了获取更高的回报,智能体在进行决策时不仅要考虑立即回报,也要考虑后续状态的回报。所以解决强化学习问题一般需要两步,将实际场景抽象成一个数学模型,然后去求解这个数学模型,找到使得累积回报最大的解。
第一步:构建强化学习的数学模型——马尔可夫决策(Markov Decision Process,MDP)模型。
分析智能体与环境交互的边界、目标;结合状态空间、行为空间、目标回报进行建模,生成覆盖以上三种元素的数学模型——马尔可夫决策模型。马尔可夫决策模型在目标导向的交互学习领域是一个比较抽象的概念。不论涉及的智能体物理结构、环境组成、智能体和环境交互的细节多么复杂,这类交互学习问题都可以简化为智能体与环境之间来回传递的三个信号:智能体的行为、环境的状态、环境反馈的回报。马尔可夫决策模型可以有效地表示和简化实际的强化学习问题,这样解决强化学习问题就转化为求解马尔可夫决策模型的最优解了。
第二步:求解马尔可夫决策模型的最优解。
求解马尔可夫决策问题,是指求解每个状态下的行为(或行为分布),使得累积回报最大。可根据不同的应用场景选用不同的强化学习方法。例如,对于环境已知的情况可选用基于模型的方法,如动态规划法;对于环境未知的情况可选用无模型方法,如蒙特卡罗法、时序差分法;也可以选用无模型和有模型相结合的方法,如Dyna法。同时可以根据问题的复杂程度进行选择,对于简单的问题,或者离散状态空间、行为空间的问题,可以采用基础求解法,如动态规划(Dynamic Programming,DP)法、蒙特卡罗法(Monte Carlo,MC)、时序差分法(Temporal Difference,TD)。对于复杂问题,如状态空间、行为空间连续的场景,可以采用联合求解法,如多步时序差分法、值函数逼近法、随机策略梯度法、确定性策略梯度法、行动者-评论家方法、联合学习与规划的求解法等。这些方法会在后续章节里一一介绍,此处不再赘述。
1.2.6 发展历程
强化学习的概念是在1954年首次由Minsky提出的,他描述了一种随机神经模拟强化计算器(Stochastic Neural-analog Reinforcement Calculator),这是强化学习的雏形。1957年,Bellman提出了Bellman方程,采用动态规划方法求解马尔可夫决策模型的最优控制问题,强化学习的方法和思想均起源于动态规划方法。Howard在1960年提出了求解马尔可夫决策过程的策略迭代方法。1961年,Minsky进一步提出了信度分配(Credit Assignment Problem)等强化学习的相关问题。1965年,Waltz和傅京逊在控制理论中也提出了“强化”和“强化学习”的概念,描述了通过奖惩方式学习的基本思想。时序差分学习最早由A. Samuel在他著名的跳棋任务中提出。1988年,Sutton首次提出了多步时序差分TD(λ)算法。1989年,Watkins提出了Q-learning方法,极大地完善了强化学习的应用和算法。至今为止,Q-learning仍然是应用非常广泛的强化学习方法。1992年,Tesauro基于TD(λ)研制的TD-Gammon程序在双陆棋上达到人类世界冠军水平,使时序差分(TD)学习备受关注。1994年,Rummery等提出了Sarsa学习算法。1999年,Thrun提出了部分可观测马尔可夫决策过程中的蒙特卡罗方法。2006年,Kocsis等提出了置信上限树算法。2009年,Lewis等提出了反馈控制自适应动态规划算法。2014年,Silver等提出确定性策略梯度算法。至此,强化学习的基础理论知识基本完善。
因强化学习无法直接对高维原始数据进行学习,所以有人提出将神经网络用于强化学习领域,于是就有了深度强化学习。早期关于深度强化学习研究的主要思路是将神经网络用于复杂高维数据的降维,将高维数据转化到低维特征空间便于强化学习处理。2003年,Shibata等将浅层神经网络和强化学习结合处理视觉信号输入,控制机器人完成推箱子等任务。2005年,Riedmiller采用多层感知机作为值函数的逼近器,将神经网络和强化学习结合起来。2010年,Lange大胆地采用高维的图片作为系统输入,通过深度自编码网络对图片进行降维处理,打破了之前强化学习只能解决低维状态空间的限制,使强化学习直接从图像中学习成为可能。2011年,Abtahi利用深度神经网络逼近行为值函数,并且证明预训练后的深度神经网络有利于深度强化学习的收敛。2013年,DeepMind团队采用深度强化学习操控Atari游戏,实现了从游戏图像到游戏操作端对端的学习过程,最后智能体完全依靠自学习掌握了49种Atari视频游戏,其中43种游戏玩得比之前的程序都要好,并在23种游戏中击败了人类的职业玩家。2014年,密歇根大学研究团队提出DQN与MCTS结合的强化学习算法,深度强化学习进一步发展。2015年,DeepMind团队又接连提出了Double DQN和Dueling DQN算法;Lillicrap提出了DDPG算法,采用深度强化学习方法解决连续状态空间和连续动作空间场景的问题;Schulman提出了置信区间优化算法,采用深度神经网络,拟合强化学习的策略函数,并理论推导了如何选择更新步长,使学习能够更快达到收敛。2016年,DeepMind团队开发了Alphago,通过历史棋谱和自我对弈,自主学习围棋,最终以4∶1的成绩战胜围棋冠军李世石。2017年,AlphaGo Zero无师自通,仅通过自我博弈学习,以100∶0的不败战绩绝杀“前辈”AlphaGo;同年年末,AlphaZero从零开始,在多种不同的任务中通过自我对弈超越人类水平。