- 深度强化学习算法与实践:基于PyTorch的实现
- 张校捷编著
- 3286字
- 2024-10-30 04:45:01
1.1.2 强化学习和人工智能的关系
在当前阶段的很多语境下,人们所说的“人工智能”往往和深度学习划等号。我们知道,和机器学习算法一样,深度学习算法也主要是数据驱动的。人们首先收集数据集,然后基于数据集构造模型,接着使用训练数据集对模型进行训练。依据训练数据集的类型,可以把模型的任务大致分成两类,即监督学习(Supervised Learning)和无监督学习(Unsupervised Learning)。在监督学习中,训练数据往往包含一系列的特征(Feature)和特征对应的标签(Label),通过深度学习模型可以学习特征到标签的映射。典型的例子如图像分类,有了一组图像和对应的标签,通过监督学习来得到一个模型预测输入图像的标签。而无监督学习的训练数据往往只有特征,模型训练的目的更多的是从特征中训练得到数据的内在关联,在这种类型的任务中,往往需要使用数据来构造一定的标签,从数据本身挖掘信息(注意,这里一开始并没有标签,所谓标签,只是给定数据后人为构造出来的,可以人为构造任何合理的标签进行预测)。典型的例子如Word2Vec模型,通过一系列的文档,利用单词之间的上下文关系,基于深度学习模型构造一个单词的预测任务,最终得到词向量。就整体的算法而言,深度强化学习和这两种任务既有联系,又有区别。深度强化学习和监督学习的联系在于,在深度强化学习的过程中,我们往往需要一个模型来拟合所谓的状态价值函数(给定一个状态,获取对应状态的价值),或者有时候需要一个模型来拟合状态-动作价值函数(给定一个状态和该状态下采取的动作,获取具体的状态-动作对应的价值),这两个函数可以通过监督学习的方法来学习到,因为算法会在强化学习的学习过程中获取奖励,从而计算出对应的状态价值或者状态-动作价值,而这个就相当于拿到了监督学习中的特征(状态或者状态动作)和标签(对应的价值),这意味着有了训练数据,可以根据训练数据训练出一个模型。但是强化学习和监督学习也有区别,因为训练一个模型来拟合函数并不是最终目的,而只是手段而已,强化学习的最终目的应该是让智能体尽可能获得最大的奖励,而且很多情况下所谓的训练数据并不是给定的(这个并不像普通的深度学习问题),而是随着智能体对环境的探索不断发生变化。同样,深度强化学习也有一些无监督学习的特征,这个特征主要集中在对环境的探索上。因为强化学习模型在大多数情形下无法确知环境的具体情况,只能通过和环境的交互来获取环境的相关信息,在这种情况下,可以认为环境的信息是隐含的,就强化学习使用的模型而言,一开始并没有数据和标签来进行学习,只能通过智能体对于环境的探索过程中来得到数据,并且用数据来构造标签来学习,这也和一部分无监督学习过程中用数据来构造标签(如Word2Vec算法)的做法类似。于是,我们看到的深度强化学习和深度学习的关系应该是有部分交集的,如图1.1所示。
图1.1 人工智能不同领域的关系
我们把话题回到强化学习上面。强化学习算法的发展和人工智能的历史是密不可分的。我们可以在强化学习的很多领域看到人工智能算法的影子。和其他的人工智能算法不同,强化学习的一大来源是对动物心理学的研究,这个研究可以追溯到20世纪80年代。在早期对动物进行训练的时候,人们发现动物的学习过程遵循着所谓“试错法”(Trial-and-Error)的模式。动物在实验中会尝试不同的行为,当某些行为能够让动物感受到快乐的时候,这些行为将会被动物重复(发生的概率上升);相反,一些行为让动物感受到厌恶,则这些行为将会被动物避免(发生的概率下降)。这个学习模式被称为效用定律(Law of Effect)。可以简单地把这个模式称为趋利避害,这个定律能够被用于解释很多动物的行为。而本书主题——强化学习的“强化”这个词也来源于效用定律。在这里,“强化”被解释为加强某种行为模式,使得该模式能够增加获取某些正面刺激(奖励)的概率,或者该模式能够增加避免某些负面刺激(惩罚)的概率。注意,这里的刺激需要能够对动物(如果是计算机算法,则对应本书后面介绍的智能体)的行为做出持久的影响,如果没有影响,或者影响消失很快,我们则不将刺激视为“强化”。从动物的强化学习行为中,人们总结归纳了这种学习模式的一些要点,并将其推广到了计算机算法中。对于这类算法,首先要有探索的能力,也就是遵循一定的模式来完成动作,而且能够跟环境完成多种多样的互动。其次是算法需要有一个学习目标,一般来说,算法会在和环境互动的时候得到不同程度的奖励,而算法会不断改变自己的行为模式,改变的目的是为了尽可能获得更高的奖励。从上面一系列的叙述中可以看到,强化学习本身基于的概念非常简单和直观,我们可以看到基本上可以认为是趋利避害,当然人们为了能够在计算机中实现这一系列算法发明了各种概念,包括策略、价值函数等,我们将会在本书中对这些概念做深入讲解。
强化学习的另一个理论来源是最优控制理论(Optimal Control Theory)。所谓最优控制理论,就是给定限制条件下,研究如何在这个限制条件下使得某些变量取得最优(最大或最小)值的一种理论。举例来说,在物流行业,人们常常会研究给定一定的运输能力(比如一定时间能够调动的车辆数目),如何使这些车辆的运输量最大(比如计算到达目的地的商品数量),这时就需要考虑运输路径的规划和车辆的调度,使得这些车辆的运载能力最大。最优控制理论一开始是在数学的最优化理论的研究中产生的,并在实践中得到了广泛应用,从航天器的飞行登陆和经济学里的资源分配都能看到最优控制理论的影子。可以看到,最优控制理论和强化学习有很多相似之处,强化学习需要采用一定的策略使得智能体获取的奖励最多,最优控制理论需要的是让某些变量取得最优值。事实上,大多数强化学习理论基于的是最优控制理论中的一个模型,也就是马尔可夫决策过程(Markov Decision Process, MDP)。在马尔可夫决策过程中,算法在某一时刻会根据环境的情况和自身所处的状态动态决定当前时刻应该采取的动作,从而让自身得到的奖励最大。马尔可夫决策过程的理论非常重要,我们会在后面详细介绍该过程,并且从这个过程中推导贝尔曼方程(Bellman Equation),这个方程是本书后面使用的绝大多数算法的基础。马尔可夫决策过程有很多求解方法,人们最初求解这类问题使用的是动态规划算法(Dynamic Programming)。和我们在各种算法理论书籍中接触到的动态规划算法类似,动态规划算法首先会存储不同状态的价值,然后对策略进行采样,模拟某一策略下智能体能够到达的状态,以及获取的奖励,最后利用贝尔曼方程来对该状态价值进行更新。在不断迭代的过程中会发现这些价值逐渐收敛到一个固定的值,这样就得到了价值函数,可以通过让智能体使用贪心的策略使得每一次行动总是指向价值最大的状态,达到我们希望智能体获得最大奖励的目的。可以看到,动态规划需要使用额外的空间来存储两次迭代的不同状态的价值,而且通过不断采样,对价值进行估计,最后收敛到确定的价值上。动态规划对于强化学习有重大的意义,通过引入动态规划,强化学习算法可以转化为对状态价值函数(或者状态-动作价值函数)进行迭代求解。可以说,动态规划算法是目前为止大部分强化学习算法的基础。但是如前所述,动态规划算法需要维护一个表来存储不同状态对应的价值,当智能体的状态趋向于无穷多,甚至趋向于连续状态的时候,动态规划所需要占用的存储空间就会大量增加。在实际中,我们当然无法存储这么多状态,在前面提到过,深度强化学习中引入了对应的神经网络来对这些状态价值函数进行拟合,可以有效地避免过多状态无法存储的现象发生。
综上所述,强化学习理论可以看作两部分的合成,第一部分是对环境的探索(Exploration),表现在智能体在一定条件下使用一定的策略进行尝试,并且收获尝试的奖励。第二部分则是对环境信息的利用(Exploitation),智能体通过不同的尝试,获取到关于环境的一些信息,尽可能使用这些信息来做出决策,使得从环境收获的奖励尽可能多。在实践中,这两个部分往往相互冲突,因为我们可以看到,如果鼓励智能体对环境的探索,那么可能冒很大风险,使得奖励很小,甚至为负;同样,如果尽可能鼓励环境信息的利用,那么很可能智能体获取的就是次优的(Suboptimal)策略,即局限在一个奖励比较小的区域,没有探索到奖励比较大的区域。因此,在实际的强化学习算法中,往往需要平衡这两个方面,从而让智能体尽可能获取多的奖励。