贝尔曼方程推导[1]

本文详细介绍了贝尔曼方程在深度强化学习中的应用,包括动作价值函数和状态价值函数的推导,以及在最优策略下的最大化价值。通过数学公式展示了在给定策略、奖励和状态转移函数下,如何计算单个动作或状态的期望回报,强调了在最优策略下的价值评估。
摘要由CSDN通过智能技术生成

前言

由于公式太长,写在一个文章里面看得云里雾里,所以分开写,本文中将直接使用推导好的动作价值函数与状态价值函数,关于如何推出来的表达式,请参考:深度强化学习总结

动作、状态、奖励序列

s t , a t , r t ( s t , a t ) , s t + 1 , a t + 1 , r t + 1 ( s t + 1 , a t + 1 ) , ⋯   , s t + n , a t + n , t t + n ( s t + n , a t + n ) s_t,a_t,r_{t}(s_t,a_t),s_{t+1},a_{t+1},r_{t+1}(s_{t+1},a_{t+1}),\cdots,s_{t+n},a_{t+n},t_{t+n}(s_{t+n},a_{t+n}) st,at,rt(st,at),st+1,at+1,rt+1(st+1,at+1),,st+n,at+n,tt+n(st+n,at+n)

动作价值函数

当我们采取某个动作以后,可能的轨迹序列有多条,如何评价这个动作的价值,不能只选取某一条轨迹的价值作为评价,而应该是选择所有轨迹的均值作为评价。所以我们
首先计算在初始动作和状态已知的情况下一种可能轨迹序列所带来的回报及对应的概率。我把这种单次特定序列下的回报函数记为:
U ( a t ∣ s t , f a , f r , f t ) = [ r t ( s t , a t ) + γ r t + 1 ( s t + 1 , a t + 1 ) + ⋯ + γ n r t + n ( s t + n , a t + n ) ] U(a_t|s_t,f_a,f_r,f_t)=[r_t(s_t,a_t)+\gamma{r_{t+1}(s_{t+1},a_{t+1})}+\cdots+\gamma^nr_{t+n}(s_{t+n},a_{t+n})] U(atst,fa,fr,ft)=[rt(st,at)+γrt+1(st+1,at+1)++γnrt+n(st+n,at+n)]

对应的概率为:
P ( s t + 1 ∣ s t , a t ) ∗ P ( a t + 1 ∣ s t + 1 ) ∗ ⋯ ∗ P ( a t + n ∣ s t + n ) P(s_{t+1}|s_t,a_t)*P(a_{t+1}|s_{t+1})*\cdots*P(a_{t+n}|s_{t+n}) P(st+1st,at)P(at+1st+1)P(at+nst+n)

而某个动作的价值就是所有的可能轨迹序列所对应的回报的均值,所以需要求出所有可能的轨迹序列所对应的回报的期望:
∑ s t + 1 ⋯ ∑ s t + n ∑ a t + 1 ⋯ ∑ a t + n [ r t ( s t , a t ) + γ r t + 1 ( s t + 1 , a t + 1 ) + ⋯ + γ n r t + n ( s t + n , a t + n ) ] ∗ [ P ( s t + 1 ∣ s t , a t ) ∗ P ( a t + 1 ∣ s t + 1 ) ∗ ⋯ ∗ P ( a t + n ∣ s t + n ) ] \sum_{s_{t+1}}\cdots\sum_{s_{t+n}}\sum_{a_{t+1}}\cdots\sum_{a_{t+n}}[r_t(s_t,a_t)+\gamma{r_{t+1}(s_{t+1},a_{t+1})}+\cdots+\gamma^nr_{t+n}(s_{t+n},a_{t+n})]*[P(s_{t+1}|s_t,a_t)*P(a_{t+1}|s_{t+1})*\cdots*P(a_{t+n}|s_{t+n})] st+1st+nat+1at+n[rt(st,at)+γrt+1(st+1,at+1)++γnrt+n(st+n,at+n)][P(st+1st,at)P(at+1st+1)P(at+nst+n)]

因为是在一定状态下对于某个动作的期望回报,涉及的变量一共包括策略函数 f a f_a fa,奖励函数 f r f_r fr,转移函数 f t f_t ft,以及动作和状态。所以我们选择 V ( a t ∣ f a , f r , f t , s t ) V(a_t|f_a,f_r,f_t,s_t) V(atfa,fr,ft,st)来表示这个动作所对应的价值。
我用 V ( a t ∣ f a , f r , f t , s t ) V(a_t|f_a,f_r,f_t,s_t) V(atfa,fr,ft,st)表示对所有特定的序列求均值所得到的均值回报函数,也就是== U U U表示单次, V V V表示均值==:
V ( a t ∣ f a , f r , f t , s t ) = ∑ s t + 1 ⋯ ∑ s t + n ∑ a t + 1 ⋯ ∑ a t + n [ r t ( s t , a t ) + γ r t + 1 ( s t + 1 , a t + 1 ) + ⋯ + γ n r t + n ( s t + n , a t + n ) ] ∗ [ P ( s t + 1 ∣ s t , a t ) ∗ P ( a t + 1 ∣ s t + 1 ) ∗ ⋯ ∗ P ( a t + n ∣ s t + n ) ] = ∑ s t + 1 ⋯ ∑ s t + n ∑ a t + 1 ⋯ ∑ a t + n U ( a t ∣ s t , f a , f r , f t ) ∗ P ( s t + 1 ∣ s t , a t ) ∗ P ( a t + 1 ∣ s t + 1 ) ∗ ⋯ ∗ P ( a t + n ∣ s t + n ) \begin{split} V(a_t|f_a,f_r,f_t,s_t)&=\sum_{s_{t+1}}\cdots\sum_{s_{t+n}}\sum_{a_{t+1}}\cdots\sum_{a_{t+n}}[r_t(s_t,a_t)+\gamma{r_{t+1}(s_{t+1},a_{t+1})}+\cdots+\gamma^nr_{t+n}(s_{t+n},a_{t+n})]*[P(s_{t+1}|s_t,a_t)*P(a_{t+1}|s_{t+1})*\cdots*P(a_{t+n}|s_{t+n})] \\&=\sum_{s_{t+1}}\cdots\sum_{s_{t+n}}\sum_{a_{t+1}}\cdots\sum_{a_{t+n}}U(a_t|s_t,f_a,f_r,f_t)*P(s_{t+1}|s_t,a_t)*P(a_{t+1}|s_{t+1})*\cdots*P(a_{t+n}|s_{t+n}) \end{split} V(atfa,fr,ft,st)=st+1st+nat+1at+n[rt(st,at)+γrt+1(st+1,at+1)++γnrt+n(st+n,at+n)][P(st+1st,at)P(at+1st+1)P(at+nst+n)]=st+1st+nat+1at+nU(atst,fa,fr,ft)P(st+1st,at)P(at+1st+1)P(at+nst+n)

最优策略函数下的最大动作价值函数

V ( a t ∣ f a ∗ , f r , f t , s t ) = ∑ s t + 1 ⋯ ∑ s t + n ∑ a t + 1 ⋯ ∑ a t + n [ r t ( s t , a t ) + γ r t + 1 ( s t + 1 , a t + 1 ) + ⋯ + γ n r t + n ( s t + n , a t + n ) ] ∗ [ P ( s t + 1 ∣ s t , a t ) ∗ P ∗ ( a t + 1 ∣ s t + 1 ) ∗ ⋯ ∗ P ∗ ( a t + n ∣ s t + n ) ] = ∑ s t + 1 ⋯ ∑ s t + n ∑ a t + 1 ⋯ ∑ a t + n U ( a t ∣ s t , f a , f r , f t ) ∗ [ P ( s t + 1 ∣ s t , a t ) ∗ P ∗ ( a t + 1 ∣ s t + 1 ) ∗ ⋯ ∗ P ∗ ( a t + n ∣ s t + n ) ] \begin{split} V(a_t|f_a^*,f_r,f_t,s_t)&=\sum_{s_{t+1}}\cdots\sum_{s_{t+n}}\sum_{a_{t+1}}\cdots\sum_{a_{t+n}}[r_t(s_t,a_t)+\gamma{r_{t+1}(s_{t+1},a_{t+1})}+\cdots+\gamma^nr_{t+n}(s_{t+n},a_{t+n})]*[P(s_{t+1}|s_t,a_t)*P^*(a_{t+1}|s_{t+1})*\cdots*P^*(a_{t+n}|s_{t+n})] \\&=\sum_{s_{t+1}}\cdots\sum_{s_{t+n}}\sum_{a_{t+1}}\cdots\sum_{a_{t+n}}U(a_t|s_t,f_a,f_r,f_t)*[P(s_{t+1}|s_t,a_t)*P^*(a_{t+1}|s_{t+1})*\cdots*P^*(a_{t+n}|s_{t+n})] \end{split} V(atfa,fr,ft,st)=st+1st+nat+1at+n[rt(st,at)+γrt+1(st+1,at+1)++γnrt+n(st+n,at+n)][P(st+1st,at)P(at+1st+1)P(at+nst+n)]=st+1st+nat+1at+nU(atst,fa,fr,ft)[P(st+1st,at)P(at+1st+1)P(at+nst+n)]

状态价值函数

状态价值函数也是同样,同一个状态可能有多条轨迹,我们评价状态的价值不能只选择一条路径上的价值而应该考虑所有路径上的价值,所以就是所有路径上价值的期望价值。
首先求出在初始状态给定的情况下一条可能的轨迹序列所对应的回报与概率:
U ( s t ∣ f a , f r , f t ) = [ r t ( s t , a t ) + γ r t + 1 ( s t + 1 , a t + 1 ) + ⋯ + γ n r t + n ( s t + n , a t + n ) ] U(s_t|f_a,f_r,f_t)=[r_t(s_t,a_t)+\gamma{r_{t+1}(s_{t+1},a_{t+1})}+\cdots+\gamma^n{r_{t+n}(s_{t+n},a_{t+n})}] U(stfa,fr,ft)=[rt(st,at)+γrt+1(st+1,at+1)++γnrt+n(st+n,at+n)]

以上就是在给定策略函数,奖励函数,状态转移函数的情况下一条特定序列的回报函数。

对应的概率为:
[ P ( a t ∣ s t ) ∗ P ( s t + 1 ∣ s t , a t ) ∗ P ( a t + 1 ∣ s t + 1 ) ∗ ⋯ ∗ P ( a t + n ∣ s t + n ) ] [P(a_t|s_t)*P(s_{t+1}|s_t,a_t)*P(a_{t+1}|s_{t+1})*\cdots*P(a_{t+n}|s_{t+n})] [P(atst)P(st+1st,at)P(at+1st+1)P(at+nst+n)]

然后求出所有可能的轨迹序列所对应的回报与概率的加权和:
∑ a t ∑ a t + 1 ⋯ ∑ a t + n ∑ s t + 1 ⋯ ∑ s t + n [ r t ( s t , a t ) + γ r t + 1 ( s t + 1 , a t + 1 ) + ⋯ + γ n r t + n ( s t + n , a t + n ) ] ∗ [ P ( a t ∣ s t ) ∗ P ( s t + 1 ∣ s t , a t ) ∗ P ( a t + 1 ∣ s t + 1 ) ∗ ⋯ ∗ P ( a t + n ∣ s t + n ) ] \sum_{a_t}\sum_{a_{t+1}}\cdots\sum_{a_{t+n}}\sum_{s_{t+1}}\cdots\sum_{s_{t+n}}[r_t(s_t,a_t)+\gamma{r_{t+1}(s_{t+1},a_{t+1})}+\cdots+\gamma^n{r_{t+n}(s_{t+n},a_{t+n})}]*[P(a_t|s_t)*P(s_{t+1}|s_t,a_t)*P(a_{t+1}|s_{t+1})*\cdots*P(a_{t+n}|s_{t+n})] atat+1at+nst+1st+n[rt(st,at)+γrt+1(st+1,at+1)++γnrt+n(st+n,at+n)][P(atst)P(st+1st,at)P(at+1st+1)P(at+nst+n)]

同样,我们也分析一下这个值与什么有关,与策略函数 f a f_a fa,奖励函数 f r f_r fr,转移函数 f t f_t ft,初始状态有关。用 V ( s t ∣ f a , f r , f t ) V(s_t|f_a,f_r,f_t) V(stfa,fr,ft)来表示它。也就是:
V ( s t ∣ f a , f r , f t ) = ∑ a t ∑ a t + 1 ⋯ ∑ a t + n ∑ s t + 1 ⋯ ∑ s t + n [ r t ( s t , a t ) + γ r t + 1 ( s t + 1 , a t + 1 ) + ⋯ + γ n r t + n ( s t + n , a t + n ) ] ∗ [ P ( a t ∣ s t ) ∗ P ( s t + 1 ∣ s t , a t ) ∗ P ( a t + 1 ∣ s t + 1 ) ∗ ⋯ ∗ P ( a t + n ∣ s t + n ) ] = ∑ a t ∑ a t + 1 ⋯ ∑ a t + n ∑ s t + 1 ⋯ ∑ s t + n U ( s t ∣ f a , f r , f t ) ∗ [ P ( a t ∣ s t ) ∗ P ( s t + 1 ∣ s t , a t ) ∗ P ( a t + 1 ∣ s t + 1 ) ∗ ⋯ ∗ P ( a t + n ∣ s t + n ) ] \begin{split} V(s_t|f_a,f_r,f_t)&=\sum_{a_t}\sum_{a_{t+1}}\cdots\sum_{a_{t+n}}\sum_{s_{t+1}}\cdots\sum_{s_{t+n}}[r_t(s_t,a_t)+\gamma{r_{t+1}(s_{t+1},a_{t+1})}+\cdots+\gamma^n{r_{t+n}(s_{t+n},a_{t+n})}]*[P(a_t|s_t)*P(s_{t+1}|s_t,a_t)*P(a_{t+1}|s_{t+1})*\cdots*P(a_{t+n}|s_{t+n})] \\&=\sum_{a_t}\sum_{a_{t+1}}\cdots\sum_{a_{t+n}}\sum_{s_{t+1}}\cdots\sum_{s_{t+n}}U(s_t|f_a,f_r,f_t)*[P(a_t|s_t)*P(s_{t+1}|s_t,a_t)*P(a_{t+1}|s_{t+1})*\cdots*P(a_{t+n}|s_{t+n})] \end{split} V(stfa,fr,ft)=atat+1at+nst+1st+n[rt(st,at)+γrt+1(st+1,at+1)++γnrt+n(st+n,at+n)][P(atst)P(st+1st,at)P(at+1st+1)P(at+nst+n)]=atat+1at+nst+1st+nU(stfa,fr,ft)[P(atst)P(st+1st,at)P(at+1st+1)P(at+nst+n)]

也就是状态的价值函数也是所有轨迹价值函数的均值,最优策略影响的只不过是各条轨迹出现的概率也就是各种回报出现的概率。

最优策略函数下的最大状态价值函数

V ( s t ∣ f a ∗ , f r , f t ) = ∑ a t ∑ a t + 1 ⋯ ∑ a t + n ∑ s t + 1 ⋯ ∑ s t + n [ r t ( s t , a t ) + γ r t + 1 ( s t + 1 , a t + 1 ) + ⋯ + γ n r t + n ( s t + n , a t + n ) ] ∗ [ P ∗ ( a t ∣ s t ) ∗ P ( s t + 1 ∣ s t , a t ) ∗ P ∗ ( a t + 1 ∣ s t + 1 ) ∗ ⋯ ∗ P ∗ ( a t + n ∣ s t + n ) ] = ∑ a t ∑ a t + 1 ⋯ ∑ a t + n ∑ s t + 1 ⋯ ∑ s t + n U ( s t ∣ f a , f r , f t ) ∗ [ P ∗ ( a t ∣ s t ) ∗ P ( s t + 1 ∣ s t , a t ) ∗ P ∗ ( a t + 1 ∣ s t + 1 ) ∗ ⋯ ∗ P ∗ ( a t + n ∣ s t + n ) ] \begin{split} V(s_t|f_a^*,f_r,f_t)&=\sum_{a_t}\sum_{a_{t+1}}\cdots\sum_{a_{t+n}}\sum_{s_{t+1}}\cdots\sum_{s_{t+n}}[r_t(s_t,a_t)+\gamma{r_{t+1}(s_{t+1},a_{t+1})}+\cdots+\gamma^n{r_{t+n}(s_{t+n},a_{t+n})}]*[P^*(a_t|s_t)*P(s_{t+1}|s_t,a_t)*P^*(a_{t+1}|s_{t+1})*\cdots*P^*(a_{t+n}|s_{t+n})] \\&=\sum_{a_t}\sum_{a_{t+1}}\cdots\sum_{a_{t+n}}\sum_{s_{t+1}}\cdots\sum_{s_{t+n}}U(s_t|f_a,f_r,f_t)*[P^*(a_t|s_t)*P(s_{t+1}|s_t,a_t)*P^*(a_{t+1}|s_{t+1})*\cdots*P^*(a_{t+n}|s_{t+n})] \end{split} V(stfa,fr,ft)=atat+1at+nst+1st+n[rt(st,at)+γrt+1(st+1,at+1)++γnrt+n(st+n,at+n)][P(atst)P(st+1st,at)P(at+1st+1)P(at+nst+n)]=atat+1at+nst+1st+nU(stfa,fr,ft)[P(atst)P(st+1st,at)P(at+1st+1)P(at+nst+n)]

参考文献

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
哈密顿-雅可比-贝尔曼方程推导是基于动态规划的思想。动态规划是一种解决多阶段决策过程最优化问题的方法。在这个过程中,我们需要找到一个最优策略,使得总成本最小化。这个问题可以被分解成多个子问题,每个子问题都是一个最优化问题。通过解决这些子问题,我们可以得到整个问题的最优解。 在动态规划中,我们需要定义一个价值函数,它表示在当前状态下采取最优策略所能得到的最小成本。哈密顿-雅可比-贝尔曼方程就是用来计算这个价值函数的。具体来说,它是一个偏微分方程,描述了价值函数在时间和状态上的变化。 哈密顿-雅可比-贝尔曼方程推导可以分为两个步骤。首先,我们需要定义一个贝尔曼方程,它描述了价值函数在一个时间步长内的变化。然后,我们将这个贝尔曼方程推广到连续时间和状态空间上,得到哈密顿-雅可比-贝尔曼方程。 具体来说,贝尔曼方程可以表示为: V(s) = min_u {c(s,u) + γ ∑_s' p(s'|s,u) V(s')} 其中,V(s)表示在状态s下的价值函数,c(s,u)表示在状态s下采取行动u所产生的成本,p(s'|s,u)表示在状态s下采取行动u后转移到状态s'的概率,γ是一个折扣因子,用于平衡当前和未来的成本。 接下来,我们将这个贝尔曼方程推广到连续时间和状态空间上。我们定义一个哈密顿函数H(x,u,t),它表示在时间t和状态x下采取行动u所能得到的最小成本。哈密顿函数可以表示为: H(x,u,t) = min_v {c(x,u,v,t) + ∂V(x,t)/∂t + ∑_i=1^n f_i(x,u,v,t) ∂V(x,t)/∂x_i} 其中,c(x,u,v,t)表示在状态x下采取行动u和v所产生的成本,f_i(x,u,v,t)表示状态x在第i个维度上的变化率。 最后,我们可以得到哈密顿-雅可比-贝尔曼方程: ∂V(x,t)/∂t + min_u H(x,u,t) = 0 这个方程描述了价值函数在时间和状态上的变化。通过求解这个方程,我们可以得到最优策略和最小成本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值