【强化学习】第三章:马尔可夫决策过程(MDP)、贝尔曼期望方程、贝尔曼最优方程

58 阅读32分钟

说明:本篇非常基础也非常难,但是本篇是整个强化学习的基石,务必非常清晰得弄懂本篇的所有知识点,后面的学习才会一马平川。

一、本章学习内容介绍

学习强化学习,我们一般是从有模型过渡到无模型这么一个过程。因为有模型的强化学习比较简单。所以本篇学的是有模型的强化学习,从简到繁嘛。

有模型指的是不需要和环境进行交互,就自动有state-action-reward的序列过程,比如生活中的打简单的小游戏、下象棋等都可以用有模型的强化学习来解决。我们具体的解决流程是:

(1)先把生活中问题抽象成一个数学问题,具体这里就是抽象成一个MDP问题,也就是用MDP来对生活问题进行数学描述
(2)那解决MDP问题就变成了数学上的最优化问题,我们再用数学中的一些优化算法,比如动态规划(Dynamic Programming)、迭代学习(如Q-learning),来求解这个最优化问题,这样求解出来的数学答案,就是解决我们生活中实际问题的最优答案

本篇只讲抽象成的数学问题:马尔可夫决策过程(MDP问题) ,下一篇章讲MDP问题的解:动态规划。下图是本篇章在鲁鹏老师课件中的位置,通过下图也可以对强化学习的全部内容有一个大致了解:

对于不需要和环境进行交互、或者说环境是完全可观测的强化学习问题,我们一般都给它定义成MDP问题,MDP是这类问题的理想化数学表示形式。这种能定义成MDP问题的强化学习我们叫有模型的强化学习。对于无法获取马尔可夫决策过程的问题,我们就得用无模型的强化学习算法来解决,比如蒙特卡罗估计(Monte-Carlo Estimation)、时间差分(Temporal Difference)估计等,这些在第五、六章节讲。也就是本系列的第三、四章节讲有模型的强化学习,第五、六章节讲无模型的强化学习。

二、从生活中的小例子-->MDP问题-->MDP框架

我们是把生活中的问题转化成MDP问题,所以这里我先展示一个生活中的小例子,通过这个例子引出什么是MDP。
下图是sliver课件中的例子,我也以这个例子为例进行类比讲解。因为后面还会牵扯到很多计算和数学公式,使用这个例子我们就可以和Sliver的课件对答案,以防讲解有误。

这个学生MDP例子,你完全可以迁移到打简单的小游戏、棋牌等例子中。

1、初步解读学生MDP例子
这里主要目的是引出强化学习的一些入门概念,比如:agent、马尔科夫决策链、幕、分幕(trial)、Trajectory、chain、path、trace等概念:

(1)你可以把这个小学生看成一个Agent,一个智能体,那上图1也是一个系统。所以有时我们也给学生MDP叫系统。

(2)上图2是直观的展示,这个系统的状态(state)、动作(action)、奖励(reward)三个因素是如何发生的。

(3)上图3是从这个系统中的一个随机采样。

(4)假如我们自己就是这个小学生,我们在上左图随机走一圈,也就是随机采样,就会生成一条具体的马尔可夫决策链,如上图右下角的链条。这样的链条我们叫马尔可夫决策链。这个采样过程叫马尔可夫决策过程, Markov Decision Processes, 简称MDP。当我们多次采样,就会生成多条马尔可夫决策链,此时每条链我们叫它,多次采样叫分幕。读论文时episode就是幕的意思,有的论文里用trial,trial也是幕的意思。你只要记住有终止状态(terminal state)的MDP链就是一个episode(或者trial)即可。也所以有终止状态的任务我们叫episodic task

通俗的理解就是:一条马尔科夫决策链就是这个小学生过了一天。分幕就是这个小学生过了多天。你类比到游戏里就是打一局游戏和打多局游戏的意思。

(5)但是有的游戏是没有终止状态的。或者链条足够长,我们就也假设是没有终止状态的情况。比如股票数据,只要股票不退市、股市不关停,就会一直有数据,我们就可以认为这样的场景就是没有终止状态的MDP链。我们给没有终止状态的任务叫continuing task

对于没有结束状态的场景,强化学习中还有Trajectory、path、trace等概念来描述:
如果你只采样一步或者几步,但是就是没有到游戏结束状态,比如在C2状态做了study动作到达C3状态,并获得了-2分的系统奖励,这个state-action-reward过程就是一个Trajectory,有的地方叫path、chain,还有叫trace的。所以Trajectory通俗理解就是s,a,r,s,a,r....chain。当然如果你采样到游戏结束那就是一个episode(trial)。

(6)其实在实际中,我们一般是不去区分episodic task和continuing task的,因为:
一是,我们可以人为把episodic task转化为continuing task:比如,可以人为将终止状态设置为absorbing state,也就是我们在设置状态转移矩阵时,可以让这个状态的所有动作对应的下一个状态都还是这个状态。或者可以将这个状态对应的动作集合设置为“回到原地”这样的唯一一个action。同时把终止状态的系统奖励设置为0。这样episodic task就转化成了continuing task。
二是,我们更加经常做的是把terminal state也看成是一个普通状态(normal state)。普通状态就会有对应的策略,如果策略好的话,agent是可以跳入terminal state,收集正的奖励reward。如果策略不好的话,agent还能跳出来,改进策略。所以我们也经常把terminal state看成是一个normal state。具体怎么做主要是看你的任务。

至此,我们通过学生例子,把强化学习中的一些基本概念过了一遍,这些名词都不难理解,但大家要清晰,尤其是英文叫法,方便你以后看相关论文时不迷惑。

2、从学生例子中,抽取MDP和策略Policy的数学定义
上面我把这个小学生看成一个智能体agent,那么MDP中的行动action,就是由这个智能体做出的,所以我们还得引入策略(Policy)这个概念。就是这个agent要按照某个策略来做出行动。下面用数学语言进一步描述MDP和Policy:

3、状态(state)和行动(action)都是有限的

本例中只有5种状态:fb,c1,c2,c3,sleep,你可通俗理解为:上网,上语文,上数学,上英语,睡觉这5种状态。
行动恰巧也只有5种行动:do_fb,quit, study, do_sp, pub,你可以通俗理解为:去上网,离开,去学习,去睡觉,去酒吧。
一个状态可以对应多个动作,一个动作也可属于多个状态。

因为状态和动作都是有限的,所以所有的状态叫状态空间state space。每个状态下可以采取的动作叫状态s下的动作空间action space。

4、策略Policy:智能体是如何做出行动的?
智能体在某个状态下做出某个动作,是由智能体的策略来决定的。智能体只需要基于当前状态即可决定其行动,因为状态具有马尔可夫性(Markov property),马尔科夫性就是当前状态就已经充分反映了过去的所有过去即当下、未来只与当前有关(memoryless property)。所以智能体只需要根据当前的状态就可以做出行动。

智能体在当前状态下的动作是由智能体的策略函数(Policy)来决定的。策略函数的输入是智能体的当前状态s_t,输出当前动作a_t的概率。因为是概率,所以策略可以分确定性策略随机策略

也所以,智能体的策略函数可以写成表格的形式。根据表格,只需要查询当前状态,就可以知道所有动作的概率值。如果概率值是0和1就是确定性策略,0-1之间就是随机策略:

说明:

(1)上图是策略Π=0.5的策略函数。不同agent可以有不同的策略函数。一个agent只能有一个策略函数。
通俗理解就是不同人会有不同的策略函数,比如小白的策略Π就比较low,只能得到很少的奖励;高手的策略Π非常厉害,可以得到很高的奖励。所以小白和高手的策略函数是不同的。就是小白和高手拥有的是不同的Π。
同一个人在一局游戏中只会有一个策略Π。比如小白第一次玩这个游戏,没经验,他使用的策略Π很low,得了很低的奖励。当这个小白打了无数次游戏后,他有经验了,他在下一轮游戏中就会采取很厉害的策略Π,这个小白就变成了高手。所以小白变高手的过程也是不断更新自己的策略的过程。

(2)以后我们要寻找最优策略时,找的就是确定性策略。这个后面学了状态价值后再继续展开讲。

(3)强化学习的终极目标是寻找最优策略
策略是Intuitive representation。意思就是策略是指导action的。所有action都是在某个policy下做出的。不同的策略会得到不同的Trajectory(path/trace)。到后面我们学价值了后,就知道不同的Trajectory对应着不同的价值。不同的价值反过来又可以评价这个police的好坏。这里先点到为止,相关知识点本篇后面逐步一一道来。

5、状态迁移:状态是如何迁移的?
在MDP中,Agent是在某个状态下、做出某个动作后,才发生状态迁移的。在MDP中,状态转移是不需要过去的信息。就是此前系统处于什么状态、执行了什么动作都不重要。因为马尔可夫链有马尔可夫性。未来St+1的状态只与St有关。就是未来只与当下有关。也所以我们会经常把生活中的很多事情抽象成马尔科夫链,抽象成这个数学工具后,复杂的事情就变得简单了。t+1时刻的状态只与t时刻的状态有关,与其他状态无关

(1)从系统图中我们可以看到状态迁移也是分确定性状态迁移随机性状态迁移

确定性状态迁移,得到的st+1就是一个确定的状态。如上图1中的例子,在C1状态下,只要agent做了study动作,那agent的状态就一定会迁移到C2状态。

随机性状态迁移,st+1就是一个概率值,就是一个随机状态。如上图2中的例子,在C3状态下,只要agent做了pub动作,那agent的状态会被系统以0.2\0.4\0.4的概率随机迁移到C1\C2\C3状态。这个概率分布你可以认为是系统提前预设的偶然性

(2)状态迁移函数
不管是确定性状态迁移还是随机性状态迁移,我们都可以把它统一到状态迁移函数中,状态迁移函数的输入是当前状态s_t和当前动作a_t,输出是下一个状态s_t+1的发生概率。

确定状态迁移就是指Pa矩阵中,状态与状态之间的转化概率是1的那些情况(当然喽,概率为1嘛)。随机状态迁移是指哪些在0-1之间的情况,就是状态与状态之间的转化是一个概率值。上图中概率值你可以认为是系统提前预设的

(3)继续深入分析:
从上面的分析我们可以知道,Pa是在状态和动作都已经发生的条件下,下一个状态s'的迁移概率。
现在假设我只知道t时刻的状态s,我不知道t时刻的s状态下,agent做了什么action,那我能不能求出t->t+1时刻,状态s是如何迁移到s'的?当然可以,此时我们假设策略Π是固定的-->策略固定了,动作就固定了-->动作固定了,下一时刻状态也就固定了:

Pπ矩阵是指在系统策略固定的情况下,系统状态从t时刻到t+1时刻的状态迁移矩阵。因为策略是一个随机性策略,也就是动作是随机的,那动作随机就导致状态迁移也是随机的。所以Pπ矩阵中的状态迁移都是随机迁移的。

(4)一定要注意区分Pa矩阵Pπ矩阵,尤其是后面数学推导部分,经常有这两个符号出现。

6、奖励Reward:系统是如何给与奖励的?
奖励是强化学习中的灵魂,就类似监督学习中的损失函数一样,它是序列决策中的牵引力量,所以系统的奖励设计和分配是和模型效果强相关的!奖励可以解读为是human-machine interface,with which we can guide the agent to behave as what we expect。就是我们可以通过涉及reward来引导agent的action。

(1)在强化学习中,我们一般假设奖励的发放是确定性的,所以奖励发生的时间我们一般是定义在t+1时刻得到t时刻的奖励。所以,下图的定义1,silver课件中的定义,这个奖励函数的输出是一个t+1时刻的期望奖励。因为是期望奖励,所以silver的奖励函数的输入只需要当前状态st和当前动作at。但有的资料用的是定义2,奖励函数的输入是st、at、st+1,输出是t时刻的奖励:对于确定性的状态迁移,只要agent处于状态s,并执行了动作a,那状态就一定转移到s',到s'就是t+1时刻,那自然也得到了t时刻的奖励。此时的奖励分数只于s和a有关。定义1中的期望E里面就是一个实数,E(实数)=这个实数。定义2中的s'就可有可无,因为一定会走到s'的嘛。

对于系统设置的随机状态迁移,Rt+1不仅与s、a有关还和系统迁移有关,所以定义1是一个求期望的过程。如上图A处所示,系统给的R+=1是指只要在C3状态并且执行了了pub动作,就会得到1分的奖励。所以此时你用定义1计算时就不用求期望了,这个奖励值就已经是一个期望值了。但是如果你要用定义2,由于状态转移是系统自动执行的,所以此时输不输入s'都无所谓,在状态C3下执行pub就是奖励1分。如果你要计算t+1时刻的奖励,此时你才需要分开计算奖励。

可见两个定义在本质上其实是不冲突的,就是使用场合不一样。

(2)MDP中的奖励也是分Ra和Rπ的:
你可以类比状态转移的Pa和Pπ。Ra表示agent处于状态s,并执行了动作a后可以获得的系统奖励的期望。Rπ则表示策略固定的情况下的奖励,下图是两种奖励的计算过程:Ra是MDP定义的系统即时奖励。Rπ是在π策略下的系统奖励。 一定要注意区分,后面计算要用到。

7、小结:MDP框架
至此,我已经用数学语言描述智能体在环境中的行动。(你可以把状态s和奖励r看成环境Environment):
一是把silver课件中的MDP定义中出现的数学符号都一一详细解释了一遍,这些符号是后面推导价值函数的基础,一定要搞清楚。(除了γ,这个放后面讲状态收益时讲)
二是重点拆解了:
(1)策略是如何决定行动的?
(2)状态是如何迁移的?
(3)奖励是如何发放的?

至此我们总结马尔可夫决策过程就是:智能体根据策略π(a|s)采取行动(行动可以是确定的行动也可以是有概率分布的随机行动)-->系统根据当前状态和行动进行状态转移Pa(这个转移也可以是确定性转移,也可以是系统内部制造的随机转移,形成概率分布)-->系统根据新的状态s'给agent发奖励。如此反复的过程,就是马尔可夫决策过程:

这就是MDP框架,所有的MDP链都是在这个框架中随机采样得到的

由此,我们把生活中的问题抽象成了一个MDP问题,并从中抽取MDP框架中各个环节的计算公式。

三、从MDP目标-->状态收益-->状态价值函数-->状态价值函数的贝尔曼期望方程-->状态价值函数的贝尔曼方程

MDP的目标是奖励reward最大化。类比这个小学生就是如何让自己的一天得到更多的奖励。
这个小学生想得到最多的奖励,就要找到最优策略(optimal policy)。通过这个最优策略,这个学生就会做出最优的动作-->最优的动作会走出一条最优的状态序列-->最优的状态序列就是获得奖励最多的序列。

假设我们自己就是这个小学生,假设我们现在在C2状态:

可见,每个状态的奖励不仅仅是达到这个状态能获得的系统奖励,还包括这个状态之后的其他状态可能获取的奖励。那我们把这些所有可能获取的奖励都算上,那就是这个状态的收益了。所以这里我们要引出了一个新概念:状态收益return。有了状态收益,我们的行动action就不会只参考下一个状态s'的系统奖励了,而是可以跟着下一个状态的收益值走,就是选择收益高的状态,而非系统奖励高的状态。这样就能做到为获取未来更多的奖励,可以暂时牺牲当前奖励,从而使最终奖励达到最多!

1、状态收益(return)
(1)如何度量状态收益

状态收益的公式和计算现金的当前价值一模一样,所以γ也叫折现率。

(1)折扣因子γ的取值要在0-1之间。
一是,γ的存在是为了防止连续性任务的收益变得无穷大。在连续性任务中,如果γ=1,那收益就会发散到无穷大。所以γ是为了防止收益发散的。γ在0-1之间可以迅速弱化后面收益的比重,如上图r=0.5,在第5步的奖励就几乎可以被忽略了。
二是,γ一定程度上也可以表示这个智能体是走一步考虑后面的几步? 当γ=0表示智能体只往后看一步。就是这个智能体只考虑迁移到下一个状况可以得到多少系统奖励。下一个状态的系统奖励是Rt+1嘛。此时这个智能体追求的只是眼前奖励的最大化。当γ=1表示智能体一直看到了游戏结束的那步。此时这个智能体追求的就是全局游戏的奖励最大化。

(2)折扣因子γ的取值是门艺术
因为,折扣因子γ和系统即时奖励R两者共同决定Gt的。以后我们策略提升的时候,你就知道策略是根据Gt值的大小来Intuition的,行动又是根据策略Intuition的。所以Gt的大小至关重要。
以后我们学贝尔曼公式了,就又指导Gt和Gt+1又是关联的。所以当我们想让agent按照我们人类认为的路径走的时候,你就得把你的路径上的状态的Gt设计成最大,这样agent才能按照Gt来走。而你如何把你的Gt设计成最大,就是由折扣因子γ和系统即时奖励R两者共同决定的。
比如,如果你想让agent走到s状态,那你除了规定进入状态s会得到比如1分的奖励,你还可以不用奖励,而是设置γ大一点,这样根据最终目标的奖励,状态s的Gt自动也会变大,这样agent照样可以被Gt牵引着走入s的。

所以,从这里我们也可以看到,强化学习本质上就是一个序列决策问题,是一个reward的设计和分配问题,所以γ的取值要和reward搭配,否则效果欠佳!

(3)状态收益和智能体的策略函数状态迁移函数有关
只有智能体的随机策略固定下来+系统的随机状态迁移也固定下来,这样生成的一条具体的状态序列中,我们才能计算出每个状态的收益值。所以,每个状态的收益是要从一条条具体的马尔可夫决策链中算得的。而由于策略的随机性和状态迁移的随机性,状态收益也会呈现出随机性的特点!

那是不是无法度量系统中各个状态的收益了?!不是的,因为策略函数是一个概率分布、系统迁移也是一个概率分布,这些因素虽然都是随机性的,但我们是知道其概率分布的。知道概率分布不就可以用期望来度量了!所以此处我们再引入一个新概念:状态价值函数。也所以状态价值函数就是用来计算状态收益的。

2、状态价值函数
状态价值函数是收益(return)的期望值,其数学定义如下:

上图红框中的公式就是状态价值函数

上图举了C3状态的例子:在St=C3时,C3的收益的期望就是就是C3的状态价值。可见,在策略函数随机、系统状态迁移随机的双随机下,我们是可以通过求收益的期望来计算状态的长期价值的。

3、状态价值函数的贝尔曼期望方程
前面我们写出了状态价值函数的数学表达公式,这个公式是个期望,但是我们又不知道概率分布,所以是没法计算的。除非我们随机生成足够多条幕,然后逐幕计算链条上的各个状态的收益,然后求一个平均当作期望。但是这种操作很多情况下是不可行的。所以急需另外的求解方法。于是状态价值函数的贝尔曼期望方程诞生了: 

上图就是状态价值函数的贝尔曼期望方程的推导过程,其中最难的部分就是如何将概率条件从st=s变成st+1=s'的形式。换句话说,就是要进入下一个时刻了,该下一时刻的状态的价值函数出场了:可见,贝尔曼期望方程是对状态价值函数的进一步推导得到的利用贝尔曼期望方程就可以让状态价值函数变得可以求解。因为贝尔曼期望方程把状态s的价值函数和下一时刻所有可能的状态s'的价值函数之间的关系建立起来了。本来是无限计算的状态收益,我们通过贝尔曼期望方程,将其转化为两步就可以列出状态价值之间的关系。下面针对小学生的例子,用贝尔曼期望方程手动列出所有状态之间的关系:五个方程五个未知数,是一个一次线性方程组,用高斯消元法解即可。上图我用了矩阵求逆解。

所以贝尔曼期望方程能够将无限的计算转换为有限的联立方程。尽管问题中存在随机性行动、随机性状态迁移,我们还是通过有限的联立方程组求出了状态价值。

4、状态价值函数的贝尔曼方程
贝尔曼期望方程是对所有状态s和所有策略Π都成立的等式。当我们把策略的随机性打掉后,贝尔曼期望方程就会坍塌成贝尔曼方程。贝尔曼方程可以用矩阵形式来表示,这样就可以推导出状态价值的解析解了,这样计算就更方便了。所以下面我们继续推导贝尔曼期望方程:那现在我们直接用上面绿框中解析解来计算系统各个状态的价值,看看和Silver的课件上计算结果一样不一样:至此,我们通过贝尔曼方程,就求出了在策略Π下的状态价值。

四、行动价值函数、行动价值函数的贝尔曼期望方程

1、行动价值函数(action-value function)
只要我们能深刻理解上面讲的状态价值函数以及状态价值函数的贝尔曼期望方程,这个行动价值函数就非常好理解,下面我再给大家串联一下上面的内容,引出行动价值函数的定义:动作价值函数和状态价值函数之间的关系:

2、行动价值函数的贝尔曼期望方程

(1)和状态价值函数的贝尔曼期望方程的推导一样:

3、状态价值函数和动作价值函数之间的相互关系:

4、手动算一下小学生例子中的动作价值:

计算的对不对呢?我们验证一下:至此,我们定义了什么是动作价值函数,推导了动作价值函数的贝尔曼期望方程,梳理了状态价值函数和动作价值函数之间的关系。用学生的例子计算了这个学生的动作价值,并进了的验证。可以理解为前期的准备工作做完了,暂告一段落!下面我对上面的内容做一个总结:

五、最优策略和最优价值函数->贝尔曼最优方程-> 贝尔曼最优方程的求解->最优动作->最优策略

1、最优策略和最优价值函数(1)上图中的牌π、π'、π1、π2、π3、π* 指的都是不同的策略。图中的曲线是在不同策略下计算出来的系统所有状态的价值。

(2)上左图中,在某个状态下Vπ'(s)>Vπ(s),在另外一些状态下Vπ'(s)<Vπ(s)。比如状态L1在策略π'下的价值大于π策略下的价值,但是状态L2却是π策略下的价值大于π'下的价值。此时策略π和策略π'是没有优劣之分。就是两个策略都一样,没有好坏。

(3)上中图,系统中的所有状态在π'策略下的价值都大于π策略下的价值,即Vπ'(s)>Vπ(s)。此时我们可以说策略π'优于策略π,就是策略π'比策略π更好。这是因为无论从哪个状态开始,使用策略π'获得的奖励之和的期望值都比使用策略π获得的大(或相等)。

(4)上右图,当所有状态下的某个策略的状态价值函数的值都大于其他任何策略时,这个策略就是最优策略,我们一般用π*表示。最优策略下的状态价值函数叫最优状态价值函数optimal state-value function。我们一般用v*来表示最优状态价值函数。

在MDP中,至少存在一个最优策略。而且最优策略是确定性策略。在确定性策略下,每个状态下的行动是唯一确定的。据说可以用数学公式来证明在MDP中至少有一个最优的确定性策略。感兴趣的同学可自行查找资料,这里我省略了。

“在MDP中至少存在一个最优策略,而且最优策略是确定性策略”,这句话的言外之意就是,一个系统可能会存在多个确定性的最优策略,比如Vπ'(s)=Vπ"(s)这种情况,此时我们可以说策略π'和策略π"是同样好的最优策略。此时π'和π"虽不同,但二者对应的状态价值都是一样的!就是二者的价值函数的值是相同的!就好比两个高手玩同一款游戏,两个高手的策略虽然不同,但二人都能打到同一个高分,那这两个人的策略就都是最优策略,二人的价值函数的值都是相同的。

2、贝尔曼最优方程
一是,我们要获得最多奖励-->就要找到最优的策略-->而最优策略是使所有状态下的状态价值函数最大化的策略-->所以问题转化为求最优状态价值函数的问题

二是,动作价值函数是状态价值函数的一个组成部分,最优状态价值知道了-->最优动作价值自然就知道了-->知道了最优动作,我们就立刻能得到最优策略-->也就获取了最多的奖励。

这也是为什么我们前面花极重的笔墨一直在算状态价值、动作价值的原因。

由于我们前面推导的状态价值函数Vπ(s)的贝尔曼方程动作价值函数qπ(s,a)的贝尔曼方程是对所有的策略(确定/随机)都成立的方程,那对最优策略π*自然也成立。但是最优策略π*是一个确定性策略,所以状态价值函数Vπ(s)的贝尔曼方程和动作价值函数qπ(s,a)的贝尔曼方程会坍塌成一个更加简单的形式:上面4个公式就是贝尔曼最优方程。前面理解的透彻后,这里就会秒懂。下面我用学生的例子,根据最优状态价值函数的贝尔曼最优方程,列出最优策略下的状态价值函数之间的关系:

3、贝尔曼最优方程的求解

上图中的max表示要分别计算后,再进行对比,取二者中的最大值,所以max函数是非线性的,所以上面的方程组是非线性方程组。那这样的方程组如何求解呢?最原始的方法就是手动配对,2x2x2x2=16组方程组,然后分别计算,取最大的那组解。手动配对虽然容易理解,但实在低效,实际中,我们一般都是用值迭代(Value Iteration),通过反复更新逼近最优解,直到收敛:

4、最优动作
求出了最优状态价值,就等于求出了最优动作价值:上图A处:这是silver的课件,是2015年DeepMind发布的公开课课件,十年了,有多少人看,居然没有一个人发现里面这个小小的错误!他忘记加1分的系统奖励了!

5、最优策略
知道了最优动作价值,就是知道了最优策略:最优策略对应的就是最多的系统奖励。也就是我们的智能体从小白变成了高手。

六、本篇总结

1、本篇的重要概念:state value,状态价值,也叫状态值,是agent从一个状态出发,沿着一个策略,agent得到奖励回报的平均值(或者说是期望值)。

2、本篇的讲了强化学习中的一个重要工具是:贝尔曼方程、贝尔曼期望方程、贝尔曼最优方程。这些此后我们都统称贝尔曼公式。从本篇的推导中可见,贝尔曼公式的形式是有多种的,此后我们要不断使用这个工具,你需要根据情况灵活运用。

3、为什么要去计算状态值呢?因为状态值可以去评价一个策略是好还是不好。状态值越高,说明对应的策略越好。状态值越低,说明agent按照这个策略得到的奖励比较少,说明这个策略不好。

4、工具(贝尔曼公式):是用来计算状态值的。贝尔曼公式可以表示出一个系统中所有状态之间的关系。利用贝尔曼公式就可以求出给定策略下的系统的所有状态的状态值。这样通过状态值就可以评价这个策略是否是好的策略。

5、所以,求解贝尔曼公式,进而得到一个策略对应的状态值的过程,也叫策略评价policy evaluation。

6、所以我们都是先进行策略评价-->得到状态值-->基于状态值改进策略,如此循环,就可以得到一个最优的策略。

7、强化学习的终极目标是:求解最优策略。

8、agent沿着最优策略可以得到最大的状态值。其他所有非最优策略都不能得到最大状态值。所以最优策略对应的是最优状态值,同理,最大状态值对应的也是最优策略。

9、工具(贝尔曼最优方程)的求解就是求最优策略。贝尔曼最优方程是贝尔曼期望方程的一个特殊情况。一个贝尔曼期望方程对应一个策略,所以贝尔曼最优方程对应最优策略。所以我们求解贝尔曼最优方程就是求解最优策略。

===============本篇完结。