David Silver 强化学习Lecture1:Introduction

    David Silver 强化学习系列博客的内容整理自David Silver 强化学习的PPT和知乎叶强强化学习专栏。

1 About Reinforcement Learning

    强化学习是多学科多领域交叉的一门学问,它属于机器学习三个分支(监督学习、无监督学习、强化学习)中的一个单独的分支。简单来讲,强化学习的本质是解决decision making问题,即学会自动进行决策。具体来说,强化学习是一个Sequential Decision Making问题,它需要连续选择一些行为,这些行为完成后期望能够得到最大的收益/最好的结果。它在没有任何label告诉算法应该怎么做的情况下,通过先尝试做出一些行为得到一个结果,通过判断这个结果是对还是错,来对之前的行为进行反馈,然后由这个反馈来调整之前的行为,通过不断的调整,算法能够学习到在什么样的情况下选择什么样的行为可以得到最好的结果。
    强化学习不同于监督学习,它们之间有所差别。监督学习 vs 强化学习 区别主要体现在以下几个方面:
1. supervisor/reward signal:监督学习是有监督者的,即有一个label的,这个label告诉算法什么样的输入对应着什么样的输出;而强化学习没有label告诉它在某种情况下应该做出什么样的行为,只有一个做出一系列行为后最终反馈回来的reward signal,这个signal能判断当前选择的行为是好是坏。
2. Feedback is instantaneous/delayed:监督学习中,如果做了比较坏的选择会立刻反馈给算法;而强化学习reward signal不一定是实时的,而很可能是延后的,有时甚至延后很多。强化学习中,可能需要在经历很多步之后,才能知道这是一个正确的决策还是一个错误的决策。
3. i.i.d data / sequential data:监督学习中,数据是独立同分布的,只要把数据丢给机器,让机器自己学习就可以了;而强化学习中,面对的输入数据是时间(序列)数据,即输入不断在变化。不满足独立同分布的性质。因此,强化学习需要应对的是一个动态的系统,agent要和外部环境进行交互,每一个举措都在影响着下一步的行动。
4. agent actions affect the subsequent data:强化学习中,当前的行为影响后续接收到的数据。agent根据环境影响来采取措施,应对环境变化。agent的每一步措施都会影响到它所接受的数据。

2 The Reinforcement Learning Problem

2.1 Rewards

    Rewards奖励,以下记做 R t t 代表经过一个时间步)。它仅仅是反馈信号,是一个标量。每经过一个时间步 t 都会产生一个反馈信号 R t 。这个 R t 衡量了 a g e n t 在每一个步骤里采取的的行动做得怎么样。而强化学习优化的目标就是将每一步的奖励累加起来,尽可能地使奖励的总价值达到最大。
    强化学习主要基于这样的”奖励假设”:所有问题解决的目标都可以被描述成最大化累积奖励。
这里写图片描述
    对于不同的任务,agent所处的环境,采取的行为,每个行为得到的奖励都是不同的,根据任务而定。强化学习的目标就是建立一个统一的框架,使用机器学习的方法解决问题。这样,我们就可以使用相同的形式来应对各种各样不同的问题。
    举一些Rewards的例子来说:比如在直升机的特技表演中,当直升机符合期望的轨迹,就会得到正向的奖励;直升机坠落的时候会有巨大的惩罚。在机器人行走的例子中,当机器人向前每运动一个单位距离,就获得正向奖励;摔倒的时候获得负向奖励。

Sequential Decision Making

    如何才能定义一个适用于所有问题的统一框架?和刚才讲的一样,这是一个序列决策问题。每一个任务里面的目标可以统一成:通过一些action,最大化未来的奖励。需要注意的是,我们需要提前计划,考虑未来。因为即时的action造成的影响可能不是我们想要的结果,但是经过几步之后就可能变成了我们想要的结果。这也就意味着你可能需要放弃当前一些好的奖励,而在不久的将来则会得到更高的奖励。应该目光长远。

2.2 Agent

这里写图片描述
    如上图,我们可以把Agent想象成图中的大脑,我们希望在这个大脑中创建一个算法。这个agent会采取行动,比如说:控制机器人该如何行走/如何下棋。agent采取的每一步行动都是基于它当前所获得的信息(信息包括observation和reward)。每采取一步行动就会看到新的外部环境,就像一个机器人使用照相机,每走一步都对外部世界进行快照,来分析有什么改变的地方。采取行动了之后就会得到一个奖励信号,用来判断当前采取行动的好坏。所以agent都会有两个输入,一个是对外界的观察 O t ,一个是奖励信号 R t 。这些输入共同决定了下一步的行动 A t

2.3 Environment

这里写图片描述
    如上图,我们可以把Environment想象成图中的地球。一边是大脑agent;一边是地球Environment。我们可以把agent与Environment的交互看成一个循环。agent每采取一步行动,Environment会发生变化,新的Environment对应的产生observation(对外部世界的一个快照)和reward。agent只能通过采取行动来影响环境。
    强化学习是基于观察/奖励/行动的时间序列。这个时间序列就代表着agent的经验。这个经验就是用于强化学习的数据。
    简单总结:
    强化学习需要构造出一个agent(大脑),agent能够执行某个action,例如决定机器人朝哪个方向走,围棋棋子下在哪个位置。
    agent能够接收当前环境的一个observation,例如当前机器人的摄像头拍摄到场景。agent还能接收当它执行某个action后的reward,即在第 t 步agent的工作流程是执行一个动作 A t ,获得该动作执行之后的环境观测状况的变化 O t ,以及获得这个动作的反馈奖赏 R t
    而环境则是agent交互的对象,它是一个行为不可控制的对象,agent一开始不知道环境会对不同action做出什么样的反应,而环境会通过observation告诉agent当前的环境状态,同时环境能够根据可能的最终结果反馈给agent一个reward,例如围棋棋面就是一个environment,它可以根据当前的棋面状况估计一下黑白双方输赢的比例。因而在第 t 步,environment的工作流程是接收一个 A t ,对这个动作做出反应之后传递环境状况 O t 和这个动作评估奖励 R t 给agent。

2.4 State

    上节说到,强化学习一连串的经验来源于一系列的历史序列:观察/奖励/行动。history就是目前agent所知道的东西。每经过一步,agent都会采取行动,进行观察,获取奖励。agent所经历的一系列序列组成了history,即 H t = O 1 , R 1 , A 1 , . . . , A t 1 , O t , R t
    agent,也就是我们需要创建的算法,实际上是在建立从一个history到下一个action的映射。也就是说,agent接下来要采取的action完全依赖于history。history通常会很巨大,我们希望agent可以在很短的时间内进行交互。例如,这些观测资料可能是视频,我们不需要每次都回顾历史,相反,我们通常研究的是状态state。状态state是对历史信息的总结,它包含了所需要的所有历史信息,通过这些信息,可以采取下一步的行动(state决定下一步的action)。用state替代history可以做的更好。
    因此,我们将state看成history的函数,每经历一个时间步长 t ,我们就构建一个状态 S t ,即: S t = f ( H t )
    状态可以分为很多种,以下分析主要的三种。

2.4.1 Environment State

    环境状态 S t e 是环境的私有呈现,它反应了环境发生什么改变。这里需要明白的一点是,环境自身的状态和环境反馈给agent的状态并不一定是相同的。例如机器人在走路时,当前的environment状态是一个确定的位置(机器人确定地站在地球上的某一个位置),但是它的camera只能拍到周围的景象,无法告诉agent具体的位置,而拍摄到的照片认为是agent对环境的一个observation,也就是说agent并不是总能知道环境是如何发生改变的,只能看到改变后的一个结果展示。
    环境状态 S t e 包括环境用来决定下一个观测/奖励的所有数据,通常对agent并不完全可见,也就是agent有时候并不知道环境状态的所有细节。即使有时候环境状态对agent可以是完全可见的,这些信息也可能包含着一些无关信息。环境状态并没有告诉我们创建算法的有用信息,agent看不到环境状态。

2.4.2 Agent State

    agent状态 S t a 是agent的内部呈现,包括agent可以使用的、决定未来动作的所有信息。通过agent状态 S t a ,我们可以知道agent目前得到了什么,预计应该采取何种行动,总结到目前为止所发生的事情,可以选择下一步的行动。我们用agent状态决定下一步的行动。
    总的来说,agent状态 S t a 是强化学习算法可以利用的信息,它可以是历史的一个函数 S t a = f ( H t ) 。agent决定采取哪个函数将history与观察/行动/奖励联系起来,并将有用的信息保存下来,这些信息将会对未来采取的行动产生影响。

2.4.3 Information State(or Markov state)

    信息状态也可以成为马尔科夫状态。它包含了history所有有用的信息。也就是说,如果马尔科夫状态可知,那么所有历史信息都可以丢掉,只需要 t 时刻的马尔科夫状态就可以了。
马尔科夫性质:一个状态 S t 具有马尔科夫性质,就是说,下一时刻的状态仅由当前状态决定,与过去状态无关。我们可以将以前的状态抛弃掉,只保留当前的状态。而且,未来的状态也是具有马尔科夫性质的。
这里写图片描述
    这是一个很好的性质,如果一个状态具有马尔科夫性质,那么未来会发生什么就和过去没有关系,仅仅取决于当下。当你得到状态 S 之后,只需要将 S t (当前状态)存储下来,可以扔掉history的其他部分。让 S t 代表history的整个部分,让 S t 来决定未来采取什么行动。例如:环境状态是Markov的,因为环境状态包含了环境决定下一个观测/奖励的所有信息。
    一个示例:
这里写图片描述
    有如下三个针对老鼠的事件序列,其中前两个最后的事件分别是老鼠遭电击和获得一块奶酪,现在请分析比较这三个事件序列的特点,分析第三个事件序列中,老鼠是获得电击还是奶酪?
    假如agent状态 = 序列中的后三个事件(不包括电击、获得奶酪,下同),事件序列3的结果会是什么?(答案是:电击)
    假如agent状态 = 亮灯、响铃和拉电闸各自事件发生的次数,那么事件序列3的结果又是什么?(奶酪)
    假如agent状态 = 完整的事件序列,那结果又是什么?(未知)
    可见,接下来会发生什么事情,取决于状态表示方法。状态表示在某种程度上决定了未来会发生什么。我们可以使用各种各样不同的方式来表征我们的状态。

2.5 Fully Observable Environments

    完全可观察的环境。agent能够直接观测到环境状态。在这种条件下:agent对环境的观测=agent state=environment state。即, O t = S t a = S t e
    当我们用这种表示方式的时候,我们得到了强化学习的一种重要形式,这种问题是一个马尔可夫决策过程(MDP)。

2.6 Partially Observable Environments

    部分可观测的环境。agent并不是直接的观测环境,它并不能见到环境的所有信息。比如:一个可拍照的机器人agent,并不确切地知道自己在哪里,它只能通过摄像头来辨别出它到底在房间的什么位置,它需要自己进行定位。
    现在,agent状态不等于环境状态,因为不知道环境状态,不知道全部信息。有些信息可能并不存在,并且也不是我们所关心的东西。这是强化学习的另一种形式:partially observable Markov decision process (POMDP)

3 Inside An RL Agent

3.1 Major Components of an RL Agent

    一个agent由三部分组成:Policy、Value function、Model,但这三部分不是必须同时存在的。
policy: agent能够采取的行动,是一个行为函数。该函数以它的状态作为输入,以它下一步的行动决策作为输出。
value 函数: 这个函数用来评价agent在某种特殊状态下的好坏/采取某种行动之后的好坏。如果在这种状态下采取那种行动,那么我的预期奖励会是多少。他就是用来评估在某种情形下做的怎么样。
model: agent用来感知环境是如何变化的,这里并不是真实的环境,而是在agent眼里的环境。model就是用来判断环境变化的。

3.1.1 Policy

    policy根据当前看到的observation来决定action,是从state到action的映射。
    它有两种表达形式:
1. 确定的策略: a = π ( s ) ,即,在某种状态s下,一定会执行某个动作a。
2. 随机的策略: π ( a | s ) = P ( A t = a | S t = s ) ,即,在某种状态s下,执行某个动作a是有一定概率的。

3.1.2 Value Function

    预测了当前状态下未来可能获得的reward的期望,用于衡量当前状态的好坏。当面对两个不同的状态时,agent可以用一个Value值来评估这两个状态可能获得的最终奖励的区别,继而指导选择不同的行为,即制定不同的策略。同时,一个值函数是基于某一个特定策略的,不同的策略下同一状态的价值并不相同。计算公式如下:
V π ( s ) = E π [ R t + 1 + γ R t + 2 + γ 2 R t + 3 + . . . | S t = s ]
    值函数是基于某一特定策略的,因此用下标 π 来索引。公式解读:未来的奖励期望=t阶段的奖励+下一阶段的奖励+下下一阶段的奖励。并增加一个小于1的权重值,表明我们更关心当前的奖励。

3.1.3 Model

    model是agent对环境的一个建模,它体现了agent是如何思考环境运行机制的,agent希望模型能模拟环境与agent的交互机制。模型要解决两个问题:一是状态转化概率,即根据当前的信息,预测下一个可能的状态发生的概率;另一个是预测可能获得的即时奖励。因此有两种类型的model:
1.预测下一个状态的转化概率: P s s a = P [ S t + 1 = s | S t = s , A t = a ] 。理解:根据先前的状态和动作,预测下一个可能的状态发生的概率。
2.预测下一次可能获得的即时奖励: R s a = E [ R t + 1 | S t = s , A t = a ] 。理解:基于先前的状态及动作,会得到多少奖励。
    注意,模型并不是构建一个agent所必须的,很多强化学习算法并不试图构建模型。
    另外,模型仅针对个体而言,环境实际运行机制不称为模型,而称为环境动力学(dynamics of environment),它能够明确确定agent下一个状态和所得的即时奖励。

3.2 Categorizing RL agents

    Agent分类,agent可以有多种工具组合,比如通过建立对状态的价值的估计来解决问题,或者通过直接建立对策略的估计来解决问题。这些都是agent可以使用的工具箱里的工具。因此,根据agent内包含的“工具”进行分类,可以把agent分为如下三类:
1. 仅基于价值函数的 Value Based:在这样的agent中,有对状态的价值估计函数,但是没有直接的策略函数,策略函数由价值函数间接得到。
2. 仅直接基于策略的 Policy Based:这样的agent中行为直接由策略函数产生,agent并不维护一个对各状态价值的估计函数。
3. 演员-评判家形式 Actor-Critic:agent既有价值函数、也有策略函数。两者相互结合解决问题。
    此外,根据agent在解决强化学习问题时是否建立一个对环境动力学的模型,将其分为两大类:
1. 不基于模型的agent: 这类agent并不视图了解环境如何工作,而仅聚焦于价值和/或策略函数。
2. 基于模型的agent:agent尝试建立一个描述环境运作过程的模型,以此来指导价值或策略函数的更新。

4 Problems within Reinforcement Learning

4.1 Learning and Planning

    sequential decision making中有两个基本问题:学习和规划。
    学习:环境初始时是未知的,agent不知道环境如何工作,agent通过与环境进行交互,不断地进行尝试,他们不断地进行学习,最终在那个环境中找到最好的方式来采取行动。
    规划: 环境如何工作对于agent是已知或近似已知的,agent并不与环境发生实际的交互,而是利用其构建的模型进行计算,在此基础上改善其行为策略。看上去像是提前规划好了一样。
    一个常用的强化学习问题解决思路是,先学习环境如何工作,也就是了解环境工作的方式,即学习得到一个模型,然后利用这个模型进行规划。

4.2 Exploration & Exploitation

    强化学习是一种试错(trial-and-error)的学习方式,一开始不清楚environment的工作方式,不清楚执行什么样的行为是对的,什么样是错的。因而agent需要从不断尝试的经验中发现一个好的policy,从而在这个过程中获取更多的reward。在这样的学习过程中,就会有一个在Exploration和Exploitation之间的权衡,前者是说会放弃一些已知的reward信息,而去尝试一些新的选择,即在某种状态下,算法也许已经学习到选择什么action让reward比较大,但是并不能每次都做出同样的选择,也许另外一个没有尝试过的选择会让reward更大,即Exploration希望能够探索更多关于environment的信息。而后者是指根据已知的信息最大化reward。
    具体说,探索意味着有选择的放弃某些奖励,这样做是为了找到更多关于环境的信息。比如,根据目前为止你了解到的所有东西,让你觉得应该朝左边走,这样你会得到最多的奖励。但是你要知道的是你还没怎么探索右边呢。也许向右边走一段距离,你就会发现那里有一个巨大的宝箱。所以有可能在结束之后获得更多的奖励。这就是所谓的探索。探索意味着发现更多的关于环境的信息。开发意味着利用你所找到的信息,进而最大化奖励。
    一个形象的比方是,当你去一个餐馆吃饭,“探索”意味着你对尝试新餐厅感兴趣,很可能会去一家以前没有去过的新餐厅体验,“利用”则意味着你就在以往吃过的餐厅中挑一家比较喜欢的,而不去尝试以前没去过的餐厅。这两种做法通常是一对矛盾,但对解决强化学习问题又都非常重要。

4.3 Prediction & Control

    在强化学习里,我们经常需要先解决关于预测(prediction)的问题,而后在此基础上解决关于控制(Control)的问题。
    预测:遵给定一个策略,评价未来。可以看成是求解在给定策略下的价值函数(value function)的过程。
    控制:找到一个好的策略来最大化未来的奖励。
    举一个例子来说明预测和控制的区别。
这里写图片描述
    预测:现在给出了从A到A’的奖励以及从B到B’的奖励,在“随机选择4个方向进行移动”的策略下,如何得知每一个位置的价值。
    控制:同样的条件,在所有可能的策略下最优的价值函数是什么?最优策略是什么?
这里写图片描述

猜你喜欢

转载自blog.csdn.net/weixin_37904412/article/details/81000144
今日推荐