最近在看Partial Observable Markov Decision Process方面的教程,感觉在Value Iteration求解POMDP的这一部分还蛮有意思的,就稍微记录一下。(读这篇文章需要对于POMDP有基本的了解)
这篇文章中主要讲解一下一个Horizon=3的POMDP求解的例子。我们假设这个POMDP有两个state:
1 Horizon=1的价值函数
在Horizon=1时,价值函数(Value Function)就是当前的回报(Current Rewards)。在这里我们有两个state和两个action,因此我们有四种行为和状态的组合,每种组合有不同的价值:
这里我们用一个例子来直观理解:执行动作
我们把这两个action的价值和belief state的关系画出来(注意belief state是一个概率分布,所以求和等予1,有这个条件,我们可以用一维的空间去描述二维的belief state,比如这里横坐标
我们可以看到,对于每个动作
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=2的情况下,如果我们在一开始“被迫”采取了行动
所以,在固定了
2.2 在给定一个action和observation的情况下计算每个belief state的价值
我们可以通过重复上一节的步骤计算任意的一个belief state
如何去处理这个问题呢?想象我们画出这样一个函数:固定
PS1: 这里代表着行动并观察到后,信念从转移到的过程。
PS2:事实上,[0,1]中有无数个信念状态,但是我们可以根据horizon=1的价值函数,在整个belief space上构造一个函数,这个函数 内置了的影响。这个函数直接告诉我们在固定行动和观察时,每个信念状态的值。
现在,如果我们想找到一个信念状态
从上图中科院看到,固定行动
2.3 只给定action的情况下计算一个belief state的价值
由于观测是概率性的,我们不能保证做出行动
解决这个问题很简单:如果我们知道给定观察结果
这里值得注意:函数下策略的划分和原先在Value function下的策略划分有所不同,这个可以这么理解:在价值函数(右上图)中的一个点衡量了“在这个点所代表的belief下,选择这个策略有多好”;而在transformed value function(下图)中的一个点衡量了“在这个点所代表的belief下,选择了行动并观察到了,这个策略有多好”。
在这个例子中(有三个可能的observation),对于
于是乎,下一个行动不仅取决于开始的belief state,还取决于我们的观察。我们可以通过S函数进行划分,来决定我们下一步应该做什么。
从这个图中我们可以很容易看到采取了行动
2.4 计算一个belief state的价值
接下来我们需要把所有可能的action都考虑进来,来计算belief state的价值。
在这个例子中,由于我们有三种观察和两种行动,所以一共会有八种策略,然而其中很多策略在任何信念状态下都不会是最优的(绝对劣策略)。比如在这个例子中,如下面左图所示,只有四种策略能在某个belief state下面达到最优。
如果我们将上述四种策略的价值用线性函数刻画,那么我们会构造出一个分段线性凸的函数,这个函数会很精确地刻画出这种策略划分。
如果我们的模型中只有
不要忘了我们图像的意义,每种颜色代表着一个策略,我们要做的就是在当前的belief state(横轴上的一个点)中选择最优的那个策略。现在我们把每个动作的价值函数放在一起。
在这里我们可以看到,horizon=2时,只有一个区域我们更倾向于选择
这里需要注意,尽管在这个图中我们能看到有三个区域都是
3 Horizon=3的Value Function
和推导horizon=2的情况相同,首先我们针对
同样,可能的策略有很多种,如下左图,但是只有其中的六种能在某个belief state下达到最优(我们用六种不同的颜色表示,每种颜色代表一个策略)。对于
我们将两个可能的action的情况结合起来,并进行剪枝(去掉无法达到最优的策略),那么最终右下图就是horizon=3的Value Function了。
从这个例子中我们可以直观地看到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) 算法