强化学习经典算法笔记(零):贝尔曼方程的推导

强化学习经典算法笔记——推导贝尔曼方程

  在写强化学习经典算法笔记(一):价值迭代算法Value Iteration强化学习经典算法笔记(二):策略迭代算法Policy Iteration的时候,感觉关键的部分——为什么要这样进行值(策略)迭代,没有讲清楚,概念有点模糊,所以感觉有必要重新关注一下Bellman Equation的来龙去脉,也是加强自己对这一块内容的理解。

相关概念

  在介绍贝尔曼方程之前,必须对几个概念有所了解,下面我们一一介绍。

  • 策略函数,Policy Function
  • 状态价值函数,State Value Function
  • 状态动作价值函数,State-action Value Function
策略函数 Policy Function

  策略常表示为 π ( s ) :   S → A \pi(s):\ S\rightarrow A π(s): SA,函数的输入是一个状态 s s s,输出状态 s s s下应该采取的动作 a a a 。策略函数的最优化是强化学习算法的核心任务。

状态价值函数 State Value Function

  策略 π ( s ) \pi(s) π(s)的优劣可以用状态价值函数来评价。常简称为Value Function,即价值函数。

  Value Function的意义是,当处于状态 s t s_t st时,从下一个状态 s t + 1 s_{t+1} st+1开始,直至一个Episode结束,都按照策略 π ( s ) \pi(s) π(s)与env进行交互,将从 s t + 1 s_{t+1} st+1 s ∞ s_{\infin} s过程中得到的reward累加起来,取其期望值作为状态 s t s_t st的价值。即
V π ( s ) = E π [ R t   ∣   s t = s ] V^{\pi}(s)=E_{\pi}[R_t\ |\ s_t=s] Vπ(s)=Eπ[Rt  st=s]
因为 R t = ∑ k = 0 ∞ γ k   r t + k + 1 R_t=\sum_{k=0}^{\infin} \gamma^k\ r_{t+k+1} Rt=k=0γk rt+k+1 ,其中 r t + 1 r_{t+1} rt+1表示从 s t s_t st转移到 s t + 1 s_{t+1} st+1时的回报。
V π ( s ) = E π [ ∑ k = 0 ∞ γ k   r t + k + 1   ∣   s t = s ] V^{\pi}(s)=E_{\pi}[\sum_{k=0}^{\infin}\gamma^k\ r_{t+k+1}\ |\ s_t=s] Vπ(s)=Eπ[k=0γk rt+k+1  st=s]

  直观来看,一个状态的价值是从这个状态开始,依照某种策略,继续与环境进行交互而得到的总的回报。因此可以说Value Function受两个变量的控制,一个是状态 s s s,从不同的状态出发,得到的分数有可能一样,有可能不一样。另一个就是策略函数Policy Function,Value Function一定是建立在某个策略上做出的评价,处于同一个状态 s s s时,依照策略 π 1 ( s ) \pi_1(s) π1(s)玩下去的得分高于 π 2 ( s ) \pi_2(s) π2(s),我们就可以说, π 1 \pi_1 π1优于 π 2 \pi_2 π2

  另外需要注意,Value的定义是取累计回报的期望值,因为环境的不确定,进行N个episode的实验,得到N个 s t + 1 s_{t+1} st+1 s ∞ s_{\infin} s的累计汇报 R t R_t Rt,这N个值不可能完全一样,因此可以将 R t R_t Rt建模为一个随机变量,并取 E [ R t ] E[R_t] E[Rt]作为状态 s t s_t st的比较可靠的评价。

状态动作价值函数 State-action Value Function

  状态动作价值函数一般称为Q值函数——Q Function。相比于Value Function是对状态的评估,Q Function是对(状态-动作对) 的评估。

  Q值的定义是,给定一个状态 s t s_t st,采取动作 a t a_t at后,按照某一策略 π ( s ) \pi(s) π(s)与环境继续进行交互,得到的累计汇报的期望值。
Q π ( s , a ) = E π [ R t   ∣   s t = s , a t = a ] Q^{\pi}(s,a)=E_{\pi}[R_t\ |\ s_t=s,a_t=a] Qπ(s,a)=Eπ[Rt  st=s,at=a]

Q π ( s , a ) = E π [ ∑ k = 0 ∞ γ k   r t + k + 1   ∣   s t = s , a t = a ] Q^{\pi}(s,a) = E_{\pi}[\sum_{k=0}^{\infin}\gamma^k\ r_{t+k+1}\ |\ s_t=s,a_t=a] Qπ(s,a)=Eπ[k=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 这个方程描述了价值函数在时间和状态上的变化。通过求解这个方程,我们可以得到最优策略和最小成本。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值