Learning reward machines for partially observable reinforcement learning论文阅读

Abstract

这篇文章是基于前面两篇RM文章进行的工作。Reward Machine是一种对reward function基于自动机,结构化的表示,将问题分解成多个子问题,并通过off-policy的方法进行学习。这篇文章提出了一种能够在部分可观测环境下通过经验学习RM的方法。

Introduction

这篇文章的方法应用场景是在partially observable MDP。前面的high-level task和multi-agent task都基于full observable的场景。
这篇文章主要的motivation有两个,其实就是解决了两个问题:

  1. 以往的Reward Machine都是人为给出,这篇文章探索机器自动学习Reward Machine。
  2. 将Reward machine应用在partially observation的条件下。

Partially Observable MDP

相比全观测的MDP,部分观测的MDP在生活中出现的概率会更高。比如斗地主,你不知道别人的牌,别人也不知你的牌,除非你明牌。这就是一种部分观测的场景。下围棋,黑棋白棋的位置都能知道,这就是一种全观测场景。我们人也一样,虽然可以360度观测环境,但是墙后面有什么是我们不知道的信息,我们永远都是在部分可观测中进行决策。所以解决POMDP对现实任务是很有意义的。论文方法选择这个场景下解决问题应该也有这方面的原因。

如上图的场景,我们想要让agent接住球,但是当前某一个时间内的场景不足以判断球的方向和球的速度,没有办法做出良好决策。既然没办法再部分观测场景下做决策,那我们可以尝试把部分场景补全,用过去的经历补全。比如上面这一张图片不能判断接住的位置,那我们多几张图片重叠再一起,就可以判断球的方向和球的速度了。

所以我们可以尝试把不同时间所观测到的部分场景组合在一起再做预测,而RNN恰好可以处理这样的任务,所以就出现了DRQN。DRQN用多个frame作为state,作为RNN输入。

目前解决POMDP的方法主要还是结合RNN和memory-augmented neural network。

The method proposed

这篇论文提出了一种能够在部分可观测环境中通过经验学习RM的方法,这种方法把RM看成是一种内存,要求是RM学习方法需要被给定一个detectors for properties的有穷集合,作为RM的词汇表。作者描述了一个RM学习的目标,得以将任务形式化成一个离散最优问题,并且提出一个高效本地搜索方法来解决它。应用RM的算法还有QRM,不过QRM算法适用于full observable MDP的环境,而且RM需要人为指定。本文也将QRM扩展到partially observable MDP。

contribution:

  1. 提出了一种能够在部分可观测环境中通过经验学习RM的方法
  2. QRM扩展到部分可观测的MDP任务中

Preliminaries

准备工作提到了MDP和POMDP。

MDP

马尔科夫过程和前面的都一样,由五元组表示 M = < S , A , r , p , γ > M = <S, A, r, p, \gamma> M=<S,A,r,p,γ>组成,状态集合,动作集合,reward function, 状态转移矩阵,折扣组成。求出最优的策略 π ∗ π^* π使能得到最大的未来折扣奖励。 Q-learning对agent的经验做采样,估计Q表的值。agent并不是所有的动作都会执行一遍,每一次只会执行一个特定的动作序列,这样就可以看成是一个采样。

POMDP

部分可观测马尔科夫过程只能观测到部分状态,但是agent是知道一共有多少个状态的,agent只是不知道当前观测到的部分状态是属于哪一个而已。
POMDP由一个七元组描述 M = < S , O , A , r , p , w , γ > M = <S, O, A, r, p, w, \gamma > M=<S,O,A,r,p,w,γ> S , A , r , p , γ S, A, r, p, \gamma S,A,r,p,γ是MDP的五元组, O O O是观测数据集合, w w w是概率分布, w ( o t + 1 , s t + 1 ) w(o_{t+1}, s_{t+1}) w(ot+1,st+1)表示 o t + 1 o_{t+1} ot+1属于 s t + 1 s_{t+1} st+1状态的概率。也就是观测数据 o t + 1 o_{t+1} ot+1的概率分布。不过在维基百科是用 O ( o ∣ s ′ , a ) O(o|s', a) O(os,a)表示:

执行 a a a动作后转移到状态 s ′ s' s后能观测到 o o o的概率。大概意思是一样。

RL的一些方法不能直接应用到POMDP的场景上来,因为转移矩阵和reward function未必是马尔科夫性的,因为和观测状态相关联了起来。 因为状态 s s s是马尔科夫性的,之和前一个状态相关,但是观测数据没有说是马尔科夫性的,观测数据是可能和前面的历史相关的,有可能前面的状态观测错了导致后面的状态都出现错误,比如观测到 o ( 无 太 阳 ) o(无太阳) o()则判断今天是阴天,但是实际上可能是在屋子里面,然后导致后面一系列错误,比如不好出门,不晒衣服这些行为。所以optimal policy需要考虑观测数据和动作的历史状态 o 0 , a 0 , . . . , a t − 1 , o t o_0,a_0,...,a_{t-1},o_t o0,a0,...,at1,ot。如果把这些数据都存储起来,那需要很多内存。与动作历史相关,RNN类神经网络比较在行,于是出现了一些使用RNN关联历史数据,policy gradient训练神经网络的方法。而另一种方法是把历史消息看成是一个置信度状态,通过维护状态的概率分布可以提供整一个agent行动与观察历史相同的信息。置信状态 b t b_t bt t t t时刻各个状态的概率,也就是状态 S S S t t t时刻的概率分布。由于这个时候状态转移和reward function都是马尔科夫性的了,所有可以直接构建出一个brief MDP,在brief MDP的最优解也是POMDP的最优解。

Brief MDP

M B = < B , A , τ , r , γ > M_B = <B, A, \tau, r, \gamma> MB=<B,A,τ,r,γ>,B是定义在POMDP上的置信状态集合。A动作集合, τ \tau τ是置信状态转移矩阵。 转移矩阵 τ \tau τ表示在当前信念 b b b下执行 a c t i o n action action,观测到 o o o后转移到下一个信念的概率。信念其实就是当前处于每一个状态的概率是多少。这样定义就和MDP差不多了,可以直接套用强化学习的方法。

Reward Machines for Partially Observable Environments

给出一个部分可观测的游戏场景,cookie domain。

游戏规则:紫色三角形agent,如果agent能吃到cookie,也就是屎色的饼干就能得到一分的reward,否则得到0分。场景一开始是没有饼干,只有当按下绿色按钮之后才会出现饼干,而且饼干的位置会随机出现在蓝色和红色的房间里面。按下按钮出现饼干之后,就要去蓝色和红色房间找饼干吃了。

之所以说这个场景是一个部分可观测场景,是因为agent只能观测到当前所在房间的信息,而观测不到其他agent不在的房间信息。Labeling function 需要做改变,原先的MDP中labeling function是 S X S − > 2 p S X S -> 2^p SXS>2p,但是现在存在有观测信息,所以只能通过观测信息来定义labeling function。所以存储在内存里面的experience也不能用 ( s , a , s ′ ) (s, a, s') (s,a,s)来表示了,得用 ( o , a , o ′ ) (o, a, o') (o,a,o)了。

Definition of RM


定义和前面两篇文章的一样,但是Labeling Function肯定是要变的。
Proposition Symbolic P P P描述成是agent可以检测到的行为,而不再是像前面两篇描述成是environment event。

分别是看见饼干,吃掉饼干,按下按钮,进入红色房间,没有进入房间,进入紫色房间,进入黄色房间。这个游戏可以用前面QRM算法进行学习,只要把状态 S S S都替换成是观测状态 O O O就好了。但是这样存在一个问题,QRM算法是用一个sample experience去更新所有在RM状态机里面的subpolicy,但是这些状态或多或少都是和agent当前所处的状态有关,这样你使用QRM算法,用当前观测到的 O O O去更新在RM状态的策略就不合适了,因为观测到的状态 O O O是不包含其他场景的。 为什么前面一篇using RM的文章可以用QRM,是因为那里的经验experience e = < s , a , s ′ > e = <s, a, s'> e=<s,a,s>中的s是包含了其他场景的。

比如上面的例子,从 u 0 u_0 u0 u 1 u_1 u1的经历是进入黄色房子按下按钮,但是agent只观测到黄色房子的信息,没有观测到其他场景,而 u 2 , u 3 u_2,u_3 u2u3实际上关于其他场景的。所以拿这个经验去更新就不是特别适合。

所以直接在partially observable MDP的环境中应用QRM算法是不适合的。

用出现在 u i u_i ui场景观测到的现象 o o o更新 u j u_j uj的policy是不太正确的。本文提出的解决方案是增加一个偏置项。

其实个人感觉论文中提到的partially observable environment只是说agent只能观测到的现象,但实际上agent知道的可远远不止观测到的那一部分。还有Reward Machine,实际上Reward Machine相当于是提供到了全局的信息,比如当agent按下按钮的时候,实际上是不知道出现了饼干的,但是RM告诉了他,所以Reward Machine还是知道了有饼干,接下来去找就可以了。所以仔细看了之后觉得partially observable environment的意义没有特别大,反正reward machine都能提供任务结构,任务结构其实会比全局的信息更重要。比如上述的例子,全局信息就算观测到了,agent其实也拿不准饼干和按钮的关系,但是reward machine一给出,按钮和饼干的因果关系就知道了。

Learning Reward Machines from Traces

往下就是如何学习到Reward Machine的算法了。其实不算是学习到,应该说是搜索到一个好的RM。当然其实多好也是论文定义的,解释权在他们手里。

Our overall idea is to search for an RM that can be used as external memory by an agent for a given task.

寻找一个RM,这个RM能够用作任务的外部内存使用。

文中提出了三种生成方法:

  1. 生成一个最小的Reward Machine,这个Reward Machine可以模拟环境的奖励信号。

    过于简单了,没办法提供内存存储。(这里的内存应该是指存储的历史信息,因为观察现象 o o o不是马尔可夫性的,需要存储部分的历史信息。所以希望RM能够存储部分信息。RM的状态转移可以表示部分的历史信息。)

  2. 第二种方法是基于model-free的RL方法。这种方法人为RM应该在optimal policy能取到最大的reward。但是这样的计算复杂度会很大。

  3. 基于model-based RL的方法,这种方法比较适合。这种方法认为RM应该存储足够的历史信息。

    类似上图。

这几种reward machine论文写着挺复杂的,但实际上只要越复杂越好就行了,因为选择RM的原则就是把RM作为一个额外的内存存储历史数据,自然越复杂,state越多越好了。

Perfect Reward Machines

Perfect Reward Machine的定义和性质。

这句话的意思是Perfect RM的idea是使用状态 U U U和转移矩阵 δ u \delta_u δu来表达过去相关信息,使得观测环境是马尔可夫的。 论文的主要理论部分就在这了:

  1. 如果POMDP的状态是有限的,那么一定可以找到一个perfect RM。
  2. perfect RM的optimal policy也是POMDP的optimal policy。

接下来就是怎么学习了。
搜索问题最终都会转化成一个优化问题,这里也不例外,转化成了一个优化问题求解。直接寻找最优的RM需要很大的计算量,这里并没有直接寻找,而是提出了一个折中的方案,要求找到的RM满足必要条件:RM在的状态在预测的抽象事件中必须要是可能发生的,比如在 u 0 u_0 u0状态,是不可能在蓝色房子发现饼干,这个抽象动作不能发生。优化model参数需要提供轨迹,抽象事件,label function,状态最大的数量。轨迹定义 T = { T 0 , . . . , T n } , T i = ( o i , 0 , a i , 0 , r i , 0 , . . . , a i , t i − 1 , r i , t i − 1 , o i , t i ) T = \{ T_0, ..., T_n \},T_i = (o_{i,0},a_{i,0 },r_{i,0},...,a_{i,t_{i-1}}, r_{i,t_{i-1}},o_{i,t_i}) T={T0,...,Tn},Ti=(oi,0,ai,0,ri,0,...,ai,ti1,ri,ti1,oi,ti)。traces就一些历史数据,这些数据可以直接通过agent与环境交互得到。经验定义 e i , t + 1 = ( o i , t , a i , t , o i , t + 1 ) e_{i,t+1} = (o_{i,t}, a_{i,t},o_{i,t+1}) ei,t+1=(oi,t,ai,t,oi,t+1)搜索一个能够从 L ( e i , t ) L(e_{i,t}) L(ei,t)预测 L ( e i , t + 1 ) L(e_{i,t+1}) L(ei,t+1)的RM。也就是要找一个能够从前一个抽象事件预测下一个抽象事件的RM。定义下一些抽象事件的集合 N u , l N_{u,l} Nu,l,于是这就变成了一个优化问题。

x i , t x_{i,t} xi,t则是历史数据。预测的抽象动作集合数量要最小,minimize则是需要reward machine的cost最小,因为 N u , l N_{u,l} Nu,l实际上是上一个下一个状态可能发生的的抽象事件,如果能够求得最小但是又包含了所有可能的情况,那么RM的cost就是最小的。
然后使用Tabu Search求解,本质上还是做一个搜索。Tarbu的搜索一开始由一个随机的RM开始,然后从这个随机的RM开始找他的邻居,枚举所有的邻居然后用LRM(上面列举出来的优化问题)评估数值。为了防止陷入局部极小值,Tarbu会把先前的RM当成是初始的RM再一次做搜索。

Simultaneously Learning a Reward Machine and a Policy

同时学习RM和optimal policy。

  1. 首先需要初始化一些训练数据,也就是 T = { T 1 , . . . , , T n } T = \{T_1,...,,T_n\} T={T1,...,,Tn},使用Tarbu search从这些数据中选择一个初始的RM作为agent的RM。
  2. RM初始化一个策略
  3. 选择一个动作a,执行动作a获得观测结果 o ∗ o^* o,使用labeling function获得proposition进行RM的状态转移。
  4. 得到的经验用作对RM的更新。
  5. 如果在学习的过程中如果发现当前的RM不是最好的那就重新寻找一个。

前面还提到有一个问题,在使用经验 e e e更新所有的状态u的时候,有些经验产生的抽象事件是根本不可能发生的,如果这些事件在RM state中不可能发生,那么将不会用于更新。比如在状态 u 0 和 u 3 u_0和u_3 u0u3中是不可能观测到红房间里面有饼干的,那么如果观测到的经验会产生饼干这个抽象事件,那么 u 0 , u 3 u_0,u_3 u0,u3的q表不会被更新。

其实在前面的一篇RM解决mult-task的论文中,我觉得这种方法应该也可以用上的,如果这个经验在某一个RM state中不可能出现,那么就不应该拿去更新。

表面上看起来挺复杂,实际上仔细研读之后思想还是挺简单的。作者将learn RM的问题先简单化,求一个只满足必要条件的RM,然后利用Tarbu search寻找最优的RM,接着用QRM算法训练,训练的过程中加入一些限制防止一些state的Q表学习到一些毫不相干的经验。如果发现还有更好的RM,则替换重新从0开始学习。

其实partially observation最主要的问题还是观测状态和奖励函数不是马尔科夫性的问题,这个问题作者并没有直接解决,因为RM已经解决了,RM本身就是可以trace到历史的数据的,所有加入RM就可以使得观测状态和奖励函数变成马尔可夫性。作者提出一些理论使得加入RM可以合理化。Definition 4.1就解释了RM本身就存储了历史信息。

也可以这样理解,前面的一些full observation w.r.t RM的论文并没有利用上RM可以存储历史数据的这一个能力,这篇文章挖掘到了。

Experimental Evaluation

三个游戏场景的实验。

都只有LRM能完成,他对比的这些算法都是在full observation场景下的算法,DDQN,A3C这些都是,而这个场景应该是用partial observation的算法对比,他应该用RNN with RL和external neural-based memories两个方法来对比。

Limitation

limitation文章也讨论了,但是我个人觉得还有一些不足。

  1. 首先是在学习RM的时候,文章并没有直接去寻找了optimal Reward Machine,而是根据必要条件:RM能够知道哪些是abstract observation是可能发生,哪些可能不发生的,但这只是必要条件,所以搜索出来的不一定是optimal RM。
  2. 其次就是Tarbu search的性能问题,在proposition非常大的情况下所产生的neighbourhood是非常多的。
  3. 在QRM中同时更新Q表可能会出现的问题是:某一些经验 ( o t , a t , o t + 1 ) (o_t,a_t,o_{t+1}) (ot,at,ot+1)所产生的abstract observation如果是能出现在对应 s t a t e state state N u , l N_{u,l} Nu,l的才会进行更新,这样可能防止RM的一些Q表学习到不可能发生的经历,误导学习方向。但文中的解决方法只是在abstract observation上做了考虑,没有考虑underling environment的改变。

    如上图的游戏,如果agent没有按下按钮,那么会一直有外部力量把agent压在地下吃不到饼干,如果按下按钮,那么agent就可以上去吃饼干了。RM很简单,就两步,在QRM更新的过程中,由于 u 0 , u 1 u_0,u_1 u0,u1的所有可能的abstract observation都是一样的,所有 u 0 和 u 1 u_0和u_1 u0u1都会share相同的经验,但实际上, u 0 u_0 u0 u 1 u_1 u1的环境完全不一样了,一个外部力量一个是没有的,share相同的经验的不合适的。
  4. 还有就是噪声的影响。
  5. 对比的实验不太合适,应该用一些partially observation的方法来对比,而不是full observation的方法。

Conclusion

文章的motivation有两个:解决Reward machine需要人工给出的问题,将RM应用在部分可观测的环境下。 第一个问题的解决方法是将问题简化,只考虑必要条件,然后利用Tarbu search搜索。第二个问题,作者给出了RM能存储历史信息的理论,然后将RM直接应用在游戏中。这篇文章最大的贡献还是挖掘出来Reward Machine具有存储历史数据的能力,可以作为一个external memory起到和RNN类似的功能。

partial observation有一个很重要的因素要考虑,就是observation和state的概率分布如何确定,也就是如何确定observation到底是属于哪一个state的。也就是POMDP的 w ( o , s ) w(o,s) w(o,s),而这篇文章中的observation都可以很容易判断出到底是哪一个state,基本不存在误导的情况。比如 s = ( 晴 天 , 阴 天 ) s = (晴天,阴天) s=(),当我们在教室里面观测可能得到 o = ( 无 太 阳 ) , s = ( 阴 天 ) o=(无太阳) ,s=(阴天) o=()s=(),但实际上是晴天只不过太阳挡住了,这种情况在游戏中出现的很少。而且房子都有颜色,很容易判断是哪一个state。

这篇文章读完之后,感觉有点雷声大雨点小,相比之前的两篇RM的文章解决的问题,这篇文章更为吸引人,但是实际上他做的工作不多,学习Reward Machine的问题也是搜索得到的,将RM用于部分可观测条件也是给了理论解释,而其实RM可以表达非马尔科夫性reward function早已在《Using reward machines for high-level task specification and decomposition》中提到,所以我觉得这篇文章对于部分可观测只是开了一个头,还可以做的更细。目前一共是阅读了三篇RM文章,其中解决了multi-agent这篇文章我个人感觉方法最成熟,对比试验做的最好,这篇文章的实验我个人不是很认可。

在full observation的环境中RM在multi-agent和muti-task都有应用,接下来可以考虑partially observation的multi-agent和multi-task。

参考文献

https://blog.csdn.net/weixin_40247273/article/details/107591994
https://medium.com/emergent-future/simple-reinforcement-learning-with-tensorflow-part-6-partial-observability-and-deep-recurrent-q-68463e9aeefc#c8e5
Learning reward machines for partially observable reinforcement learning
Reward Machines: Exploiting Reward Function Structure in Reinforcement Learning

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值