8.1.模型是什么?
时间:2023-04-21 06:57:01 | 来源:网站运营
时间:2023-04-21 06:57:01 来源:网站运营
8.1.模型是什么?:Model-Based RL,顾名思义即“基于模型的强化学习”;Model-Free RL,即“无模型的强化学习”,二者的核心差别就在于有没有Model。因此,Model究竟是什么便是MBRL中第一个,也是最重要的一个问题。
在本章中,我们首先要说明模型是什么,其次要说明模型能用来做什么。然后,我们便可以基本理解MBRL的思想。因此,本节在本章之中格外重要。在机器学习、深度学习领域,“模型”的概念非常广。当我们面对一个猫狗分类的监督学习问题时,我们完全可以说自己训练了一个CNN的模型。如此看来,在MFRL中,我们也要训练用来表示价值或策略的神经网络,也能称得上是一个“模型”,那么,这怎么能叫做“无模型的算法”呢?
必须要强调,MBRL中的“模型”指的是为环境,也就是我们要求解的MDP本身进行建模。我们说过,MDP可以由六元组(S,A,P,R,γ,Done)定义。当我们说“为环境建模”的时候,主要指的是“状态转移关系”P以及“奖励函数”R。在2020年ICML大会上关于MBRL综述中,给出了如下的说明:
显然,根据MDP的具体性质,环境转移关系是否随机、是否时齐,动作和状态分别是连续的还是离散的,我们分别可以定义出不同的模型形式。
1、各种模型及其基本用法
比如,当S和A都是离散变量(即总数有限的名义变量)时,我们可以将真实转移关系$P_{s,s’}^a$定义为一个|S|×|A|×|S|大小的表格(因此我们也将其称之为Tabular MDP),将真实的奖励函数$R_{s,a}$定义为一个|S|×|A|的表格。按强化学习的设定,我们不知道真实的表格。我们为环境建模
P_{s,s'}^a 也是一个表格的形式。若我们和真实环境交互、得到了许多环境转移数据(s, a, s’)时,我们便可以按如下方法估计这个转移关系表格:
用真实数据估计Tabular MDP模型在上图中,我们用符号M(s’|s, a)代表在状态s采取动作a下一个状态转移到s’的概率(即前文中习惯的Pss’),hat代表这是我们用数据估计出来的;C[s, a, s’]代表我们获得数据中(s,a,s’)的Count,即计数;Sum[s,a]代表我们在s状态采取a所有数据中获得奖励R的总和。我们显然可以看出,这个基于计数与平均值的算法是一个对真实环境的极大似然估计,并且它是无偏估计。换言之,当我们可以产生充分多数据的时候,则我们估计的
/hat{M} 与
/hat{R} 可以收敛于真实的M与P。
又比如,当状态与动作都是连续变量,且环境是一个确定性的环境时,我们可以定义真实转移关系是一个S×A→S的函数,用一个线性模型/神经网络去拟合它。与一般用线性回归/神经网络解决监督学习中的回归问题类似,我们可以从环境中收集大量(s,a,s’)数据,以均方误差(s’ – k1s-k2a-b)^2或(s’ – f(s,a))^2为损失函数拟合线性模型/训练神经网络。可以想象,当我们采样充分多数据、训练了充分多次之后,线性模型(k1s+k2a+b)/神经网络f(s,a)便可以很好地拟合出环境转移关系,对给定的(s,a)很好地预测出s’。
关于到底选择线性模型还是神经网络来拟合动作与状态都是连续的MDP,我们可以进行一个简单的辨析:显然,神经网络的拟合能力更强、能够拟合更复杂的现实环境,但是,神经网络是一个黑盒模型。当我们训练好神经网络之后,基本只能由输入(s,a)获得输出s’,而很难利用训练好的参数w。我们将这种使用模型的方式称为“黑盒模型”;相反,线性模型的拟合能力较差,在较复杂的MDP上会有较大的误差。但它是一个可解释的“白盒模型”。当我们有了线性模型的系数之后,我们可以高效地利用它求解最优策略(例如我们在第四章介绍过的LQR控制器中,最优策略即ut = Kt xt,其中K是由线性环境的系数表示出来的)。我们将这种使用模型的方式称为“白盒模型”。
还比如说,当状态与动作都是连续变量,且环境具有随机性的时候,我们可以用一个高斯过程GP去拟合它。对于给定的当前状态与动作,GP模型可以输出一个多维正态分布,作为下一个状态的预测。由于GP模型中我们可以拟合出详细的概率表达式,所以它当然可以作为“白盒模型”使用。在经典的MBRL算法PILCO(Probabilistic Inference for Learning COntrol )中,我们就采用GP为环境建模,以此辅助价值函数的拟合以及策略提升。
PILCO算法用高斯过程为环境建模事实上,我们对模型的使用方式不但与模型形式(表格型、线性函数、神经网络)也和模型是否可解释(黑盒模型、白盒模型)有紧密的关系:首先,MBRL中我们可以用模型来进行Decision-Time Planning。一般而言,能用来实时决策的模型大多是可解释的“白盒模型”,比如局部线性模型等;但是,这是与用价值函数或用策略决策完全不同的、独属于MBRL的一种决策方式,与MFRL相差甚远,所以我们会将其专门留在下一个章节中。
本章中,我们所讲的算法都像是在MFRL的基础上额外增加一个模型。模型的用法主要可以分为“黑盒模型”与“白盒模型”。其中“黑盒模型”即用来增加数据、提升数据效率,“白盒模型”则可以直接利用其表达式系数,求导等等;
本章涉及的内容中,无论是“黑盒模型”还是“白盒模型”,其形式都很像是在MFRL算法中将某个使用真实数据的步骤给替换为使用模型产生的模拟数据或是直接使用模型表达式的值。因为其与MFRL的思想衔接比较紧密、比较容易理解,所以我们将在8.2模型是使用方式中首先讲到这部分内容。总得来说,模型的使用方式基本可以分为如下三类:实时规划(全新的决策方式)、黑盒模型、白盒模型:MBRL中模型作用的主要分类上图是来自于2022年一篇MBRL的综述文章《A SURVEY ON MODEL-BASED REINFORCEMENT LEARNING》。其中列举的“模型作用”除了我们说的三类还包括Value-aware Modeling Learning(简称为VAML)。其含义是,前面所说的方法都是先用数据拟合一个模型,再替换现有MFRL算法中的步骤,而VAML则将模型的学习与算法目标结合得更紧密。比方说,如果模型是用来给价值函数传递梯度的,则模型的学习过程中也可以反过来考虑价值函数的梯度,这就是Value-aware Modeling Learning的意思。笔者认为,这仍然是将模型当成“黑盒模型”或“白盒模型”使用,属于一种模型的学习方式,而非模型的使用方式。因此我们将其放在8.3模型的学习方式中讲。
让我们总结一下本小结的内容:
首先,MBRL中的“模型”指的是拟合环境本身的模型,主要就是拟合状态-动作转移函数f(s,a)或Pss’^a以及奖励函数R(s,a)。其次,因为模型是为MDP环境建模,所以模型的分类方式与MDP的分类方式是高度重合的。比如MDP中状态与动作是连续变量还是分类变量,是否具有随机性,是否是时齐的,这都会直接决定我们选用何种形式的模型;当然,与简单为MDP定性不同,我们还要选择出具体的模型。最后,由于模型有具体的形式,所以我们可以根据其形式是否简单、是否具有可解释性将其分为“黑盒模型”或“白盒模型”。这种定性与我们能够如何使用它是息息相关的。2、更多形式的模型及变体
在大部分经典的MBRL算法中,我们都是为环境转移关系P与奖励函数R建模。但是除此以外,近年MBRL中还发展出许多其他的建模方式,其建模的对象并不是MDP定义中直接有的P与R,并且就理论而言它往往可以由MDP中其他部分算出来,显得有些“多此一举”。但是,实践证明这些建模方式对于算法的性能产生重要的提升。
比如,多步预测模型(multi-step model)。根据MDP的马氏性,我们只需要为一步转移关系建模——如果我们要预测多步建模关系,则我们只需要把上一步的输出再次作为输入,获得下一步的输出,以此类推,便可以获得多步的预测(按马氏性定义,多步的情况本来就是由概率式串联而得)。但是,模型与真实环境总是有所误差。在预测多步时,如果将有误差的一步预测值再次输入模型,可能会得到误差更大的两步误差。在多步过程中,这些误差会相互串联,最后导致巨大的误差。
为此,论文《Combating the compounding-error problem with a multi-step model》提出了多步模型。它以当前状态st与接下来多步动作(at, at+1, at+2,…)为输出,目标是预测未来多步的状态(st+1, st+2, st+3, …)。一般的一步模型拟合环境时采用类似于监督学习的损失函数,而多步模型则针对多步的特点设计了特殊的损失函数;在进行多步预测的时候,它也不会只以自身输出的一步预测为输入,而是会综合更多信息以规避各步误差串联导致的巨大误差。虽然它好像是没有利用MDP的马氏性,但实践证明其多步预测的误差往往更小。
比如,轨迹数据的生成模型。在强化学习的定义中,环境指的是可以不断交互产生数据的。即它维护一个当前状态s,而当你输入一个动作时a,它改变自身状态并输出(s’, r, Done)以及一些额外信息info。但是,倘若我们对于模型的使用方式是“黑盒模型”,即只是需要用它来以更低的成本产生更多的数据,那事实上我们不需要真正可以交互的模型,只需要模型能为我们产生可以利用的训练数据即可。我们一般将这种“模型”称为“模拟器”(即simulator)。打个简单的比方:“环境”是一个游戏,一般MBRL中的模型是近似这个游戏建立的,是一个模拟的游戏,你可以交互地操作、玩乐;而simulator则是一个游戏数据的生成器。你只能用它生成一段又一段的游戏视频,就像是看游戏主播的演示来学习技术,却不能真正动手体验这个游戏。对于“黑盒模型”来说,这种方式更加简单直接,因此其生成的多步轨迹数据也更加准确。
当然我们也要注意,不同策略的轨迹分布应该是不同的。一般的simulator要接受策略作为输入,再输出该策略与环境共同决定的模拟数据。因此我们要根据算法是on-policy还是off-policy来确定simulator的定义与用法。
比如,适用于复杂高维问题的模型。在更复杂的MDP(比如以视频图像作为输出的游戏)中,我们往往还要定义“观测”(Observation)的概念,以与具有完全信息、信息密度高、符合马氏性的状态State相区别,并将问题定义为POMDP(Partial Observed MDP)。为此,我们要定义出观测与状态之间的映射关系(表示学习Representation Learning,或是状态关于观察的后验概率模型,等等)。在以图像为输入的问题中,这类定义非常常见,几乎是解决问题的必由之路。由于这部分内容重要且复杂,所以我们将其放在8.4关于World Model的章节。在讲World Model之前,我们不会涉及到“观察”的概念,仅仅讨论“状态”。
比如,逆向模型。在MDP中,“正向”的逻辑顺序是,若我们当前处于状态s、采取动作a,则会(以一定概率分布)进入下一个动作s’。因此,一般的前向模型(forward model)接受s与a为输出,预测s’的分布。但是,我们也可以采用后向模型(backward model),即给定s’与a,推测我们要从哪个s采取a,才会到达给定的s’;又或是给定s与s’,推测当我们处于s时候要采取何种a才能实现要转移到s’的目的。(有时人们会在不同地方用Backward Model或Inverse Model分别表示不同的含义,容易引发混淆。我们强调还是要注意具体定义)。
可以想见,如果我们采用Decision-Time Planning的决策方式时,这些模型可以直接用来辅助决策(比如,当我们处于全新的状态S0,且我们的目标是到达S*时,可以用后向模型或逆向模型来推测我们中间要经过哪些状态、为此应该采取哪些动作),发挥巨大的作用。即使我们采用一般Background决策方式,这些模型也能更好地辅助策略的训练。
这方面有关论文包括《Forward-backward reinforcement learning》、《Recall traces: Backtracking models for efficient reinforcement learning》与《Bidirectional model-based policy optimization》等等。此外,在经典的world model中,研究者也提及训练逆向模型有助于更好地从“观察”中提取出真正的“状态”、学习出更好的低维表示。
总得来说,以上介绍的这些例子中,我们并不是严格地学习出MDP定义中的P与R,但它们也是与其息息相关的表达式(往往可以与其相互导出)。我们为这些部分建立了模型,并用以辅佐算法。看到这里,有的读者或许会感觉有些糊涂——我们在8.1.1中说,模型就是为MDP的环境,主要就是为P与R建模。而在本节中,我们又说模型不一定是为这两个部分建模,也可以为其他部分建模、发挥其他的作用。在许多经典的MFRL算法中,我们同样需要建立几个含义不同的网络,共同训练并发挥作用(比如DDPG要同时训练四个网络)。那么,MBRL中“模型”的严格定义究竟是什么,它与MFRL的严格分界到底在哪里呢?
事实上,由于MBRL还在快速地发展变化之中,所以目前很难为“模型”给出一个最终的、无歧义的、严格的、排他的“官方”定义。我们只能通过辨析如下一些容易产生混淆的特点,加深读者对于“模型”的理解。
3、模型的一些特点
为了更好地让读者理解MBRL中“模型”的意义,我们强调如下几点:
首先,模型不是环境本身。所谓“模型”指的是为环境建模,但它并不是环境本身。即使算法“模型”的作用仅仅是以“黑盒模型”的形式增加更多数据,它也必须是和环境有区别的。打个比方:我们要用强化学习算法训练一个能够无人驾驶的Agent。我们可以在现实世界中准备几台无人车,用其传感器收集到的图像数据作为状态,将其现实中的驾驶操作定义为动作,则这样我们便得到了一个可以交互训练的环境。但是,这样会导致无法接受的数据成本——在训练的前期,Agent输出的操作近乎于“乱开车”,或许我们每获取一百条数据就会导致一台汽车因碰撞而报废,而深度学习往往需要数以百万计的训练数据,这绝对是不合算的。因此,人们会在电脑中建立一个复杂的仿真环境,就像我们在电脑玩的赛车游戏一般可以交互操作(且比一般的赛车游戏更加精密、以贴合现实中的复杂情况)。使用了仿真环境之后,我们产生数据的成本往往只和电脑的计算成本有关,和数据具体内容(车辆碰撞、报废)无关,这无疑大大地节省了成本,让我们用纯粹强化学习训练自动驾驶成为可能。
在这种情况下,如果我们仅仅用MFRL的算法(比如PPO或DDPG)与仿真环境交互,产生数据并训练网络,则这仍然只能称作MFRL算法。我们不能因为我们模拟现实中的环境建立了仿真环境,就把“仿真环境”当成“模型”而把我们的算法定义为MBRL算法。因为在整个算法的过程中,我们都只是与仿真环境交互,而没有考虑任何“真实环境”有关的信息。本质上,我们实际上训练的并不是一个在真实环境中自动驾驶的Agent,而是一个仿真环境上的Agent(类似于游戏AI)。当仿真环境与真实环境完全一样时,Agent在现实中也能有好的表现;对于现实中存在却被仿真环境遗漏的情况,自然不能指望Agent拿出好的应对。因此,仿真环境就是MFRL中的“环境”而非MBRL的“模型”。
其次,环境也不是模型本身。这句话听起来与前一句话很像,只是将顺序调转了,似乎是一句“废话”。不过,正如上一句话是为了强调MBRL(黑盒模型)与MFRL不同,我们这里的这句话其实是为了强调MBRL(白盒模型)与最优控制算法是不同的。
我们在最早时候说过,最优控制问题的定义是求解环境表达式已知MDP的最优策略,而强化学习的定义是求解环境未知的MDP的最优策略。在强化学习中,我们又可以根据是否为环境建模分为MBRL与MFRL两大类。
因此,最优控制(完全已知环境表达式)、MBRL(对未知环境建模)、MFRL(不对未知环境建模)应该是完全不同的三类算法。但是,在许多传统的控制问题中,人们也是事先不知道环境的。此时,人们采用的传统方法一般分为两个步骤,其一是通过与环境交互产生大量数据、以此拟合出环境表达式(根据环境性质可能为表格或线性函数),其二则是用最优控制算法(动态规划或LQR)在该表达式上求解最优策略……我们也会将这种方法称为“最优控制”。那么,许多读者肯定会有疑问——既然“最优控制”中也存在未知环境、用数据拟合环境的情况,它和MBRL有什么不同呢?
在这里,我们详细地辨析一下最优控制与MBRL的区别:在最优控制中,设原本我们想求解的真实环境是(P,R),我们用数据拟合出来的是(P’,R’)表达式,那么,我们用最优控制算法求解出来的其实是(P’,R’)上最优的策略。倘若我们拟合效果较差,即(P’, R’)与(P, R)相差太多,则最优策略在真实环境上效果不佳;反之,若(P’, R’)与(P, R)比较接近,则最优策略能够在真实环境中取得较好的表现。但无论如何,我们算法事实上是在求解已知表达式的环境(P’, R’)上的最佳策略,与原本的(P, R)并无直接关系;在MBRL中,我们的目标始终是要求解真实环境(P, R)上的最优策略。为了使得这个求解的过程更加高效,我们或许会拟合出(P’, R’)以辅助这个过程。但无论如何,我们算法的目标始终是求解(P, R)上的最优策略。模型(P’, R’)仅仅用来加速或辅助我们的算法,而非算法本身的目标。
有的读者可能还是不解:(P’, R’)不也是用真实环境(P, R)产生的数据拟合出来的么?我们希望将(P’, R’)拟合得更好,这不就是为了能让解出的最优策略在(P, R)上表现得尽量好么?怎么能说最优控制算法的目标和MBRL不同呢?
我们不妨再用算法的动态过程来辨析一下二者的区别:
在最优控制中,或许环境表达式(P’, R’)是问题给定的,或许是我们与真实环境(P, R)交互产生的数据拟合出来的。但无论如何,从某一个时刻起,我们便会认定(P’, R’)是完全已知的“真实”环境。我们不会再修改(P’, R’)的表达式,一切算法也以固定的(P’, R’)表达式为前提展开。
这是一个“先产生数据拟合环境,再假定其表达式完全已知并求解最优策略”的过程(或只有后半部分)。因为从某个时刻起我们认为环境表达式完全已知,所以这被归为最优控制的范畴。在MBRL中,我们目标始终是真实的未知环境(P, R)。因此,我们会源源不断地从(P, R)中产生数据,以使得(P’, R’)拟合得更好,但我们却永远不会将(P’, R’)固定下来、甚至作为我们的目标。在讲DQN时我们说过,对于与最优控制密切相关的(s,a),我们会产生更多有关的数据、将“重要的”Q(s,a)估计得更准确。在MBRL中道理也是一样的——随着算法的迭代,我们当前的策略越来越好,则我们会产生更多“重要的”(s,a)有关的数据。这样一来,(P’, R’)中关于“重要的”(s,a)的关系就会拟合得更准,即与(P, R)更接近;而“不重要的”(s,a)有关的关系则会和(P’, R’)有较大的偏差。
通俗地说,(P, R)是“客观的”,而(P’, R’)则与Q(s,a)一样是“主观的”、“有目的的”,并且是会动态变化的。由于在算法在任何一个时刻的目标始终是在未知的环境取得更好的表现,所以这被归为强化学习的范畴。如何让模型估计的(P’, R’)具有“主观性”呢?我们还是以表格型MDP为例。在上面的图8.1-1中,我们以数据(s,a,s’)的计数估计转移表格的方式是极大似然估计,并且是无偏估计。这是很“客观”的,却不是很符合强化学习的性质。在MBRL中我们可以改为以这样“主观”的方式估计转移表格:
R-MAX算法与8.1-4中直接采用极大似然估计相比,上述R-MAX算法对于环境的估计似乎并不那么“好”(将数据不足的奖励函数设定为最大值显然不符合无偏性)。但是,MBRL的目的不是最准确地估计出未知环境的表达式,而是要找到在未知环境上的最优策略。若采用上述的R-MAX算法,在MBRL迭代的过程中我们会先倾向于探索还没有探索过的部分(因为模型显示这些地方奖励较大),对(P,R)有一个初步的估计。随后,我们会倾向于产生奖励更高的,“更重要”的数据,对(P,R)中我们更感兴趣的部分估计得更精准。所以说,R-MAX方法很好地串联了“为环境建模模型”与“探索-利用”。这个例子也进一步说明了,最优控制的“先拟合再求解”与MBRL的“一边拟合一边求解”是不同的。
总结以上两点:在MBRL中我们有一个真正的“环境”,也有和真实环境息息相关的“模型”。我们始终以在“真实环境”上取得最大期望奖励为最终目标,同时我们会根据最终目标不断调整“模型”、辅助算法。如果一个算法不是同时符合以上两点、且任何时刻都以此为前提迭代,则不适合称为MBRL(若只有一个黑盒则应属于MFRL算法,若只有一个白盒则应属于最优控制算法)。这也正是我们说“模型不是环境”、“环境也不是模型”的意思。最优控制、MFRL与MBRL的区别除了以上两点之外,我们还要强调模型另一个重要的特点:
模型一般都包含关于环境的先验知识。在以上的陈述中,MBRL意味着我们必须同时有“环境”与“模型”,所以它自然会比单纯的MFRL要复杂一些——比如说,若我们面对的是一个状态与动作都是离散分类变量的MDP,状态有100个,动作有10个。若我们采用MFRL的表格型Q-learning算法,则我们的Q(s,a)表为100*10的规格,即1000维向量。而相比之下,转移关系
P_{s,s'}^a 则为一个100*10*100的表格,即100000维的向量。拟合后者显然要比前者使用更多的数据,否则精确度必然有量级上的差距。
我们设想一下:假如采用MFRL,我们直接用transition数据(s,a,r,s’)来估计Q(s,a);假如我们要采用MBRL,并且是将模型当成黑盒模型而使用,则我们会先用真实数据(s,a,r,s’)来估计
P_{s,s'}^a 模型Model,再用模型产生的“假数据”以及环境产生的“真数据”来估计Q(s,a)。问题是,若真实数据(s,a,r,s’)数量不足,则Model估计得更不准确。此时用Model产生的“假数据”可能会和现实有较大偏差,继而导致我们估计的Q(s,a)有很大偏差。若真实数据(s, a, r, s’)数据量很充分,则事实上我们即使不用Model也可以直接将Q(s,a)本身估计好。无论如何,由于Model的维度比Q(s,a)更高,所以先用“真数据”估计Model再用Model产生“假数据”这个步骤很难创造额外的收益。那么,我们有什么理由这样做呢?
事实上,我们在前面说过,MFRL适用于更一般、更通用的问题。倘若我们没有任何关于P_{s,s’}^a的先验知识,即它可以在所有合法的情况中任意取,那么,采用MFRL往往是更好的选择。正是因为更适用于通用的、无先验知识的问题,MFRL领域在前些年取得了更好的发展。
但是在具体的实际问题中,我们往往有许多关于模型的具体知识。比如说,倘若我们的问题中这100个状态代表的是棋盘游戏的状态,每次采取动作时,我们只能转移到与其相邻(比如棋盘上一步操作能走到)的五个状态中。这就意味着,在100*10*100的环境转移表格中有高达95%的网格值被固定为0。此时,如果采用MFRL算法,则相当于没有利用这个额外的领域知识,难免有些“浪费”。而我们若采用MBRL,且利用这一点设计表格模型的学习方式(比如,将所有不相邻转移的(s,s’)关于任何a的转移概率始终设定为0,其他(s,s’)的转移关系则初始设为1/5,且随着计数增加采用laplace平滑法进行调整)。此时,由于利用了关于环境的先验知识,即使我们只是训练一个“黑盒模型”、仅仅用其增广数据,则它也很可能取得比MFRL更高的效率。
同理,无论是MFRL中的VPG、A2C、PPO或DDPG,都没有利用任何关于环境的先验知识。倘若环境确实没有领域知识,在所有可能的空间内任意取值,则这些MFRL算法往往有确实更好的表现。但倘若我们已知环境有一些先验性质,则我们可以利用它更高效地建立模型。
比如,在有些环境中,我们已知状态转移的物理公式(一般可以写为微分方程),只是物理公式中的几个系数(比如质量m、摩擦系数k,物体的具体形状S)的具体取值未知。这时候,若我们能用产生的数据以及这些已知的物理公式拟合出环境模型,则效率无疑比不利用物理公式的MFRL算法,或者是用“万能”的神经网络去拟合模型的MBRL算法效率更高。
利用环境的物理性质建模当然,如果真实的环境中有很明晰的、适用于
全局的物理公式,且只有几个
全局的系数未知。那么,我们只要用数据估计出这些系数,便可以直接写出
全局的物理公式,再在它基础上采用最优控制算法往往就可以了。因此,具有
全局的、清晰的公式的环境往往不是MBRL最适用的场景。
与之相比,许多工程问题中我们没有适用于全局的清晰物理公式,但我们知道它在局部满足一些特性。比如,如果状态是连续变化的,则我们可以假定其具有局部线性性(对于局部环境只进行一次展开)。此时,各个位置的局部线性系数可能很不同,我们可以用类似于iLQR的MBRL算法求解:
为局部线性环境建模在具有全局物理公式的环境中,我们对各个状态的转移关系的模型都取决于统一的全局系数。所有状态的转移关系的精确度都完全取决于我们对于几个全局系数估计的精确度。因此,我们拟合全局环境表达式之后直接用最优控制算法(瓶颈取决于统一的拟合精确度)即可;而在没有全局物理公式的环境中,各个状态的局部线性模型是不同的。我们对于“重要的”状态的线性系数应该估计得更准确,对于“不重要的”状态有关的线性系数则不必估计得太准确。因此,我们可以交互地优化算法、产生数据以估计局部模型。在迭代的过程中,我们逐渐有能力辨认“重要”的状态,并将其有关的局部模型估计得更准。这符合MBRL的特点。
在以上说的几种之外,还有一种很常见的“先验知识”——我们未知环境的状态转移关系,但已知环境中的奖励函数表达式。或者说,奖励函数本来就是由我们根据实际目标灵活设定出来的。此时,如果我们“假装不知道”奖励函数是多少,只是把环境当成一个纯黑盒来看,这无疑会导致浪费。这种情况下,我们可以仅仅拟合状态转移关系,并附上已知的奖励函数作为一个完整模型。在实践中,这种情况是很常见的(参看本书的2.5)。
在上述的例子之外,现实环境中还有许多明确且可以被利用的“先验知识”或者说“基本性质”。要完全枚举出这些性质,甚至只是为它们进行一个大体的分类都是很难的,毕竟在现实中存在着太多复杂而具体的情况,只能“具体问题具体分析”。这也是MBRL最大的特点之一。
当然,“模型一般包含关于环境的先验知识”这句话并非那么绝对。下一节中,我们会详细讲述模型的使用方法。届时我们将会看到,为环境建模还有别的好处。因此从理论上说,我们不一定非要遇到拥有先验知识的环境才考虑MBRL。即使面对无先验知识的环境,有时采用MBRL算法相比MFRL也会有一定的优势。
我们在这里想说的是,现实中大多数问题都或多或少包含了一些领域知识,而实践中取得成功的MBRL算法大多数都利用了先验知识。从另一个角度看,我们既然说“模型不是环境”、“环境也不是模型”。MBRL必须同时拥有环境与模型,而不像最优控制或MFRL那样只需要二者之一。采用如此复杂的结构,必定从别处有所收益。这个收益一般就是先验知识带来的。
4、对模型的理解
我们说过,关于MBRL中“模型”,目前尚没有形成严格的定义。在上一小节讲述了它的性质与特点之后,我们不妨用一个通俗的比方理解它:
如果说“环境”是“客观世界”、算法训练的“策略”是“主观行为方式”,那么,“模型”就是“主体对于世界的认识”,或者说,“世界观”。下面,笔者尝试借助一些哲学概念来讲述对MBRL的理解。这涉及到历史上欧陆理性主义与英伦经验主义的争论,到康德在“纯粹理性批判”中对二者的统一,与1.3节的逻辑有一定的关联。不熟悉的读者不妨回顾一下1.3。
首先,“我认识到的世界”与“真实世界”是不同的。“我认识到的世界”取决于我认识世界的方式,其中往往包含了先验知识。这是一个非常哲学的命题,我们尝试用通俗的语言叙述它:
在历史上有一个哲学流派叫做“经验主义”,主要代表人物为英国哲学家洛克与休谟。他们的主要观点是,人对于世界的认识都来自于感官经验,所以,所有不能回溯至经验(包括看的听的各种感官经验)的东西都是错的。
经验主义哲学家洛克与休谟休谟举了很多我们看来难免有些“诡异”的例子,比如:人们见过很多空中的东西落地的现象,但却没有人见过“空中的东西一定落地”这件事。如果我假定某个深山老林中有一块石头浮在空中,但却从没有人见过它。人们只是见过这块石头以外千千万万的物品从空中落地,便自以为归纳出了适用于万物的规律;又比如,当你把钱放到钱包里,过一会又从钱包里把钱拿出来,那么你就一定觉得“钱一直在钱包里”。如果我假定钱其实在钱包里消失了片刻,你却没有看到。等到你要打开钱包取钱的时候,它又及时出现了……不熟悉经验主义哲学逻辑的读者听起来或许会觉得这些假想很荒谬。但你不妨仔细想想,你从逻辑上没有办法完全证伪他的假说的可能性。并且,如果你接受了“人们对于世界的认识仅仅来自于经验”,或者“所有不能被回溯至经验的想法都是错的”这样的观点,那么,他给出的这些假说其实恰恰是很合理的。
从更广泛的角度来看,不能被证伪的假说还有很多,比如大家更熟悉的“缸中之脑”论:有一个泡在营养液中大脑,所有一切对于外界的感知只是被营养液输入的信号而并非真正存在。有时想到我们或许处于这种情况之中,且无法彻底反驳这种可能,难免会有种脊背发凉的感觉。
那么,我们到底该如何面对上述这些看起来很荒谬、却又不能被证伪,大部分时候让我们不以为意、有的时候却又让我们“脊背发凉”的假说呢?
历史上,欧陆理性主义与英伦经验主义就人认识世界是依靠理性还是经验展开了漫长的争论。后来,德国哲学家康德将二者统一了起来——他认为,“我认识到的世界”(现象)与“真实世界”(本体)是两个不同的概念。而“我认识到的世界”是由“先验理性”与“后天经验”共同形成的。所谓的“先验理性”包括先验的时空范畴与因果律。要注意的是,时空与因果律未必是在“真实世界”中存在的(因为你不能否认经验主义哲学家提出的那些“诡异”的世界观假说),但这却是主体认识世界的方式。我们在获得任何具体的感官经验之前,自己心中已经先有了一个具有规律的三维空间。与世界的交互过程中,我们会将自己获得的感官经验逐步填进去,得到一个“我认识到的世界”。这意味着,“我认识到的世界”之中,所有的感官经验都会自动被先验的“纯粹理性”组织在一起,以比较有规律的形式呈现于我们面前。
让笔者尝试用康德的认识论去解释上述的“诡异世界观”:
“真实世界”中有没有可能有一块石头不符合万有引力定律呢?这是有可能的。不过,在我们初中学习物理实验用、小车砝码推出一条物理定律的时候,便自然认为世界上所有物体都符合这个定律。老师似乎从没有讨论过万一“这个小车砝码符合这个定律、别的东西不符合这个定律”的情况,而就连最爱抬杠的同学也从没有想到可以这样抬杠。这是因为大家都会先验地认为世界上所有物体肯定是被某种规律组织在一起的。这种先验的因果律思维方式,加上“很多东西从空中落下”的经验,便在“我认识到的世界”中生成了“东西一定会从空中落下”的图景。即使这条因果存在例外,那一定是来自于另外一条因果,并且那条因果也适用于一些具有一定特性的个体。比方说,如果有一天我们见到了“不落下”的东西,我们一定下意识会思考它“不落下”的原因,并下意识地认为如果别的物体也满足这个原因,那么它们同样也会“不落下”。
这说明,我们先验的思维方式就是“具体事物被因果律组织在一起”,而不存在“特定物体”这种思维方式。我们能不能否认“钱在钱包中暂时消失又忽然出现”呢?从逻辑上是不能的,这确实有可能是“真实世界”的情况。但是,因为我们先验地拥有时空观,先验地认为“物质在时空中连续变化”。然后,我们又得到了“把钱放进钱包”与“把钱取出钱包”的后天感官经验,因此,“我认识到的世界”中将这些感官经验放进先验时空范畴中,自然合成出“钱一直在钱包里”的图景。
只要“真实世界”给予我们的经验没有和“我认识到的世界”出现太大的偏离(比如当你打开钱包后发现钱不见了),我们一般便不会调整或修正“我认识到的世界”。时空是广袤而漫长的,世界是丰富而庞杂的,我们的感官经验只能占据其中很小的一部分。在我们感官之外,“真实世界”仍存在着无限的可能,比如“缸中之脑”、“哲学僵尸”、“飞在宇宙中的茶壶”、“车库里的喷火龙”,有可能不是作为时空存在、不按照因果律去运行,也有可能包括很多前沿科学暂时无法经验到却客观存在的东西。但是,由于我们认识世界的方式、固有的理性,我们会将“我认识到的世界”补全到那些感官以外的部分,比如“无人山谷中的石头也会落地”,“我没有打开钱包时钱一直在里面”,等等。如果没有这种先验理性的“补全”,我们认识世界、规划自己行为的效率都会非常低下。
不过要注意的是,物质始终是第一性的,正如强化学习中我们始终以环境而非模型作为目标及评判标准。当“我认识到的世界”与“真实世界”提供的经验没有明显矛盾冲突时候,我们或许会以基于“我认识到的世界”展开自己的行为。但是一旦二者发生了矛盾,我们应该调整自己对于世界的认识,而不能唯心地认为世界应该符合我的认识。否则,必将导致在现实中失去更多的效用。这也就是我们所说的“模型不是环境”,“MBRL不是最优控制”的意思。
除了较为低等的生物,比如只会朝着光的方向移动的蜉蝣之外,所有高级生物脑中都会形成一套“对世界的认识”。比如人即使到了全新的工作环境中,也懂得基本的常识与规则,并会以此来指导自己的行为。因此,如果我们确实了解关于环境的一些先验知识,用其来设定了模型的形式。然后,我们又从环境中获取了一些数据(经验)用来拟合模型,那么,当我们处于环境中某些我们没有经验的位置时,我们也可以从模型中估计出它的图景。这就相当于是“我认识到的世界”能依靠先验理性自动对“真实世界”进行补全。人们所有稍微长远的计划,都是建立在排除了“诡异”的世界观假说、包含理性规则的“我认识到的世界”之上的;从另一个角度说,如果我们认识世界的方式中不包含理性(正如模型中不包含先验知识),则我们的模型很难延拓到经验以外的部分。如果我们总在顾忌“钱在钱包中是否会消失又出现”或“山谷中的石头会不会不符合万有引力定律”这样的意外情况,我们将瞻前顾后,很难学习到下意识行为以外的行为方式,不可能产生高级的、需要想象力与长远规划的行为。
综合以上,相比于只是用感官经验训练下意识条件反射的MFRL而言,借助世界观以学习行为方式的MBRL,尤其是借助世界观来决策的Decision-Time Planning算法更加接近人或其他高等动物的思维。回到我们的主题。我们在1.3中说过,强化学习是模拟生命智能的行为的。如果我们将环境视为是客观的真实世界,主体目标是“最大化效用”,策略函数是我们的行为方式;
那么,“模型”就是“我们对于世界的认识”,模型的形式是“我们认识世界的方式”或“先验理性”,环境中产生的数据是真实世界给我们的感官经验,“模型”也可以理解为我们脑海中根据先验理性与感官经验所“补全”的世界。在8.1.3中列出出了许多模型的变体,它们不一定是直接对MDP定义的P或R建模,但是,它们也是一种“对客观环境的认识”,并可以用以辅助我们的行为(但它们本身不是策略函数)。所以,它们也被归为MBRL的范畴。当然,以上都只是一些通俗的类比,旨在帮助大家能够了解MBRL这门还处于快速发展中的领域的一些底层思想。但是,如果要掌握这个领域,阅读具体的算法论文、推导公式仍旧是必不可少的。最后,送大家一句话共勉:
思考题
1、 思考还有哪些可解释的模型适合作为“白盒模型”。
2、 列举MDP中状态也动作是连续变化还是分类变量,环境是否具有随机性、时齐性的各种组合,并思考每一种情况适合用何种模型?
3、 阅读论文《Combating the compounding-error problem with a multi-step model》,了解多步模型如何定义。
4、 了解MBRL中逆向模型或反向模型的含义。
5、 思考为何R-MAX算法能更好适应MBRL?
6、 理解MFRL、MBRL与最优控制的区别;
7、 为什么说有全局物理公式的环境更适用于最优控制算法,而只有局部线性性的环境更适用于MBRL算法?
8、 理解8.4中所说“本体”与“环境”、“现象”与“模型”,我们的先验理性与模型的先验知识的类比;
9、 在MBRL中,模型的形式,即环境的先验知识,是我们设定的;那么,在“真实世界”中,我们认识世界的“先验理性”又是谁设计的呢?