Hi my new friend!

POMDP中的信念空间

  • Home
  • POMDP中的信念空间
Scroll down

POMDP(Partially Observable Markov Decision Process,部分可观测马尔可夫决策过程)可以表示为:

M=(S,A,O,T,Z)\mathcal{M}=(\mathcal{S,A,O,T,Z})

相比于MDP,POMDP引入了对环境状态的不完全观测。在POMDP中,智能体无法直接观察到环境的真实状态,而是通过观测获得部分信息。因此,智能体需要维护一个信念状态(belief state),即对环境状态的概率分布,以便在不确定性下进行决策。观测Z\mathcal{Z}是所有观测量zz构成的集合,观测函数O\mathcal{O}得到观测zz的概率分布:

O(zs,a)=P(zs,a)\mathcal{O}(z|s',a)=P(z|s',a)

MDP问题的求解

MDP问题的求解目标是找到最优策略对应的状态值函数和动作值函数。

策略的定义为:

π(as)\pi(a|s)

代表策略在状态ss下选择动作aa的概率。对应的状态值函数和动作值函数分别为:

Vπ(s)=Eπ[Gts]V^{\pi}(s)=E_{\pi}[G_t|s]

Qπ(s,a)=Eπ[Gts,a]Q^{\pi}(s,a)=E_{\pi}[G_t|s,a]

其中,EE代表期望,GtG_t表示从时间步tt开始的累积折扣奖励,γ\gamma为折扣因子:

Gt=k=0γkrt+k+1G_t=\sum_{k=0}^{\infty}\gamma^k r_{t+k+1}

不同的策略会导致不同的状态值函数和动作值函数。最优策略π\pi^*对应的最优状态值函数和动作值函数分别为:

V(s)=maxπ[R(s,a)+γsPr(ss,a)V(s)]V^*(s)=\max_{\pi} [R(s,a)+\gamma\sum_{s'}\Pr(s'|s,a)V^*(s')]

Q(s,a)=R(s,a)+γsPr(ss,a)maxaQ(s,a)Q^*(s,a)=R(s,a)+\gamma\sum_{s'}\Pr(s'|s,a)\max_{a'}Q^*(s',a')

贝尔曼方程为求解最优策略提供了递归关系。

贝尔曼期望方程

贝尔曼方程用于计算给定策略π\pi时价值函数在策略指引下所采轨迹上的期望。考虑如下随机轨迹:

StAtRt+1,St+1At+1Rt+2,St+2At+2Rt+3S_t \xrightarrow{A_t} R_{t+1}, S_{t+1} \xrightarrow{A_{t+1}} R_{t+2}, S_{t+2} \xrightarrow{A_{t+2}} R_{t+3}

累积汇报GtG_t定义为:

Gt=Rt+1+γRt+2+γ2Rt+3+,=Rt+1+γ(Rt+2+γRt+3+),=Rt+1+γGt+1.\begin{aligned} G_t &= R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \dots, \\ &= R_{t+1} + \gamma(R_{t+2} + \gamma R_{t+3} + \dots), \\ &= R_{t+1} + \gamma G_{t+1}. \end{aligned}

状态值函数的贝尔曼方程为:

vπ(s)Eπ[GtSt=s]=Eπ[Rt+1+γGt+1St=s]=aπ(as)s,rp(s,rs,a)[r+γvπ(s)],sS.\begin{aligned} v_\pi(s) &\doteq \mathbb{E}_\pi[G_t \mid S_t = s] \\ &= \mathbb{E}_\pi[R_{t+1} + \gamma G_{t+1} \mid S_t = s] \\ &= \sum_a \pi(a|s) \sum_{s',r} p(s', r|s, a)\left[r + \gamma v_\pi(s')\right], \quad \forall s \in \mathcal{S}. \end{aligned}

推导:

vπ(s)=E[GtSt=s]=E[Rt+1+γGt+1St=s]=E[Rt+1St=s]+γE[Gt+1St=s].\begin{aligned} v_\pi(s) &= \mathbb{E}[G_t \mid S_t = s] \\ &= \mathbb{E}[R_{t+1} + \gamma G_{t+1} \mid S_t = s] \\ &= \mathbb{E}[R_{t+1} \mid S_t = s] + \gamma \mathbb{E}[G_{t+1} \mid S_t = s]. \end{aligned}

考虑第一部分E[Rt+1St=s]\mathbb{E}[R_{t+1} \mid S_t = s],应用全概率公式:

P(A)=iP(ABi)P(Bi),P(A)=\sum_{i} P(A|B_i)P(B_i),

得到:

E[Rt+1St=s]=aπ(as)E[Rt+1St=s,At=a]=aπ(as)rp(rs,a)r.\begin{aligned} \mathbb{E}[R_{t+1} \mid S_t = s] &= \sum_a \pi(a|s) \mathbb{E}[R_{t+1} \mid S_t = s, A_t = a] \\ &= \sum_a \pi(a|s) \sum_r p(r|s,a) r. \end{aligned}

考虑第二部分E[Gt+1St=s]\mathbb{E}[G_{t+1} \mid S_t = s],应用全概率公式和马尔可夫性质(在给定当前状态的情况下,未来状态的条件概率分布仅依赖于当前状态,而与过去状态无关):

E[Gt+1St=s]=sE[Gt+1St=s,St+1=s]p(ss)=sE[Gt+1St+1=s]p(ss)=svπ(s)p(ss)=svπ(s)ap(ss,a)π(as).\begin{aligned} \mathbb{E}[G_{t+1} \mid S_t = s] &= \sum_{s'} \mathbb{E}[G_{t+1} \mid S_t = s, S_{t+1} = s'] p(s' \mid s) \\ &= \sum_{s'} \mathbb{E}[G_{t+1} \mid S_{t+1} = s'] p(s' \mid s) \\ &= \sum_{s'} v_\pi(s') p(s' \mid s) \\ &= \sum_{s'} v_\pi(s') \sum_a p(s' \mid s, a) \pi(a \mid s). \end{aligned}

合并两个部分:

vπ(s)=E[Rt+1St=s]+γE[Gt+1St=s],=aπ(as)rp(rs,a)rmean of immediate rewards+γaπ(as)sp(ss,a)vπ(s)mean of future rewards,=aπ(as)[rp(rs,a)r+γsp(ss,a)vπ(s)],sS=aπ(as)s,rp(s,rs,a)[r+γvπ(s)],sS.\begin{aligned} v_\pi(s) &= \mathbb{E}[R_{t+1} \mid S_t = s] + \gamma \mathbb{E}[G_{t+1} \mid S_t = s], \\ &= \underbrace{\sum_a \pi(a|s) \sum_r p(r|s,a) r}_{\text{mean of immediate rewards}} + \gamma \underbrace{\sum_a \pi(a|s) \sum_{s'} p(s'|s,a) v_\pi(s')}_{\text{mean of future rewards}}, \\ &= \sum_a \pi(a|s) \left[ \sum_r p(r|s,a) r + \gamma \sum_{s'} p(s'|s,a) v_\pi(s') \right], \quad \forall s \in \mathcal{S} \\ &= \sum_a \pi(a|s) \sum_{s',r} p(s', r|s,a) \left[ r + \gamma v_\pi(s') \right], \quad \forall s \in \mathcal{S}. \end{aligned}

策略迭代算法

给定策略π\pi,利用贝尔曼期望方程,对状态值函数进行更新:

Vk+1(s)=aπ(as)[R(s,a)+γsP(ss,a)Vk(s)]V^{k+1}(s) = \sum_a \pi(a|s) \left[ R(s,a) + \gamma \sum_{s'} P(s'|s,a) V^k(s') \right]

也就是使用第kk轮的值函数,更新第k+1k+1轮的值函数。重复该过程,直到值函数收敛至VπV^\pi

当拿到Vπ(s)V^\pi(s)后,可根据状态值函数对原有策略进行改进。也就是在每一个状态下都选择最优的动作:

π(s)=argmaxaQπ(s,a)=argmaxa{R(s,a)+γsP(ss,a)Vπ(s)}\pi'(s) = \arg\max_a Q^\pi(s,a) = \arg\max_a \left\{ R(s,a) + \gamma \sum_{s'} P(s'|s,a) V^\pi(s') \right\}

值迭代算法

价值迭代算法单独维护一个状态值函数,不维护策略,并且直接利用贝尔曼最优方程进行状态价值函数的更新:

Vk+1(s)=maxa[R(s,a)+γsP(ss,a)Vk(s)]V^{k+1}(s) = \max_a \left[ R(s,a) + \gamma \sum_{s'} P(s'|s,a) V^k(s') \right]

价值迭代算法就是直接利用上述方程对状态值函数进行迭代更新,直到收敛至最优状态值函数Vk+1VkΔ\left\| V^{k+1} - V^k \right\| \leq \Delta

POMDP问题的求解

MDP问题的求解结果是得到了值函数V(s)V^*(s)Q(s,a)Q^*(s,a),相当于两个大表格,但是POMDP中智能体无法直接观测到环境状态ss,因此无法直接使用MDP的求解方法,同时最优决策依赖的是历史信息的统计汇总,而不是当前的观测。在POMDP中,智能体需要维护一个信念状态(Belief State)b(s)b(s),表示在当前观测zz下环境状态为ss的概率分布:

bt(s)=Pr(st=sz1:t,a1:t1)b_t(s)=\Pr(s_t=s|z_{1:t},a_{1:t-1})

b(s)b(s)存在无限多情况,不能通过表格来描述,引入信念空间后,POMDP的求解目标变成了计算信念状态下的最优值函数V(b)V^*(b)或动作值函数Q(b,a)Q^*(b,a),即在信念状态bb下采取最优策略所能获得的最大期望累积奖励。

信念状态的更新

根据马尔可夫性质,根据上一时刻的信念状态bt1b_{t-1}、采取的动作at1a_{t-1}和当前观测ztz_t,可以计算当前时刻的信念状态btb_t

bt(s)=τ(bt1,at1,zt)(s)=1Pr(ztbt1,at1)Pr(ztat1,s)sSPr(ss,at1)bt1(s)Pr(ztbt1,at1)=sSPr(ztat1,s)sSPr(ss,at1)bt1(s)\begin{aligned} b_t(s') &= \tau(b_{t-1}, a_{t-1}, z_t)(s') \\ &= \frac{1}{\Pr(z_t|b_{t-1}, a_{t-1})} \Pr(z_t|a_{t-1}, s') \sum_{s \in S} \Pr(s'|s, a_{t-1}) b_{t-1}(s) \end{aligned} \\ \Pr(z_t | b_{t-1}, a_{t-1}) = \sum_{s' \in S} \Pr(z_t | a_{t-1}, s') \sum_{s \in S} \Pr(s' | s, a_{t-1}) b_{t-1}(s)

其中,Pr(ztat1,s)\Pr(z_t|a_{t-1}, s')是观测函数O\mathcal{O}Pr(ss,at1)\Pr(s'|s, a_{t-1})是转移函数T\mathcal{T}

Belief MDP

通过引入信念状态,POMDP可以转换为一个等价的MDP,称为Belief MDP。在Belief MDP中,状态空间是信念空间B\mathcal{B},动作空间仍然是A\mathcal{A}。转移函数τ\tau和奖励函数RR需要根据信念状态进行定义。

奖励函数定义为:

RB(b,a)=sSb(s)R(s,a)R_B(b,a) = \sum_{s \in S} b(s) R(s,a)

Belief MDP的状态值函数和动作值函数满足的贝尔曼方程为:

V(b)=maxaA[RB(b,a)+γzZPr(zb,a)V(τ(b,a,z))]Q(b,a)=RB(b,a)+γzZPr(zb,a)V(τ(b,a,z))V^*(b) = \max_{a \in A} \left[ R_B(b, a) + \gamma \sum_{z \in Z} \Pr(z | b, a) V^*(\tau(b, a, z)) \right] \\ Q^*(b, a) = R_B(b, a) + \gamma \sum_{z \in Z} \Pr(z | b, a) V^*(\tau(b, a, z))

POMCP(Partially Observable Monte Carlo Planning)

我是学生,给我钱

其他文章
MASt3R-SLAM
  • 25/11/28
  • 16:12
  • 2k
  • 11
目录导航 置顶
  1. 1. MDP问题的求解
    1. 1.1. 贝尔曼期望方程
    2. 1.2. 策略迭代算法
    3. 1.3. 值迭代算法
  2. 2. POMDP问题的求解
    1. 2.1. 信念状态的更新
    2. 2.2. Belief MDP
    3. 2.3. POMCP(Partially Observable Monte Carlo Planning)
请输入关键词进行搜索