【Easy RL】Easy RL蘑菇书全书学习笔记
- 本文是本人学习阅读Easy RL一书中记录的学习笔记,部分内容可能有遗漏
- 如需阅读原文请点击:EasyRL官方文档链接
第一章 强化学习基础
1.1 强化学习概述
- 强化学习(reinforcement learning,RL)讨论的问题是智能体(agent)怎么在复杂、不确定的环境(environment)中最大化它能获得的奖励

监督学习
- 监督学习(supervised learning)假设有大量被标注的数据,比如汽车、飞机、椅子这些被标注的图片,这些图片都要满足独立同分布,即它们之间是没有关联关系的。
- 假设我们训练一个分类器,比如神经网络。为了分辨输入的图片中是汽车还是飞机,在训练过程中,需要把正确的标签信息label传递给神经网络。 当神经网络做出错误的预测时,比如输入汽车的图片,它预测出来是飞机,我们就会直接告诉它,该预测是错误的,正确的标签应该是汽车。最后我们根据类似错误写出一个损失函数(loss function),通过反向传播(back propagation)来训练神经网络

监督学习的两个假设 - 输入的数据(标注的数据)都应是没有关联的。因为如果输入的数据有关联,学习器(learner)是不好学习的。
- 需要告诉学习器正确的标签是什么,这样它可以通过正确的标签来修正自己的预测。
- 通常假设样本空间中全体样本服从一个未知分布,我们获得的每个样本都是独立地从这个分布上采样获得的,即独立同分布(independent and identically distributed,简称 i.i.d.)。
强化学习与监督学习的不同之处
- 智能体得到的观测(observation)不是独立同分布的,上一帧与下一帧间其实有非常强的连续性。我们得到的数据是相关的时间序列数据,不满足独立同分布
- 游戏没有告诉我们哪个动作是正确动作,我们并不会得到即时的反馈。因此,强化学习之所以困难,是因为智能体不能得到即时的反馈
- 没有标签来说明现在这个动作是正确还是错误的,必须等到游戏结束才可能知道,这个游戏可能 10s 后才结束。现在这个动作到底对最后游戏是否能赢有无帮助,我们其实是不清楚的。这里我们就面临延迟奖励(delayed reward)的问题,延迟奖励使得训练网络非常困难

二者的区别总结
- (1)强化学习输入的样本是序列数据,不满足独立同分布,而不像监督学习里面样本都是独立的
- (2)学习器并没有告诉我们每一步正确的动作应该是什么,学习器需要自己去发现哪些动作可以带来最多的奖励,只能通过不停地尝试来发现最有利的动作
- (3)智能体获得自己能力的过程,其实是不断地试错探索(trial-and-error exploration)的过程。探索 (exploration)和利用(exploitation)是强化学习里面非常核心的问题。其中,探索指尝试一些新的动作, 这些新的动作有可能会使我们得到更多的奖励,也有可能使我们“一无所有”;利用指采取已知的可以获得最多奖励的动作,重复执行这个动作,因为我们知道这样做可以获得一定的奖励。因此,我们需要在探索和利用之间进行权衡,这也是在监督学习里面没有的情况。
- (4)在强化学习过程中,没有非常强的监督者(supervisor),只有奖励信号(reward signal),并且奖励信号是延迟的,即环境会在很久以后告诉我们之前我们采取的动作到底是不是有效的。因为我们没有得 到即时反馈,所以智能体使用强化学习来学习就非常困难。当我们采取一个动作后,如果我们使用监督学习,我们就可以立刻获得一个指导,比如,我们现在采取了一个错误的动作,正确的动作应该是什么。而在强化学习里面,环境可能会告诉我们这个动作是错误的,但是它并没有告诉我们正确的动作是什么。而且更困难的是,它可能是在一两分钟过后告诉我们这个动作是错误的。所以这也是强化学习和监督学习不同的地方。
强化学习的特征
- (1)强化学习会试错探索,强化学习通过探索环境来获取对环境的理解
- (2)强化学习智能体会从环境里面获得延迟的奖励
- (3)在强化学习的训练过程中,时间非常重要。因为我们得到的是有时间关联的数据(sequential data), 而不是独立同分布的数据。在机器学习中,如果观测数据有非常强的关联,会使得训练非常不稳定。这也是为什么在监督学习中,我们希望数据尽量满足独立同分布,这样就可以消除数据之间的相关性
- (4)智能体的动作会影响它随后得到的数据,这一点是非常重要的。在训练智能体的过程中,很多时 候我们也是通过正在学习的智能体与环境交互来得到数据的。所以如果在训练过程中,智能体不能保持稳定,就会使我们采集到的数据非常糟糕。我们通过数据来训练智能体,如果数据有问题,整个训练过程就会失败。所以在强化学习里面一个非常重要的问题就是,怎么让智能体的动作一直稳定地提升。
强化学习的优越性
- 为什么我们关注强化学习,其中非常重要的一个原因就是强化学习得到的模型可以有超人类的表现
- 监督学习获取的监督数据,其实是人来标注的,比如 ImageNet 的图片的标签都是人类标注的。因此我们可以确定监督学习算法的上限(upper bound)就是人类的表现,标注结果决定了它的表现永远不可能超越人类
- 但是对于强化学习,它在环境里面自己探索,有非常大的潜力,它可以获得超越人类的能力的表现,比如 DeepMind 的 AlphaGo 这样一个强化学习的算法可以把人类顶尖的棋手打败

预演(rollout)和 轨迹(trajectory)的概念
- 图 1.8 所示为预演(rollout)的一个过程。预演是指我们从当前帧对动作进行采样,生成很多局游戏。我们将当前的智能体与环境交互,会得到一系列观测。每一个观测可看成一个轨迹(trajectory)。 轨迹就是当前帧以及它采取的策略,即状态和动作的序列:
τ
=
(
s
0
,
a
0
,
s
1
,
a
1
,
.
.
.
)
\tau=(s_0,a_0,s_1,a_1,...)
τ=(s0,a0,s1,a1,...)

- 我们可以通过观测序列以及最终奖励(eventual reward)来训练智能体,使它尽可能地采取可以获得最终奖励的动作。一场游戏称为一个回合(episode)或者试验(trial)
端到端的概念
- 把特征提取以及分类两者合到一块儿去了,就是训练一个神经网络。这个神经网络既可以做特征提取,也可以做分类,它可以实现端到端训练

深度强化学习(deep reinforcemet learning)
- 深度强化学习 = 深度学习 + 强化学习
- 深度强化学习:自从我们有了深度学习,有了神经网络,就可以把智能体玩游戏的过程改进成一个端到端训练(end-to-end training)的过程,如图 1.10b 所示。不需要设计特征,直接输入状态就可以输出动作。我们可以用一个神经网络来拟合价值函数或策略网络,省去特征工程(feature engineering)的过程

sim2real
- Sim2Real(Simulation to Reality),即从仿真到现实,是强化学习尤其是机器人学习领域中的一个重要概念。它涉及到将代理(agent)在仿真环境中学到的行为或策略迁移到现实世界中。这样做的好处是,仿真环境可以快速、安全且低成本地生成大量训练数据,但它也面临着一些挑战。
- OpenAI 先在一个虚拟环境里面使用强化学习对智能体进行训练,再把它应 用到真实的机械臂上。这在强化学习里面是一种比较常用的做法,即我们先在虚拟环境里面得到一个很好 的智能体,然后把它应用到真实的机器人中
- Sim2Real Gap:仿真环境无法完美复制现实世界的复杂性,如物理动力学、传感器噪声等,导致在仿真中表现良好的策略在现实中可能效果不佳
- 数据分布不匹配:仿真数据与现实数据在分布上的差异可能导致模型过拟合仿真环境,从而在现实世界中泛化能力差
- 加扰动可以提高智能体的鲁棒性
1.2序列决策
基本概念
-
强化学习研究的问题是智能体与环境交互的问题
-
智能体与环境:图 1.12 左边的智能体一直在与图 1.12 右边的环境进行交互。智能体把它的动作输出给环境,环境取得这个动作后会进行下一步,把下一步的观测与这个动作带来的奖励返还给智能体。这样的交互会产生很多观测,智能体的目的是从这些观测之中学到能最大化奖励的策略

-
奖励:奖励是由环境给的一种标量的反馈信号(scalar feedback signal),这种信号可显示智能体在某一步采取某个策略的表现如何。
-
强化学习的目的就是最大化智能体可以获得的奖励,智能体在环境里面存在的目 的就是最大化它的期望的累积奖励(expected cumulative reward)
-
在与环境的交互过程中,智能体会获得很多观测。针对每一个观测,智能体会采取一个动作,也会得到一个奖励。所以历史是观测、动作、奖励的序列: H t = o 1 , a 1 , r 1 , . . . . . . , o t , a t , r t H_t=o_1,a_1,r_1,......,o_t,a_t,r_t Ht=o1,a1,r1,......,ot,at,rt
-
智能体在采取当前动作的时候会依赖于它之前得到的历史,所以我们可以把整个游戏的状态看成关于这个历史的函数: S t = f ( H t ) S_t = f(H_t) St=f(Ht)
状态和观测的关系
- 状态是对世界的完整描述,不会隐藏世界的信息。观测是对状态的部分描述,可能会遗漏一些信息。在深度强化学习中,我们几乎总是用实值的向量、矩阵或者更高阶的张量来表示状态和观测。例如, 我们可以用 RGB 像素值的矩阵来表示一个视觉的观测,可以用机器人关节的角度和速度来表示一个机器 人的状态
环境信息完全可观测–>马尔科夫决策过程

环境信息部分可观测–>部分可观测马尔可夫决策过程
- 有一种情况是智能体得到的观测并不能包含环境运作的所有状态,因为在强化学习的设定里面, 环境的状态才是真正的所有状态。比如智能体在玩 black jack 游戏,它能看到的其实是牌面上的牌。或者在 玩雅达利游戏的时候,观测到的只是当前电视上面这一帧的信息,我们并没有得到游戏内部里面所有的运 作状态。也就是当智能体只能看到部分的观测,我们就称这个环境是部分可观测的(partially observed)。 在这种情况下,强化学习通常被建模成部分可观测马尔可夫决策过程(partially observable Markov decision process, POMDP)的问题。部分可观测马尔可夫决策过程是马尔可夫决策过程的一种泛化。 部分可观测马尔可夫决策过程依然具有马尔可夫性质,但是假设智能体无法感知环境的状态,只能知道部分观测值。

1.3动作空间
- 动作空间:给定环境,有效动作的集合
- 离散动作空间:动作数有限
- 连续动作空间:动作数无限
1.4 强化学习智能体的组成成分和类型
策略
- 随机性策略(stochastic policy): π ( a ∣ s ) = p ( a t = a ∣ s t = s ) \pi(a|s) = p(a_t = a | s_t = s) π(a∣s)=p(at=a∣st=s),输入一个状态,输出一个概率。 这个概率是智能体所有动作的概率,然后对这个概率分布进行采样,可得到智能体将采取的动作,输出每个动作的概率值,最终动作还需从中进行采样
- 确定性策略(deterministic policy)就是智能体直接采取最有可能的动作, a ∗ = a r g m a x a π ( a ∣ s ) a^* = {argmax}_{a} \pi(a|s) a∗=argmaxaπ(a∣s)
- 强化学习一般使用随机性策略,随机性策略有很多优点。比如,在学习时可以通过引入一定的随机性来更好地探索环境; 随机性策略的动作具有多样性
价值函数
- 价值函数的值是对未来奖励的预测,我们用它来评估状态的好坏
- 有状态价值函数和动作价值函数两种
模型
- 模型决定了下一步的状态,由状态转移概率和奖励函数两个部分组成
强化学习智能体的类型
基于价值的智能体与基于策略的智能体
- 根据智能体学习的事物不同,我们可以把智能体换分为基于价值的智能体(value-based agent) 和 基于策略的智能体(policy-based agent)
- 基于价值的智能体(value-based agent)显式地学习价值函数,隐式地学习它的策略。策略是其从学到的价值函数里面推算出来的。
- 基于策略的智能体(policy-based agent)直接学习策略,我们给它一个状态,它就会输出对应动作的概率。基于策略的智能体并没有学习价值函数。
- 把基于价值的智能体和基于策略的智能体结合起来就有了演员-评论员智能体(actor-critic agent)。这一类智能体把策略和价值函数都学习了,然后通过两者的交互得到最佳的动作。
决策方式:决策方式是智能体在给定状态下从动作集合中选择一个动作的依据
- 从决策方式来看,强化学习可以划分为基于策略的方法和基于价值的方法
- 在基于策略的强化学习方法中,智能体会制定一套动作策略(确定在给定状态下需要采取何种动作),并根据这个策略进行操作。强化学习算法直接对策略进行优化,使制定的策略能够获得最大的奖励
- 在基于价值的强化学习方法中,智能体不需要制定显式的策略,它维护一个价值表格或价值函数,并通过这个价值表格或价值函数来选取价值最大的动作。
- 基于价值迭代的方法只能应用在不连续的、离散的环境下(如围棋或某些游戏领域),对于动作集合规模庞大、动作连续的场景(如机器人控制领域),其很难学习到较好的结果(而基于策略迭代的方法能够根据设定的策略来选择连续的动作)
有模型强化学习智能体与免模型强化学习智能体(是否对真实环境建模)
- 有模型(model-based)强化学习智能体通过学习状态的转移来采取动作,学习状态转移和奖励函数
- 有模型的方法,智能体对真实环境进行建模,构建一个虚拟世界来模拟真实环境中的状态和交互反应(即状态转移函数和奖励函数),就能知道在某一状态下执行某一动作后能带来的奖励和环境的下一状态,这样智能体就不需要在真实环境中采取动作,直接在虚拟世界中学习和规划策略即可
- 免模型(model-free)强化学习智能体没有去直接估计状态的转移,也没有得到环境的具体转移变量,它通过学习价值函数和策略函数进行决策。免模型强化学习智能体的模型里面没有环境转移的模型
- 免模型强化学习没有对真实环境进行建模,智能体只能在真实环境中通过一定的策略来执行动作,等待奖励和状态迁移,然后根据这些反馈信息来更新动作策略,这样反复迭代直到学习到最优策略。
有模型强化学习是指根据环境中的经验,构建一个虚拟世界,同时在真实环境和虚拟世界中学习;免模型强化学习是指不对环境进行建模,直接与真实环境进行交互来学习到最优策略。
- 有模型方法的问题:通常情况下,状态转移函数和奖励函数很难估计,甚至连环境中的状态都可能是未知的
- 免模型方法的问题:通常属于数据驱动型方法,需要大量的采样来估计状态、动作及奖励函数,从而优化动作策略。
优缺点分析:
- 有模型的深度强化学习可以在一定程度上缓解训练数据匮乏的问题,因为智能体可以在虚拟世界中进行训练
- 免模型学习的泛化性要优于有模型强化学习,原因是有模型强化学习算需要对真实环境进行建模,并且虚拟世界与真实环境之间可能还有差异,这限制了有模型强化学习算法的泛化性---->有模型的方法需要估计构建虚拟世界,与真实世界存在偏差 导致泛化性不好
- 有模型的强化学习方法可以对环境建模,使得该类方法具有独特魅力,即“想象能力”。在免模型强化学习中,智能体只能一步一步地采取策略,等待真实环境的反馈;有模型强化学习可以在虚拟世界中预测出将要发生的事,并采取对自己最有利的策略。
- 大部分深度强化学习方法都采用了免模型强化学习,这是因为:免模型强化学习更为简单、直观且有丰富的开源资料,如 AlphaGo 系列都采用免模型强化学习;在目前的强化学习研究中,大部分情况下环境都是静态的、可描述的,智能体的状态是离散的、可观察的(如雅达利游戏平台),这种相对简单、确定的问题并不需要评估状态转移函数和奖励函数,可直接采用免模型强化学习,使用大量的样本进行训练就能获得较好的效果

1.5 学习与规划
- 学习(learning)和规划(planning)是序列决策的两个基本问题
- 学习:不知道环境(状态转移函数、奖励函数)是什么样
- 规划:环境是已知的,智能体被告知了整个环境的运作规则的详细信息。智能体能够计算出一个完美的模型,并且在不需要与环境进行任何交互的时候进行计算。智能体不需要实时地与环境交互就能知道未来环境,只需要知道当前的状态,就能够开始思考,来寻找最优解
- 一个常用的强化学习问题解决思路是,先学习环境如何工作,也就是了解环境工作的方式,即学习得到一个模型,然后利用这个模型进行规划
1.6 探索与利用
- 探索:通过尝试不同的动作来得到最佳的策略(带来最大奖励的策略)
- 利用:我们不去尝试新的动作,而是采取已知的可以带来很大奖励的动作
- 探索通过试错增加对环境的理解,利用直接采取已知的可以带来很好奖励的动作
- 探索(估计摇臂的优劣)和利用(选择当前最优摇臂)这两者是矛盾的,因为尝试次数(总投币数)有限,加强了一方则自然会削弱另一方,这就是强化学习所面临的探索-利用窘境(exploration-exploitation dilemma)。显然,想要累积奖励最大,则必须在探索与利用之间达成较好的折中。
第二章 马尔科夫决策过程
2.1马尔科夫性质、马尔科夫过程、马尔科夫奖励过程
- 马尔科夫性质(Markov property):在给定现在状态及所有过去状态情况下,其未来状态的条件概率分布仅依赖于当前状态
- 简而言之:下一时刻的状态仅依赖于当前状态

- 马尔科夫过程/马尔科夫链:指具有马尔可夫性质的随机过程,仅有状态和状态转移概率,不含动作和奖励 <S,P>,S是有限数量的状态集合,P是状态转移矩阵(state transition matrix)
- 马尔科夫奖励过程:在马尔科夫过程的基础上加入奖励函数r和折扣因子γ --> 得到马尔科夫奖励过程<S,P,R,γ>
- 我们通过一个形象的例子来理解马尔可夫奖励过程。我们把一艘纸船放到河流之中,它就会随着水流而流动,它自身是没有动力的(没有动作元素)。所以我们可以把马尔可夫奖励过程看成一个随波逐流的例子,当我们从某一个点开始的时候,纸船就会随着事先定义好的状态转移进行流动,它到达每个状态后,我们都有可能获得一些奖励。
- 范围(horizon) 是指一个回合的长度(每个回合最大的时间步数)
- 回报:

- 状态价值函数:回报的期望


- 计算价值函数:
我们有了一些轨迹的实际回报时,怎么计算它的价值函数呢?
比如我们想知道s4的价值,即当我们进入 s4后,它的价值到底如何?一个可行的做法就是我们可以生成很多轨迹,然后把轨迹都叠加起来。比如我们可以从s4开始,采样生成很多轨迹,把这些轨迹的回报都计算出来,然后将其取平均值作为我们进入s4的价值。这其实是一种计算价值函数的办法,也就是通过蒙特卡洛(Monte Carlo,MC)采样的方法计算s4的价值。
- 贝尔曼方程:定义了当前状态与未来状态之间的关系。未来奖励的折扣总和加上即时奖励,就组成了贝尔曼方程
- 贝尔曼方程就是当前状态与未来状态的迭代关系,表示当前状态的价值函数可以通过下个状态的价值函数来计算。

- 贝尔曼方程推导

- 解析解求价值函数
- 解析解求价值函数设计到 矩阵求逆,导致通过解析解去求解的方法只适用于很小量的马尔可夫奖励过程

通过迭代方法计算马尔科夫奖励过程的价值
- 蒙特卡洛方法就是当得到一个马尔可夫奖励过程后,我们可以从某个状态开始,把小船放到状态转移矩阵里面,让它“随波逐流”,这样就会产生一个轨迹。产生一个轨迹之后,就会得到一个奖励,那么直接把折扣的奖励即回报
算出来。算出来之后将多个轨迹的回报积累起来,得到回报Gt。当积累了一定数量的轨迹之后,我们直接用Gt除以轨迹数量,就会得到某个状态的价值。 - 蒙特卡洛方法的背后是大数定律,取很多轨迹的回报 再除以总数求得平均作为最后的估计值

- 通过动态规划 迭代贝尔曼方程
- 在强化学习中,“自举”通常是指利用现有的估计(如当前的Q值或价值函数)来改进未来的估计。这种方法是基于递归的思想,其中估计值会根据自己的估计来进行更新,逐步逼近正确的值。
- 通过自举(bootstrapping)的方法不停地迭代贝尔曼方程,当最后更新的状态与我们上一个状态的区别并不大的时候,更新就可以停止,我们就可以输出最新的V’(s)作为它当前的状态的价值。这里就是把贝尔曼方程变成一个贝尔曼更新(Bellman update),这样就可以得到状态的价值。

2.2 马尔科夫决策过程
- 马尔科夫决策过程:在马尔科夫奖励过程的基础上加入动作元素
- 在马尔可夫奖励过程(MRP)的基础上加入动作,就得到了马尔可夫决策过程(MDP)五元组<S,A,P,R,γ>
- 马尔可夫过程/马尔可夫奖励过程的状态转移是直接决定的。比如当前状态是 s,那么直接通过转移概率决定下一个状态是什么
- 对于马尔可夫决策过程,它的中间多了一层动作 a,即智能体在当前状态的时候,首先要决定采取某一种动作,这样我们会到达某一个黑色的节点。到达这个黑色的节点后,因为有一定的不确定性,所以当智能体当前状态以及智能体当前采取的动作决定过后,智能体进入未来的状态其实也是一个概率分布。
- 在当前状态与未来状态转移过程中多了一层决策性,这是马尔可夫决策过程与之前的马尔可夫过程/马尔可夫奖励过程很不同的一点。在马尔可夫决策过程中,动作是由智能体决定的,智能体会采取动作来决定未来的状态转移。

状态价值函数与动作价值函数
- 状态价值函数

- 动作价值函数


贝尔曼期望方程

备份图
-
备份类似于自举之间的迭代关系,对于某一个状态,它的当前价值是与它的未来价值线性相关的

-
这页的图很清晰,可以很好的理解状态价值函数和动作价值函数的关系
-
链接在此,建议反复品读 2.3.5 备份图:


2.3 预测和控制的概念
- 预测(评估一个给定的策略):指给定一个马尔可夫决策过程以及一个策略 π \pi π,计算它的价值函数输入是马尔可夫决策过程和策略,输出是价值函数 V π V_\pi Vπ
- 控制(搜索最佳策略):控制就是我们去寻找一个最佳的策略,然后同时输出它的最佳价值函数以及最佳策略。输入是马尔科夫决策过程,输出是最佳价值函数和最优策略
- 预测问题是给定一个策略,我们要确定它的价值函数是多少。而控制问题是在没有策略的前提下,我们要确定最佳的价值函数以及对应的决策方案。实际上,这两者是递进的关系,在强化学习中,我们通过解决预测问题,进而解决控制问题。

2.4 动态规划
- 动态规划(dynamic programming,DP)适合解决满足最优子结构(optimal substructure)和重叠子问题(overlapping subproblem)两个性质的问题。
- 最优子结构意味着,问题可以拆分成一个个的小问题,通过解决这些小问题,我们能够组合小问题的答案,得到原问题的答案,即最优的解。
- 重叠子问题意味着,子问题出现多次,并且子问题的解决方案能够被重复使用,我们可以保存子问题的首次计算结果,在再次需要时直接使用。
- 马尔可夫决策过程是满足动态规划的要求的,在贝尔曼方程里面,我们可以把它分解成递归的结构
- 当我们把它分解成递归的结构的时候,如果子问题的子状态能得到一个值,那么它的未来状态因为与子状态是直接相关的,我们也可以将之推算出来
- 价值函数可以存储并重用子问题的最佳的解。动态规划应用于马尔可夫决策过程的规划问题而不是学习问题,我们必须对环境是完全已知的,才能做动态规划,也就是要知道状态转移概率和对应的奖励。使用动态规划完成预测问题和控制问题的求解,是解决马尔可夫决策过程预测问题和控制问题的非常有效的方式
2.5 策略评估
- 已知马尔科夫决策过程和策略,计算状态价值函数的过程就是策略评估,也被称为价值预测,也就是预测我们当前采取的策略最终会产生多少价值
- 策略评估:已知策略,计算状态价值函数
- 策略评估就是给定马尔可夫决策过程和策略,评估我们可以获得多少价值,即对于当前策略,我们可以得到多大的价值。
- 我们可以直接把贝尔曼期望备份(Bellman expectation backup) ,变成迭代的过程,反复迭代直到收敛。这个迭代过程可以看作同步备份(synchronous backup) 的过程


2.6马尔科夫决策过程控制
-
最优价值函数:搜索一种策略 π \pi π让每个状态的价值最大, V ∗ V^* V∗就是到达每一个状态,它的值的最大化情况。 在这种最大化情况中,我们得到的策略就是最佳策略
-
最佳策略使得每个状态的价值函数都取得最大值

-
一点疑问:为什么根据最优策略得到了最佳价值函数,还需要通过对Q函数嘴的话来得到最佳策略?

答:
尽管价值函数可以提供状态的预期回报信息,但并不直接给出在特定状态下应采取的最佳动作。Q函数则提供了状态-动作对的预期回报,这使得我们能够通过选择具有最高Q值的动作来确定最优策略。
价值函数本身并不提供动作选择的信息。而Q函数则直接关联到状态-动作对,能够明确指出在给定状态下应该采取哪个动作以获得最大的预期回报。这种直接的动作指导是价值函数所不具备的
- 搜索最佳策略有两种常用的方法:策略迭代和价值迭代
- 控制(搜索最佳策略):控制就是我们去寻找一个最佳的策略,然后同时输出它的最佳价值函数以及最佳策略。
- 可以通过策略迭代和价值迭代来解决马尔可夫决策过程的控制问题
2.7 策略迭代
- 策略迭代由两个步骤组成:策略评估和策略改进(policy improvement)
- 策略评估:当前我们在优化策略,在优化过程中得到一个最新的策略。我们先保证这个策略不变,然后估计它的价值,即给定当前的策略函数来估计状态价值函数
- 策略改进:得到 状态价值函数后,我们可以进一步推算出它的Q函数。得到 Q 函数后,我们直接对 Q 函数进行最大化,通过在 Q 函数做一个贪心的搜索来进一步改进策略。
- 在策略迭代里面,在初始化的时候,我们有一个初始化的状态价值函数 和 策略 ,然后在这两个步骤之间迭代


2.8 贝尔曼最优方程


- 贝尔曼最优方程表明:最佳策略下的一个状态的价值必须等于在这个状态下采取最好动作得到的回报的期望。 当马尔可夫决策过程满足贝尔曼最优方程的时候,整个马尔可夫决策过程已经达到最佳的状态。
2.9 价值迭代
- 最优性原理

- 价值迭代:价值迭代就是把贝尔曼最优方程当成一个更新规则来进行

- 为了得到最佳的
V
∗
V^*
V∗,对于每个状态的
V
V
V,我们直接通过贝尔曼最优方程进行迭代,迭代多次之后,价值函数就会收敛。这种价值迭代算法也被称为确认性价值迭代(deterministic value iteration)

2.10 策略迭代和价值迭代对比
- 策略迭代:先进行策略评估(即对当前已经搜索到的策略函数进行估值,得到状态价值函数),之后执行策略改进(改进Q函数),即把 Q 函数算出来,进行进一步改进,不断重复这两步,直至策略收敛
- 价值迭代:直接使用贝尔曼最优方程进行迭代,从而寻找最佳的价值函数。找到最佳价值函数后,我们再提取最佳策略
- 对于预测问题,即策略评估的问题,我们不停地执行贝尔曼期望方程,这样就可以估计出给定的策略,然后得到价值函数。对于控制问题,如果我们采取的算法是策略迭代,使用的就是贝尔曼期望方程;如果我们采取的算法是价值迭代,使用的就是贝尔曼最优方程


- 策略迭代:

- 价值迭代:


- 价值函数的迭代完全基于当前价值函数,无关策略
- 价值迭代做的工作类似于价值的反向传播,每次迭代做一步传播,所以中间过程的策略和价值函数 是没有意义的。
- 因为价值迭代没有策略评估的部分 没有多次迭代状态价值函数,导致估计不准,因此中途的策略和价值函数是没有意义的
- 策略迭代的每一次迭代的结果都是有意义的,都是一个完整的策略。


3322

被折叠的 条评论
为什么被折叠?



