webservice无法理解soap头action_[规划问题] 1 POMDP值迭代的直观理解

最近在看Partial Observable Markov Decision Process方面的教程,感觉在Value Iteration求解POMDP的这一部分还蛮有意思的,就稍微记录一下。(读这篇文章需要对于POMDP有基本的了解)


这篇文章中主要讲解一下一个Horizon=3的POMDP求解的例子。我们假设这个POMDP有两个state:

,两个action:
,三个observation:

1 Horizon=1的价值函数

在Horizon=1时,价值函数(Value Function)就是当前的回报(Current Rewards)。在这里我们有两个state和两个action,因此我们有四种行为和状态的组合,每种组合有不同的价值:

是离散的,但是很容易得到在特定信念状态
下执行特定动作
的值。我们只需使用belief state的
概率分布作为每个state价值的 权重

这里我们用一个例子来直观理解:执行动作

,执行动作
,在不同的state中,相同的action也会有不同的价值。比如说,我们的belief state是[0.75,0.25](意味着我们“相信”当前有75%的可能在
,有25%的可能在
),那么在这种信念下,选择
的价值就是
,选择
的价值就是

我们把这两个action的价值和belief state的关系画出来(注意belief state是一个概率分布,所以求和等予1,有这个条件,我们可以用一维的空间去描述二维的belief state,比如这里横坐标

就是
,而

27e3164ed17de1f24b9e73f0705344ee.png
Horizon 1 Value Function

我们可以看到,对于每个动作

,其及时的rewards在信念空间上指定了一个
线性函数。下面的颜色代表着在这个belief space时的最优策略(即选择哪个
),比如当
的时候
,也就是我们100%确信自己在
,那么毫无疑问选择
(绿色)的回报是更大的。

2 Horizon=2的价值函数

有了Horizon=1的Value Function,我们就可以构造Horizon=2的Value Function了。在这个例子中,我们构造这个价值函数的目的就是找到在每个信念状态(belief state)中,仅使用两种行动的最佳策略

这个问题比较复杂,我们将问题拆解,去依次回答如下几个问题:

  • 1、如何在给定一个action和observation的情况下计算单个belief state的价值。
  • 2、如何在给定一个action和observation的情况下计算每个belief state的价值(即要算完所有belief state的价值)。
  • 3、如何在只给定action的情况下计算一个belief state的价值(即考虑所有的observation的情况)。
  • 4、如何计算一个belief state的价值(即考虑所有的action的情况)。

2.1 在给定一个action和observation的情况下计算单个belief state的价值

将这个问题换一句话表述,就是给定belief state

,如果在行动
后观察到了
,那么行动
的价值是?

在horizon=2的情况下,我们需要做的就是根据自己的belief state选择一个action行动,之后会观察到这个行动所带来的observation,这个observation将会更新我们的belief state,最后我们根据这个更新后的belief state去选择最后一个action。

显然,在horizon=2的情况下,当前每个belief state的价值就是即刻行动的价值加上下一个行动的价值。

举个例子,在你采取了行动

并观察到
后,信念状态会从
转移到
(用函数
表示),而前面Horizon=1的Value Function可以告诉我们,
时(即只剩下一个行动时)每一个信念状态的最大的Value是什么。

c4789e1f3aae39a9b6ad648a6310c11b.png
Value of a fixed action and observation

我们可以看到上图,在horizon=2的情况下,如果我们在一开始“被迫”采取了行动

,那么在我们观测到
后,在下一步我们就应该采取行动
(对应的belief state
落在了绿色的区域中)。

所以,在固定了

后,我们可以知道两件事:一是我们得到的即刻回报(Immediate Rewards)
是多少,二是转换后信念状态
的最佳价值,将这两个值相加就得到了信念状态
的值。

2.2 在给定一个action和observation的情况下计算每个belief state的价值

我们可以通过重复上一节的步骤计算任意的一个belief state

的价值(即刻回报+转换后
的价值)。然而,现在我们有更高的要求了,我们希望找到
所有的belief state的价值(横轴上[0,1]中每一个点
的价值)

如何去处理这个问题呢?想象我们画出这样一个函数:固定

,函数
对每一个belief state, 通过
转换为
并查看
在horizon=1的价值。这样就能构造出另外一种在belief space上的value function。
PS1: 这里
代表着行动
并观察到
后,信念从
转移到
的过程。

PS2:事实上,[0,1]中有无数个信念状态
,但是我们可以根据horizon=1的价值函数,
在整个belief space上构造一个函数
,这个函数 内置
的影响。这个函数
直接告诉我们在固定行动
和观察
时,每个信念状态
的值。

现在,如果我们想找到一个信念状态

对于固定
和观察
的价值,只需及时回报
加上变换后函数
得到的价值。

b874bd9ab2d1a08629b069b42439b4be.png
Transformed value function

从上图中科院看到,固定行动

和观察
,每个信念状态的价值。

2.3 只给定action的情况下计算一个belief state的价值

由于观测是概率性的,我们不能保证做出行动

后就看到
。在这个例子中,有三种可能的观察结果
,每一种都可以
导出一个独立的信念状态。那我们该怎么办呢?

解决这个问题很简单:如果我们知道给定观察结果

后belief state的价值,那么即便我们不知道观察结果,我们也可以计算belief state的价值:
用每个观察结果
出现的概率进行加权得即可

309714e1cd81de9b80a66d7d6bb15a04.png
Transformed value function
这里值得注意:
函数下策略的划分和原先在Value function下的策略划分有所不同,这个可以这么理解:在价值函数(右上图)中的一个点衡量了“在这个点所代表的belief下,选择这个策略有多好”;而在transformed value function(下图)中的一个点衡量了“在这个点所代表的belief下,选择了行动
并观察到了
,这个策略有多好”。

在这个例子中(有三个可能的observation),对于

我们需要把2.2的过程做三次,也就是我们会有三个S函数:

351a3823c773d420da533942ac386c0c.png
Transformed value function for all observations

于是乎,下一个行动不仅取决于开始的belief state,还取决于我们的观察。我们可以通过S函数进行划分,来决定我们下一步应该做什么。

828aa7625c21dbbed108086305781e2a.png
Partitions for all observations

从这个图中我们可以很容易看到采取了行动

之后的最佳策略是什么。给定信念
,行动
,那么接下来,如果我们观察到
,那就采取行动
,如果我们观察
,那就采取行动
。对于信念空间中的每一个点,我们都可以划这么一条竖线,得到在这个信念状态下的
策略:“如果观察到
,我们要选择的行动
”。比如右上图这个信念
对应的最佳策略就是

2.4 计算一个belief state的价值

接下来我们需要把所有可能的action都考虑进来,来计算belief state的价值。

在这个例子中,由于我们有三种观察和两种行动,所以一共会有八种策略,然而其中很多策略在任何信念状态下都不会是最优的(绝对劣策略)。比如在这个例子中,如下面左图所示,只有四种策略能在某个belief state下面达到最优。

3212fb8e7f8bac8d589533c35db52859.png
Value function and partition for action a1

如果我们将上述四种策略的价值用线性函数刻画,那么我们会构造出一个分段线性凸的函数,这个函数会很精确地刻画出这种策略划分。

如果我们的模型中只有

一种动作,那么上面右图显示的价值函数就是horizon 2的价值函数。不过在这个例子中,我们还有
这种动作,我们可以用同样的方式刻画出
的价值函数和策略划分。

ecdb7bda40a293c42051a68798fafe85.png
Value function and partition for action a2

不要忘了我们图像的意义,每种颜色代表着一个策略,我们要做的就是在当前的belief state(横轴上的一个点)中选择最优的那个策略。现在我们把每个动作的价值函数放在一起。

be1f86f38c713177acbf8815a7a5fc58.png
Combined a1 and a2 value functions

在这里我们可以看到,horizon=2时,只有一个区域我们更倾向于选择

,在其他地方,都会选择
,同时,我们可以把那些在整个信念空间都无法达到最优的策略去掉(剪枝),比如橙色和绿色的策略。

这里需要注意,尽管在这个图中我们能看到有三个区域都是

,但这只代表他们的
最初的行动是相同的,实际上它们未来的策略是不同的。比如红色那一块是先选择
,再根据得到的观察选择
;而黄色的那块是先选择
,再根据得到的观察选择

3 Horizon=3的Value Function

和推导horizon=2的情况相同,首先我们针对

构造
函数,来刻画信念转换
的影响:

3ebc6750124aa5e9b109f57334738950.png
Transformed Horizon 2 Value Functions for Action a1

同样,可能的策略有很多种,如下左图,但是只有其中的六种能在某个belief state下达到最优(我们用六种不同的颜色表示,每种颜色代表一个策略)。对于

进行同样的处理,刻画信念转换
的影响,这里只有其中的四种策略能在某个belief state下达到最优:

d3273b87a7688de203e254cbaeb65f19.png
Value function for action ai and horizon 3

我们将两个可能的action的情况结合起来,并进行剪枝(去掉无法达到最优的策略),那么最终右下图就是horizon=3的Value Function了。

7b17fbac1fa93ef029a75fa9b7e9e648.png
Value function for horizon 3

从这个例子中我们可以直观地看到POMDP的问题是如何进行值迭代的,事实上,对于任意长度的视界(Horizon),做法都是一样的。对于POMDP有一个直观上的认识之后,也会更有助于我们理解之后求解POMDP的一些算法。


参考文献:

[1] POMDP Tutorial [EBOL] POMDPs and their algorithms

[2] Kaelbling et al. Planning and acting in partially observable stochastic domains [J] Artificial Intelligence, 101 (1998) 99-134


回到目录

下一篇:[规划问题] 2 优雅搞懂PBVI (Point Based Value Iteration) 算法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值