【Datawhale组队学习深度强化学习】Task1

本次学习的相关资料:

【教程】

https://datawhalechina.github.io/easy-rl/

https://linklearner.com/learn/summary/11

https://github.com/datawhalechina/joyrl-book

【学习者手册】

https://mp.weixin.qq.com/s/pwWg0w1DL2C1i_Hs3SZedg

目录

第一章 强化学习基础

什么是强化学习?

强化学习和监督学习的区别

状态和观测有什么关系?

序列决策

部分可观测马尔可夫决策过程

动作空间

强化学习智能体组成成分

强化学习智能体类型

1.基于价值和基于策略的智能体

2. 有模型和免模型智能体 

学习和规划 探索和利用

第二章 马尔可夫决策过程

马尔可夫决策过程和马尔可夫过程/马尔可夫奖励过程的区别

动态规划

关键词

习题

面试题


第一章 强化学习基础

什么是强化学习?

强化学习(reinforcement learning,RL)讨论的问题是智能体(agent)怎么在复杂、不确定的环境(environment)中最大化它能获得的奖励。强化学习由两部分组成:智能体和环境。在强化学习过程中,智能体与环境一直在交互。智能体在环境中获取某个状态后,它会利用该状态输出一个动作 (action),这个动作也称为决策(decision)。然后这个动作会在环境中被执行,环境会根据智能体采取的动作,输出下一个状态以及当前这个动作带来的奖励。智能体的目的就是尽可能多地从环境中获取奖励。

通俗来讲,强化学习就像是训练一只宠物。这只宠物(智能体)生活在一个充满各种事物的环境里。宠物会根据环境中的情况(状态)来做出一些行为(动作),比如它会决定是向左走还是向右跳。当宠物做出一个行为后,环境会有所反应。如果宠物做得好,比如它跳起来抓住了飞过的玩具,它会得到奖励,比如一块零食或者主人的表扬;如果它做得不好,比如撞到了家具,可能就没有奖励,甚至可能受到惩罚。宠物并不知道哪些行为会得到奖励,它需要通过不断地尝试和摸索来学习。它的目标就是学会在遇到各种情况时,如何做出最合适的行为,以便能从环境中获得尽可能多的奖励。强化学习就是通过这种方式,让智能体在与环境不断交互的过程中,学会如何做出最优决策。

强化学习和监督学习的区别

强化学习和监督学习都是机器学习中的学习方法,但它们的方式和目标有所不同。我们可以用一个学生学习的例子来通俗地解释这两种学习方式的区别。

监督学习就像是学生上课时,老师告诉学生每一道题目的正确答案,学生通过记忆和理解这些答案来学习。学生的目标是通过考试,也就是正确地回答那些老师已经给出答案的问题。在监督学习中,模型通过大量的输入数据和对应的正确输出来训练,学会如何从输入映射到输出。

强化学习则更像是一个学生在没有老师指导的情况下自学和探索。学生通过尝试不同的学习方法,自己去做题,然后根据考试结果来调整学习方法。如果考试得分高,说明学习方法有效,学生就会继续使用这种方法;如果得分低,学生就会尝试其他方法。在强化学习中,智能体通过与环境交互,根据执行动作后得到的奖励来调整自己的行为,目标是学会如何在与环境的交互中最大化累积奖励。

总结一下,监督学习是在已知答案的情况下学习,而强化学习是在没有答案的情况下,通过试错来学习。强化学习的目标是在复杂环境中做出最优决策,而监督学习的目标通常是预测或者分类。

状态和观测有什么关系?

状态是对世界的完整描述,不会隐藏世界的信息。观测是对状态的部分描述,可能会遗漏一些信息。在深度强化学习中,我们几乎总是用实值的向量、矩阵或者更高阶的张量来表示状态和观测。例如, 我们可以用 RGB 像素值的矩阵来表示一个视觉的观测,可以用机器人关节的角度和速度来表示一个机器 人的状态。

序列决策(sequential decision making)

部分可观测马尔可夫决策过程(partially observable Markov decision process, POMDP)

部分可观测马尔可夫决策过程(POMDP)是一个强化学习中的概念,我们可以用一个侦探破案的例子来通俗地解释这个概念。

想象一下,你是一名侦探,被困在一个漆黑的房间里。这个房间有很多扇门,每扇门都通向不同的房间,有的房间里有宝藏,有的房间里有陷阱。你的目标是通过探索这些房间来找到宝藏。

但是,因为房间太黑了,你看不见任何东西,也就是说,你无法完全观察到房间当前的状态(比如哪个门后有宝藏,哪个门后有陷阱)。你只能通过触摸墙壁、感受地板的材质等方式来获得一些线索,但这些线索可能是不完整的,也可能会有误导性。

在这种情况下,你每次做的决定(比如选择哪扇门进入下一个房间)都是基于你对当前状态的猜测,而不是确切的知道。你可能会根据之前的经验和当前的线索来推测哪个门后面有宝藏,但这个推测并不总是准确的。

这个例子中的“侦探”就是POMDP中的智能体,而“房间和门”构成了环境。智能体无法完全观测到环境的状态,只能通过一些不完全的观测来做出决策。每次决策都可能带来不确定的后果,智能体的目标就是通过一系列的决策来最大化最终的奖励(在这个例子中就是找到宝藏)。

所以,POMDP就是在强化学习中,当智能体无法完全观测到环境状态时,如何通过观测到的部分信息来做出最优决策的问题。

动作空间

不同的环境允许不同种类的动作。在给定的环境中,有效动作的集合经常被称为动作空间(action space)。像雅达利游戏和围棋(Go)这样的环境有离散动作空间(discrete action space),在这个动作 空间里,智能体的动作数量是有限的。在其他环境,比如在物理世界中控制一个智能体,在这个环境中就有连续动作空间(continuous action space)。在连续动作空间中,动作是实值的向量。

离散动作空间就像是游戏机上的按钮,动作是有限的;而连续动作空间就像是模拟驾驶游戏中的方向盘和踏板,动作可以是无限多种,因为你可以进行微小的调整。

强化学习智能体组成成分

强化学习智能体可能有一个或多个如下的组成成分

  • 策略(policy)。智能体会用策略来选取下一步的动作。

  • 价值函数(value function)。我们用价值函数来对当前状态进行评估。价值函数用于评估智能体进 入某个状态后,可以对后面的奖励带来多大的影响。价值函数值越大,说明智能体进入这个状态越有利。

  • 模型(model)。模型表示智能体对环境的状态进行理解,它决定了环境中世界的运行方式。 下面我们深入了解这 3 个组成部分的细节。

强化学习智能体类型

1.基于价值和基于策略的智能体

根据智能体学习的事物不同,我们可以把智能体进行归类。基于价值的智能体(value-based agent)显式地学习价值函数,隐式地学习它的策略。策略是其从学到的价值函数里面推算出来的。基于策略的智能体(policy-based agent)直接学习策略,我们给它一个状态,它就会输出对应动作的概率。基于策略的智能体并没有学习价值函数。把基于价值的智能体和基于策略的智能体结合起来就有了演员-评论员智能体(actor-critic agent)。这一类智能体把策略和价值函数都学习了,然后通过两者的交互得到最佳的动作。

我们可以用一个演员和评论员的例子来通俗地解释这三种智能体。

基于价值的智能体就像是一个评论员。评论员的工作是评价演员的表演,告诉演员哪些地方做得好,哪些地方做得不好。同样,基于价值的智能体会学习一个价值函数,这个函数可以告诉智能体在某个状态下,哪些动作是有价值的,哪些动作是没有价值的。智能体会根据这个价值函数来决定应该采取哪些动作。

基于策略的智能体则像是演员。演员的工作是根据剧本表演,决定在舞台上应该做什么动作。同样,基于策略的智能体会学习一个策略,这个策略会告诉智能体在某个状态下应该采取哪些动作。与基于价值的智能体不同,基于策略的智能体并不需要一个价值函数来指导它的行动,它会直接根据策略来选择动作。

演员-评论员智能体则把演员和评论员的角色结合起来。在这种智能体中,演员(策略)负责决定在某个状态下应该采取哪些动作,而评论员(价值函数)则负责评价这些动作的好坏,告诉演员哪些动作更有价值。通过演员和评论员的交互,智能体可以更好地决定在某个状态下应该采取的最佳动作。

2. 有模型和免模型智能体 

我们可以通过智能体到底有没有学习环境模型来对智能体进行分类。 有模型(model-based)强化学习智能体通过学习状态的转移来采取动作。 免模型(model-free)强化学习智能体没有去直接估计状态的转移,也没有得到环境的具体转移变量,它通过学习价值函数和策略函数进行决策。免模型强化学习智能体的模型里面没有环境转移的模型。

我们可以用一个旅行者规划路线的例子来通俗地解释这两种智能体的区别。

有模型(model-based)强化学习智能体就像是一个旅行者在出发前研究地图和交通规则。这个旅行者会先了解每条路通向哪里,不同时间段的车流量如何,以及可能遇到的交通限制等信息。基于这些信息,旅行者可以规划出一条从起点到终点的最佳路线。同样,有模型的智能体会先学习环境的模型,也就是状态转移的规则,然后根据这些规则来决定在当前状态下应该采取什么动作。

免模型(model-free)强化学习智能体则像是另一个旅行者,他没有时间或机会去研究地图和交通规则,只能一边走一边尝试。这个旅行者会记住哪些路线曾经带他到达了目的地,哪些路线导致了迷路或拥堵。基于这些经验,旅行者会逐渐学会哪些动作(路线选择)更有可能带他成功到达目的地。免模型的智能体不会直接学习环境的模型,而是通过尝试和错误来学习价值函数和策略函数,以此来决定在当前状态下应该采取什么动作。

总结来说,有模型的智能体就像是提前研究了地图的旅行者,而免模型的智能体则是边走边学的旅行者。有模型的智能体通过学习环境模型来决策,而免模型的智能体通过学习价值函数和策略函数来决策。

Q:有模型强化学习和免模型强化学习有什么区别?

A:针对是否需要对真实环境建模,强化学习可以分为有模型强化学习和免模型强化学习。有模型强化学习是指根据环境中的经验,构建一个虚拟世界,同时在真实环境和虚拟世界中学习;免模型强化学习是指不对环境进行建模,直接与真实环境进行交互来学习到最优策略。

总之,有模型强化学习相比免模型强化学习仅仅多出一个步骤,即对真实环境进行建模。因此,一些有模型的强化学习方法,也可以在免模型的强化学习方法中使用。在实际应用中,如果不清楚该用有模型强化学习还是免模型强化学习,可以先思考在智能体执行动作前,是否能对下一步的状态和奖励进行预测,如果能,就能够对环境进行建模,从而采用有模型学习。

学习和规划 探索和利用

学习和规划就像是我们在生活中做决策的两个步骤,而探索和利用则是我们在面对新事物和旧经验时需要平衡的两个方面。

学习就像是我们在生活中积累经验,通过尝试和犯错来了解世界。比如,你第一次尝试做饭,可能会烧焦食物或者调味不当,但通过不断的尝试和学习,你会逐渐掌握做饭的技巧,做出美味的菜肴。在强化学习中,学习就是智能体通过与环境的交互来更新自己的知识和策略,以便做出更好的决策。

规划则像是我们在有了经验之后,如何利用这些经验来做出未来的决策。比如,你已经很擅长做饭了,现在要为一场聚会准备食物。你会根据以往的经验来计划菜单,决定做什么菜,怎么做,需要什么材料等。在强化学习中,规划就是智能体使用已经学到的知识来决定在未来的某个状态下应该采取什么动作。

探索和利用则是我们在面对新事物和旧经验时需要平衡的两个方面。探索就像是尝试新的餐厅或者新的菜式,你可能会发现新的美食,也可能会遇到不好的体验。利用则是坚持去你已经知道好吃的餐厅,吃你已经喜欢的菜式,这样可以保证有好的体验,但可能会错过发现新美食的机会。在强化学习中,探索是指智能体尝试新的动作,以发现更多的信息和环境的知识;利用则是智能体根据已经学到的知识来选择当前认为最优的动作。智能体需要在探索和利用之间找到平衡,以便既能发现新的信息,又能利用已有的知识来最大化奖励。

第二章 马尔可夫决策过程

马尔可夫决策过程和马尔可夫过程/马尔可夫奖励过程的区别

马尔可夫决策过程(MDP)、马尔可夫过程(Markov Process)和马尔可夫奖励过程(Markov Reward Process)是三个相关但不同的概念。我们可以用一个通俗的例子来解释它们之间的区别。

想象一下,你是一个喜欢探险的人,你在寻找一个隐藏的宝藏。你的探险发生在一片由许多房间组成的迷宫中,每个房间都有门通向其他房间。

  1. 马尔可夫过程(Markov Process): 在这个例子中,马尔可夫过程就像是你在迷宫中随机漫步,没有任何目标,也没有任何规则。你只是随机选择一个门进入下一个房间。在这个过程中,每个房间(状态)转换到下一个房间(状态)的概率是固定的,不依赖于你之前走过的房间。也就是说,这个过程是随机的,没有奖励,也没有决策。

  2. 马尔可夫奖励过程(Markov Reward Process): 现在,假设这个迷宫中的每个房间都有可能藏有金币。当你进入一个房间时,你会得到一些金币作为奖励。在这个马尔可夫奖励过程中,你仍然是在迷宫中随机漫步,但这次你有了一个目标:收集金币。每个房间到下一个房间的转换概率仍然是固定的,但你现在会根据每个房间可能获得的金币数量来评估它们的价值。

  3. 马尔可夫决策过程(MDP): 最后,马尔可夫决策过程就像是你在迷宫中有目的地寻找宝藏。你知道每个房间通向哪些其他房间,而且你可以做出选择:选择哪个门进入下一个房间。在这个过程中,你的目标是最大化总的奖励,也就是找到宝藏。你根据当前房间的信息和可能获得的奖励来做出决策,选择最有可能带你去宝藏的路线。

总结一下,马尔可夫过程是一个随机的状态转换过程,没有奖励和决策;马尔可夫奖励过程加入了奖励,但你仍然只是观察者,没有决策权;而马尔可夫决策过程则包含了奖励和决策,你需要根据当前状态和可能的奖励来做出最佳决策。

动态规划

动态规划(Dynamic Programming,简称DP)是一种解决复杂问题的方法,它将问题分解为多个简单的子问题,并存储这些子问题的解,以避免重复计算。我们可以用一个通俗的例子来解释动态规划。

想象一下,你要从家出发去图书馆,但是你只认识家和图书馆之间的几条街道,而不熟悉整个城市的路网。你想要找到从家到图书馆的最短路径。

动态规划的方法是这样的:

  1. 你从家出发,只考虑一步能到达的地方。你记录下这些地方到家的距离,这些就是最短路径的子问题解。

  2. 接着,你从这些一步能到达的地方再出发,考虑两步能到达的地方。每到一个新地方,你检查一下:是从家直接到这里更近,还是通过之前一步能到达的地方再到这里更近?如果是后者,你就更新这个新地方到家的最短距离。

  3. 你继续这个过程,每次都基于上一次的结果,考虑更多的步骤。每到一个新地方,你都检查并更新到家的最短路径。

  4. 最终,你会到达图书馆。在这个过程中,你记录了所有经过的地方到家的最短路径。这样,你不仅找到了家到图书馆的最短路径,还找到了家到沿途每个地方的最短路径。

动态规划的关键在于“记住你已经解决了的子问题”,这样你就不需要每次都重新计算。在你寻找最短路径的过程中,你记录下的每个地方到家的最短距离就是“存储的子问题解”。

总结一下,动态规划就像是你一边走一边记录每一步到家的最短路径,这样你不需要每次都重新思考怎么回家,而是可以直接查看记录。通过这种方式,动态规划可以帮助你找到从家到任何地方的最短路径。

关键词

强化学习(reinforcement learning,RL):智能体可以在与复杂且不确定的环境进行交互时,尝试使所获得的奖励最大化的算法。

动作(action): 环境接收到的智能体基于当前状态的输出。

状态(state):智能体从环境中获取的状态。

奖励(reward):智能体从环境中获取的反馈信号,这个信号指定了智能体在某一步采取了某个策略以后是否得到奖励,以及奖励的大小。

探索(exploration):在当前的情况下,继续尝试新的动作。其有可能得到更高的奖励,也有可能一无所有。

利用(exploitation):在当前的情况下,继续尝试已知的可以获得最大奖励的过程,即选择重复执行当前动作。

深度强化学习(deep reinforcement learning):不需要手动设计特征,仅需要输入状态就可以让系统直接输出动作的一个端到端(end-to-end)的强化学习方法。通常使用神经网络来拟合价值函数(value function)或者策略网络(policy network)。

全部可观测(full observability)、完全可观测(fully observed)和部分可观测(partially observed):当智能体的状态与环境的状态等价时,我们就称这个环境是全部可观测的;当智能体能够观察到环境的所有状态时,我们称这个环境是完全可观测的;一般智能体不能观察到环境的所有状态时,我们称这个环境是部分可观测的。

部分可观测马尔可夫决策过程(partially observable Markov decision process,POMDP):即马尔可夫决策过程的泛化。部分可观测马尔可夫决策过程依然具有马尔可夫性质,但是其假设智能体无法感知环境的状态,只能知道部分观测值。

动作空间(action space)、离散动作空间(discrete action space)和连续动作空间(continuous action space):在给定的环境中,有效动作的集合被称为动作空间,智能体的动作数量有限的动作空间称为离散动作空间,反之,则被称为连续动作空间。

基于策略的(policy-based):智能体会制定一套动作策略,即确定在给定状态下需要采取何种动作,并根据这个策略进行操作。强化学习算法直接对策略进行优化,使制定的策略能够获得最大的奖励。

基于价值的(valued-based):智能体不需要制定显式的策略,它维护一个价值表格或者价值函数,并通过这个价值表格或价值函数来执行使得价值最大化的动作。

有模型(model-based)结构:智能体通过学习状态的转移来进行决策。

免模型(model-free)结构:智能体没有直接估计状态的转移,也没有得到环境的具体转移变量,它通过学习价值函数或者策略网络进行决策。

马尔可夫性质(Markov property,MP):如果某一个过程未来的状态与过去的状态无关,只由现在的状态决定,那么其具有马尔可夫性质。换句话说,一个状态的下一个状态只取决于它的当前状态,而与它当前状态之前的状态都没有关系。

马尔可夫链(Markov chain): 概率论和数理统计中具有马尔可夫性质且存在于离散的指数集(index set)和状态空间(state space)内的随机过程(stochastic process)。

状态转移矩阵(state transition matrix):状态转移矩阵类似于条件概率(conditional probability),其表示当智能体到达某状态后,到达其他所有状态的概率。矩阵的每一行描述的是从某节点到达所有其他节点的概率。

马尔可夫奖励过程(Markov reward process,MRP): 本质是马尔可夫链加上一个奖励函数。在马尔可夫奖励过程中,状态转移矩阵和它的状态都与马尔可夫链的一样,只多了一个奖励函数。奖励函数是一个期望,即在某一个状态可以获得多大的奖励。

范围(horizon):定义了同一个回合(episode)或者一个完整轨迹的长度,它是由有限个步数决定的。

回报(return):把奖励进行折扣(discounted),然后获得的对应的奖励。

贝尔曼方程(Bellman equation):其定义了当前状态与未来状态的迭代关系,表示当前状态的价值函数可以通过下个状态的价值函数来计算。贝尔曼方程因其提出者、动态规划创始人理查德 ⋅⋅ 贝尔曼(Richard Bellman)而得名,同时也被叫作“动态规划方程”。贝尔曼方程即 𝑉(𝑠)=𝑅(𝑠)+𝛾∑𝑠′∈𝑆𝑃(𝑠′∣𝑠)𝑉(𝑠′)V(s)=R(s)+γ∑s′∈S​P(s′∣s)V(s′) ,特别地,其矩阵形式为 V=R+𝛾PVV=R+γPV。

蒙特卡洛算法(Monte Carlo algorithm,MC algorithm): 可用来计算价值函数的值。使用本节中小船的例子,当得到一个马尔可夫奖励过程后,我们可以从某一个状态开始,把小船放到水中,让它随波流动,这样就会产生一个轨迹,从而得到一个折扣后的奖励 𝑔g 。当积累该奖励到一定数量后,用它直接除以轨迹数量,就会得到其价值函数的值。

动态规划算法(dynamic programming,DP): 其可用来计算价值函数的值。通过一直迭代对应的贝尔曼方程,最后使其收敛。当最后更新的状态与上一个状态差距不大的时候,动态规划算法的更新就可以停止。

Q函数(Q-function): 其定义的是某一个状态和某一个动作所对应的有可能得到的回报的期望。

马尔可夫决策过程中的预测问题:即策略评估问题,给定一个马尔可夫决策过程以及一个策略 𝜋π ,计算它的策略函数,即每个状态的价值函数值是多少。其可以通过动态规划算法解决。

马尔可夫决策过程中的控制问题:即寻找一个最佳策略,其输入是马尔可夫决策过程,输出是最佳价值函数(optimal value function)以及最佳策略(optimal policy)。其可以通过动态规划算法解决。

最佳价值函数:搜索一种策略 𝜋π ,使每个状态的价值最大,𝑉∗V∗ 就是到达每一个状态的极大值。在极大值中,我们得到的策略是最佳策略。最佳策略使得每个状态的价值函数都取得最大值。所以当我们说某一个马尔可夫决策过程的环境可解时,其实就是我们可以得到一个最佳价值函数。

习题

1-1 强化学习的基本结构是什么?

本质上是智能体与环境的交互。具体地,当智能体在环境中得到当前时刻的状态后,其会基于此状态输出一个动作,这个动作会在环境中被执行并输出下一个状态和当前的这个动作得到的奖励。智能体在环境里存在的目标是最大化期望累积奖励。

1-2 强化学习相对于监督学习为什么训练过程会更加困难?

(1)强化学习处理的大多是序列数据,其很难像监督学习的样本一样满足独立同分布条件。

(2)强化学习有奖励的延迟,即智能体的动作作用在环境中时,环境对于智能体状态的奖励存在延迟,使得反馈不实时。

(3)监督学习有正确的标签,模型可以通过标签修正自己的预测来更新模型,而强化学习相当于一个“试错”的过程,其完全根据环境的“反馈”更新对自己最有利的动作。

1-3 强化学习的基本特征有哪些?

(1)有试错探索过程,即需要通过探索环境来获取对当前环境的理解。

(2)强化学习中的智能体会从环境中获得延迟奖励。

(3)强化学习的训练过程中时间非常重要,因为数据都是时间关联的,而不是像监督学习中的数据大部分是满足独立同分布的。

(4)强化学习中智能体的动作会影响它从环境中得到的反馈。

1-4 近几年强化学习发展迅速的原因有哪些?

(1)算力的提升使我们可以更快地通过试错等方法来使得智能体在环境里面获得更多的信息,从而取得更大的奖励。

(2)我们有了深度强化学习这样一个端到端的训练方法,可以把特征提取、价值估计以及决策部分一起优化,这样就可以得到一个更强的决策网络。

1-5 状态和观测有什么关系?

状态是对环境的完整描述,不会隐藏环境信息。观测是对状态的部分描述,可能会遗漏一些信息。在深度强化学习中,我们几乎总是用同一个实值向量、矩阵或者更高阶的张量来表示状态和观测。

1-6 一个强化学习智能体由什么组成?

(1)策略函数,智能体会用策略函数来选取它下一步的动作,策略包括随机性策略和确定性策略。

(2)价值函数,我们用价值函数来对当前状态进行评估,即进入现在的状态可以对后面的奖励带来多大的影响。价值函数的值越大,说明进入该状态越有利。

(3)模型,其表示智能体对当前环境状态的理解,它决定系统是如何运行的。

1-7 根据强化学习智能体的不同,我们可以将其分为哪几类?

(1)基于价值的智能体。显式学习的是价值函数,隐式地学习智能体的策略。因为这个策略是从学到的价值函数里面推算出来的。

(2)基于策略的智能体。其直接学习策略,即直接给智能体一个状态,它就会输出对应动作的概率。当然在基于策略的智能体里面并没有去学习智能体的价值函数。

(3)另外还有一种智能体,它把以上两者结合。把基于价值和基于策略的智能体结合起来就有了演员-评论员智能体。这一类智能体通过学习策略函数和价值函数以及两者的交互得到更佳的状态。

1-8 基于策略迭代和基于价值迭代的强化学习方法有什么区别?

(1)基于策略迭代的强化学习方法,智能体会制定一套动作策略,即确定在给定状态下需要采取何种动作,并根据该策略进行操作。强化学习算法直接对策略进行优化,使得制定的策略能够获得最大的奖励;基于价值迭代的强化学习方法,智能体不需要制定显式的策略,它维护一个价值表格或价值函数,并通过这个价值表格或价值函数来选取价值最大的动作。

(2)基于价值迭代的方法只能应用在离散的环境下,例如围棋或某些游戏领域,对于行为集合规模庞大或是动作连续的场景,如机器人控制领域,其很难学习到较好的结果(此时基于策略迭代的方法能够根据设定的策略来选择连续的动作)。

(3)基于价值迭代的强化学习算法有 Q-learning、Sarsa 等,基于策略迭代的强化学习算法有策略梯度算法等。

(4)此外,演员-评论员算法同时使用策略和价值评估来做出决策。其中,智能体会根据策略做出动作,而价值函数会对做出的动作给出价值,这样可以在原有的策略梯度算法的基础上加速学习过程,从而取得更好的效果。

1-9 有模型学习和免模型学习有什么区别?

针对是否需要对真实环境建模,强化学习可以分为有模型学习和免模型学习。有模型学习是指根据环境中的经验,构建一个虚拟世界,同时在真实环境和虚拟世界中学习;免模型学习是指不对环境进行建模,直接与真实环境进行交互来学习到最优策略。总体来说,有模型学习相比免模型学习仅仅多出一个步骤,即对真实环境进行建模。免模型学习通常属于数据驱动型方法,需要大量的采样来估计状态、动作及奖励函数,从而优化动作策略。免模型学习的泛化性要优于有模型学习,原因是有模型学习需要对真实环境进行建模,并且虚拟世界与真实环境之间可能还有差异,这限制了有模型学习算法的泛化性。

1-10 如何通俗理解强化学习?

环境和奖励函数不是我们可以控制的,两者是在开始学习之前就已经事先确定的。我们唯一能做的事情是调整策略,使得智能体可以在环境中得到最大的奖励。另外,策略决定了智能体的行为,策略就是给一个外界的输入,然后它会输出现在应该要执行的动作。

2-1 为什么在马尔可夫奖励过程中需要有折扣因子?

(1)首先,是有些马尔可夫过程是环状的,它并没有终点,所以我们想避免无穷的奖励。

(2)另外,我们想把不确定性也表示出来,希望尽可能快地得到奖励,而不是在未来的某个时刻得到奖励。

(3)接上一点,如果这个奖励是有实际价值的,我们可能更希望立刻就得到奖励,而不是后面才可以得到奖励。

(4)还有,在有些时候,折扣因子也可以设为0。当它被设为0后,我们就只关注它当前的奖励。我们也可以把它设为1,设为1表示未来获得的奖励与当前获得的奖励是一样的。

所以,折扣因子可以作为强化学习智能体的一个超参数进行调整,然后就会得到不同行为的智能体。

2-2 为什么矩阵形式的贝尔曼方程的解析解比较难求得?

通过矩阵求逆的过程,我们就可以把 𝑉V 的解析解求出来。但是这个矩阵求逆的过程的复杂度是 𝑂(𝑁3)O(N3) ,所以当状态非常多的时候,比如从10个状态到1000个状态,到100万个状态,那么当我们有100万个状态的时候,转移矩阵就会是一个100万乘100万的矩阵。对于这样一个大矩阵进行求逆是非常困难的,所以这种通过解析解去解的方法,只能应用在很小量的马尔可夫奖励过程中。

2-3 计算贝尔曼方程的常见方法有哪些,它们有什么区别?

(1)蒙特卡洛方法:可用来计算价值函数的值。以本书中的小船示例为例,当得到一个马尔可夫奖励过程后,我们可以从某一个状态开始,把小船放到水中,让它“随波逐流”,这样就会产生一条轨迹,从而得到一个折扣后的奖励 𝑔g 。当积累该奖励到一定数量后,直接除以轨迹数量,就会得到其价值函数的值。

(2)动态规划方法:可用来计算价值函数的值。通过一直迭代对应的贝尔曼方程,最后使其收敛。当最后更新的状态与上一个状态区别不大的时候,通常是小于一个阈值 𝛾γ 时,更新就可以停止。

(3)以上两者的结合方法:我们也可以使用时序差分学习方法,其为动态规划方法和蒙特卡洛方法的结合。

2-4 马尔可夫奖励过程与马尔可夫决策过程的区别是什么?

相对于马尔可夫奖励过程,马尔可夫决策过程多了一个决策过程,其他的定义与马尔可夫奖励过程是类似的。由于多了一个决策,多了一个动作,因此状态转移也多了一个条件,即执行一个动作,导致未来状态的变化,其不仅依赖于当前的状态,也依赖于在当前状态下智能体采取的动作决定的状态变化。对于价值函数,它也多了一个条件,多了一个当前的动作,即当前状态以及采取的动作会决定当前可能得到的奖励的多少。

另外,两者之间是有转换关系的。具体来说,已知一个马尔可夫决策过程以及一个策略 𝜋π 时,我们可以把马尔可夫决策过程转换成马尔可夫奖励过程。在马尔可夫决策过程中,状态的转移函数 𝑃(𝑠′∣𝑠,𝑎)P(s′∣s,a) 是基于它的当前状态和当前动作的,因为我们现在已知策略函数,即在每一个状态,我们知道其采取每一个动作的概率,所以我们就可以直接把这个动作进行加和,就可以得到对于马尔可夫奖励过程的一个转移概率。同样地,对于奖励,我们可以把动作去掉,这样就会得到一个类似于马尔可夫奖励过程的奖励。

2-5 马尔可夫决策过程中的状态转移与马尔可夫奖励过程中的状态转移的结构或者计算方面的差异有哪些?

对于马尔可夫链,它的转移概率是直接决定的,即从当前时刻的状态通过转移概率得到下一时刻的状态值。但是对于马尔可夫决策过程,其中间多了一层动作的输出,即在当前这个状态,首先要决定采取某一种动作,再通过状态转移函数变化到另外一个状态。所以在当前状态与未来状态转移过程中多了一层决策性,这是马尔可夫决策过程与之前的马尔可夫过程的不同之处。在马尔可夫决策过程中,动作是由智能体决定的,所以多了一个组成部分,智能体会采取动作来决定未来的状态转移。

2-6 我们如何寻找最佳策略,寻找最佳策略方法有哪些?

本质来说,当我们取得最佳价值函数后,我们可以通过对Q函数进行最大化,从而得到最佳价值。然后,我们直接对Q函数取一个让动作最大化的值,就可以直接得到其最佳策略。具体方法如下,

(1)穷举法(一般不使用):假设我们有有限个状态、有限个动作可能性,那么每个状态我们可以采取 𝐴A 种动作策略,那么总共就是 ∣𝐴∣∣𝑆∣∣A∣∣S∣ 个可能的策略。我们可以把他们穷举一遍,然后算出每种策略的价值函数,对比一下就可以得到最佳策略。但是这种方法的效率极低。

(2)策略迭代: 一种迭代方法,其由两部分组成,以下两个步骤一直在迭代进行,最终收敛,其过程有些类似于机器学习中的EM算法(期望-最大化算法)。第一个步骤是策略评估,即当前我们在优化这个策略 𝜋π ,在优化过程中通过评估从而得到一个更新的策略;第二个步骤是策略提升,即取得价值函数后,进一步推算出它的Q函数,得到它的最大值。

(3)价值迭代: 我们一直迭代贝尔曼最优方程,通过迭代,其能逐渐趋向于最佳策略,这是价值迭代方法的核心。我们为了得到最佳的 𝑉∗V∗ ,对于每个状态的 𝑉∗V∗ 值,直接使用贝尔曼最优方程进行迭代,迭代多次之后它就会收敛到最佳策略及其对应的状态,这里是没有策略函数的。

面试题

1-1 友善的面试官: 看来你对于强化学习还是有一定了解的呀,那么可以用一句话谈一下你对于强化学习的认识吗?

强化学习包含环境、动作和奖励3部分,其本质是智能体通过与环境的交互,使其做出的动作对应的决策得到的总奖励最大,或者说是期望最大。

1-2 友善的面试官: 请问,你认为强化学习、监督学习和无监督学习三者有什么区别呢?

首先强化学习和无监督学习是不需要有标签样本的,而监督学习需要许多有标签样本来进行模型的构建和训练。其次对于强化学习与无监督学习,无监督学习直接基于给定的数据进行建模,寻找数据或特征中隐藏的结构,一般对应聚类问题;强化学习需要通过延迟奖励学习策略来得到模型与目标的距离,这个距离可以通过奖励函数进行定量判断,这里我们可以将奖励函数视为正确目标的一个稀疏、延迟形式。另外,强化学习处理的多是序列数据,样本之间通常具有强相关性,但其很难像监督学习的样本一样满足独立同分布条件。

1-3 友善的面试官: 根据你的理解,你认为强化学习的使用场景有哪些呢?

7个字总结就是“多序列决策问题”,或者说是对应的模型未知,需要通过学习逐渐逼近真实模型的问题。并且当前的动作会影响环境的状态,即具有马尔可夫性的问题。同时应满足所有状态是可重复到达的条件,即满足可学习条件。

1-4 友善的面试官: 请问强化学习中所谓的损失函数与深度学习中的损失函数有什么区别呢?

深度学习中的损失函数的目的是使预测值和真实值之间的差距尽可能小,而强化学习中的损失函数的目的是使总奖励的期望尽可能大。

1-5 友善的面试官: 你了解有模型和免模型吗?两者具体有什么区别呢?

我认为两者的区别主要在于是否需要对真实的环境进行建模,免模型方法不需要对环境进行建模,直接与真实环境进行交互即可,所以其通常需要较多的数据或者采样工作来优化策略,这也使其对于真实环境具有更好的泛化性能;而有模型方法需要对环境进行建模,同时在真实环境与虚拟环境中进行学习,如果建模的环境与真实环境的差异较大,那么会限制其泛化性能。现在通常使用有模型方法进行模型的构建工作。

  • 27
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值