强化学习(RL)是机器学习的一个分支,其中学习是通过与环境交互而进行的。这是一种目标导向的学习,学习者并未告知应采取何种行为,相反学习者是从其行为后果中进行学习的。随着各种算法的提出,该方法发展迅速,现已是人工智能方面最活跃的研究领域之一。
想想一下训练小狗抓球的场景,但不能很具体地区训练狗抓球,而是仅仅扔出去一个球,每次狗抓住球,就会奖赏一块饼干。如果没有抓住球,就没有奖励。这样狗就会明白哪些行为使之得到饼干,从而不断重复执行这种动作。
同理,在强化学习环境中,也不会训练智能体做什么或怎么做,而是根据智能体的每次行为给予奖励。这中奖励可以是正面的也可以是负面的。然后,智能体将开始执行能够使之得到正面奖励的行为。因此,这是一种反复试验的过程。在上述比喻中,狗代表智能体。一旦狗抓住球就会得到正面奖励饼干,而如果没有抓住球,不给饼干就是负面奖励。
奖励可能会有延迟,即可能不会再每一个步骤都得到奖励。奖励只能是在完成任务后才能得到。在某些情况下,每个步骤得到的奖励会标明是否犯错。
想想要训练一个机器人行走且不会因遇到山坡而不知所措,但不能明确告诉机器人不要朝山的方向运动。
相反,如果机器人撞上山坡而陷入困境,那么就会扣除10分,这样机器人就会明白上山坡会产生负面奖励,从而不会再朝这个方向运动。
当机器人沿正确方向行走而不会陷入困境时,将给予20分。因此,机器人就会了解哪条路径是正确的,并朝着正确方向运动来尽量获得最大奖励。
强化学习智能体可以探索可能会得到良好奖励的各种行为,或者可以开发能够获得良好奖励的先前行为。如果强化学习智能体探索了不同行为,那么可能会得到一个很差的奖励,这是因为所有行为都不是最佳的。如果强化学习智能体只采用了已知的最佳行为,那么也可能会错过可以获得更好奖励的最佳行为。探索与开发之间总是存在一种权衡关系。不能同时进行探索和开发。
1.2强化学习算法
在典型的强化学习算法中,所涉及的步骤如下:
(1)首先,智能体通过执行行为与环境进行交互。
(2)智能体执行一个行为后,从一个状态转移到另一个状态。
(3)然后,智能体会根据所执行的行为获得相应奖励。
(4)根据所获得的奖励,智能体会知晓该行为是好还是坏。
(5)如果行为是好的,即如果智能体得到正面奖励,那么将会倾向于执行该行为,否则智能体会尝试执行其他行为来获得正面奖励。因此,该方法本质上是一个试错学习过程。
1.3强化学习与其他机器学习范式不同
在监督学习中,机器(智能体)从具有标记的输入/输出训练数据集中学习。目的是使得模型对其学习进行外推和推广,从而能够很好地适用于未知数据。在此,需要一个对环境具备完备只是基础的外部监督者,来监督智能体完成该任务。
考虑上述讨论的狗抓球的情况:在监督学习中,为了训练狗抓球,将会通过制定向左,向右,向前移动五步等动作来明确地训练狗。但是在强化学习中,只是扔出去一个球,每次狗抓住球,就会奖赏一块饼干(奖励)。所以狗将学习如何抓住球,这意味着会得到饼干。
在无监督学习中,将提供一个仅有一组输入训练数据的模型,通过模型来学习确定输入数据中的隐藏模式。通常普遍会误认为强化学习是一种无监督学习,其实并非如此。在无监督学习中,通过模型来学习隐藏的结构,而在强化学习中,通过最大化奖励来学习模型。假设想要用户推荐新电影。无监督学习会通过分析用户观看过的类似电影来推荐,而强化学习则不断接收来自用户的反馈信息,并在此基础上构建一个知识库,来推荐一部新电影。
另外,还有一种称为半监督学习,其本质上是监督学习和无监督学习的结合。该方法设计标记数据和未标记数据的函数估计,而强化学习本质上是智能体和其环境之间的交互。因此,强化学习与其他机器学习范式完全不同。
下面介绍强化学习相关的概念:
1.智能体
智能体是指进行智能决策的软件程序,在强化学习中通常是学习者。智能体通过与环境交互来执行行为,并根据其行为来获得奖励。
2.策略函数
策略定义了智能体在环境中的行为。智能体决定执行何种行为取决于策略。假设从加到办公室存在不同的路线,其中有些路线很短,而有些路线相对很长。这些路线可以称为策略,因为代表了为达到目标而选择执行的行为。策略通常用符号π表示。策略也可以是查找表形式或复杂的搜索过程。
3.值函数(价值函数)
值函数是表示智能体在某一特定状态下的程度。这与策略相关,通常用v(s)表示。值函数等价于智能体从初始状态开始所获得的的总的期望奖励。值函数有多种形式。最优值函数是与其他值函数相比,所有状态下具有最大值的一种值函数。同理,最优策略是指所有最优值函数的策略。
4.模型
模型是指智能体对环境的表示。学习可以分为基于模型的学习和无模型学习两种类型。在基于模型的学习中,智能体利用先前学习到的信息来完成任务,而在无模型学习中,智能体仅是通过试错经验来执行正确行为。假设想要更快地从家到办公室,在基于模型的学习中,只需利用先前学习的经验(地图)来快速到达办公室,而在无模型学习中,不会使用之前的经验,而是尝试所有不同的路线,并从中选择较快的一种。
5.智能体环境接口
智能体是指在时刻t执行行为At从一个状态St转移到另一个状态S(t+1)的软件智能体。根据行为,智能体从环境获得数值型奖励R。最终,强化学习就是寻找使得数值奖励增大的最优行为。
比如说一个迷宫游戏。迷宫的目标是到达目的地而不会因障碍物而陷入困境。下面是一个流程:
(1)智能体是指传过迷宫的物体,即软件程序/强化学习算法。
(2)环境是迷宫
(3)状态是智能体当前在迷宫所处的位置。
(4)智能体通过从一个状态转移到另一个状态来执行行为。
(5)当智能体的行为没有因任何障碍物而困住时会得到正面奖励,而如果因障碍物而陷入困境,导致无法到达目的地时会得到负面奖励。
(6)目标是穿过迷宫,到达目的地
6.强化学习环境类型
与智能体交互的所有内容都称为环境。环境是指外部世界,包括除智能体之外的一切事物。环境有不同类型。
6.1确定性环境
如果根据当前状态就可以知道相应的结果,那么就称为确定性环境。例如,在国际象棋中,会知道移动每个棋子后的确切结果。
6.2随机性环境
如果不根据当前状态来确定相应的结果,那么这种环境就称为随机性环境。在这种环境中,会存在较大程度的不确定性。例如,扔骰子时永远不知道会出现什么数字。
6.3完全可观测环境
如果智能体在任何时候都能确定系统的状态,那么就称完全可观测环境。例如,在国际象棋中,系统的状态,即棋盘上所有棋子的位置,都是可以获得的,因此棋手可以做出最优决策。
6.4部分可观测环境
如果智能体无法在任何时候都能确定系统的状态,那么就称为部分可观测环境。例如,在玩扑克时,不知道对手的牌。
6.5离散环境
如果从一个状态转移到另一个状态后只能有一个有限的行为状态,那么就称为离散环境。例如,在国际象棋中,只能有移动棋子后的有限集。
6.6连续环境
如果从一个状态转移到另一个状态后可以有无线的行为状态,那么就称为连续环境。例如,再从出发地到目的地的旅行中可以有多条线路。
6.7情景和非情景环境
情景环境也称为非序贯环境。在情景环境中,智能体的当前行为不会影响将来的行为,而在非情景环境中,智能体的当前行为会影响今后的行为,也称为序贯环境。也就是说,智能体在情景环境中执行独立的任务,而在非情景环境中,所有智能体的行为都是相关的。
6.8单智能体和多智能体
顾名思义,单智能体环境中只有一个智能体,而多智能体环境中存在多个智能体。在执行复杂任务时,常用多智能体环境。在完全不同的环境中,有不同的智能体执行。不同环境下的智能体可以互相通信。多智能体环境大多是随机的,因为其具有较大程度的不确定性。