深度强化学习课程文档

贝尔曼方程:简化我们的价值估计

Hugging Face's logo
加入 Hugging Face 社区

并获得增强型文档体验

开始使用

贝尔曼方程:简化我们的价值估计

贝尔曼方程 **简化了我们对状态值或状态-动作值计算。**

Bellman equation

根据我们到目前为止的学习,我们知道如果我们计算V(St)V(S_t)(状态的价值),我们需要计算从该状态开始的回报,然后在之后一直遵循策略。**(以下示例中定义的策略是贪婪策略;为了简化,我们没有对奖励进行折扣。)**

所以要计算V(St)V(S_t),我们需要计算预期奖励的总和。因此

Bellman equation
要计算状态 1 的价值:如果智能体从该状态开始,然后一直遵循贪婪策略(采取导致最佳状态值的行动)的所有时间步的奖励总和。

然后,要计算V(St+1)V(S_{t+1}),我们需要计算从该状态开始的回报St+1S_{t+1}.

Bellman equation
要计算状态 2 的价值:如果智能体从该状态开始,然后一直遵循策略的所有时间步的奖励总和。

因此,您可能已经注意到,我们在重复计算不同状态的价值,如果需要对每个状态值或状态-动作值进行计算,这将非常繁琐。

与其为每个状态或每个状态-动作对计算预期回报,**我们可以使用贝尔曼方程。**(提示:如果您知道动态规划是什么,这与它非常相似!如果您不知道它是什么,不用担心!)

贝尔曼方程是一个递归方程,其工作原理如下:与其从每个状态的开头开始计算回报,我们可以将任何状态的价值视为

即时奖励Rt+1R_{t+1}+ 紧随其后的状态的折扣价值(γV(St+1)\gamma * V(S_{t+1}) ) .

Bellman equation

如果我们回到我们的示例,我们可以说状态 1 的价值等于如果我们从该状态开始的预期累计回报。

Bellman equation

要计算状态 1 的价值:如果智能体从状态 1 开始,然后一直遵循策略的所有时间步的奖励总和。

这等效于V(St)V(S_{t})= 即时奖励Rt+1R_{t+1}+ 下一个状态的折扣价值γV(St+1)\gamma * V(S_{t+1})

Bellman equation
为了简化,这里我们不打折,所以 gamma = 1。

为了简单起见,这里我们不打折,所以 gamma = 1。但是你将在本单元的 Q-Learning 部分学习一个 gamma = 0.99 的例子。

  • 的值V(St+1)V(S_{t+1}) = 即时奖励Rt+2R_{t+2}+ 下一状态的折现值(gammaV(St+2)gamma * V(S_{t+2}) ).
  • 等等。

回顾一下,贝尔曼方程的思想是,我们不是将每个值计算为预期回报的总和,**这是一个漫长的过程**,而是将值计算为**即时奖励 + 后续状态的折现值的总和。**

在进入下一节之前,思考一下 gamma 在贝尔曼方程中的作用。如果 gamma 的值非常低(例如 0.1 甚至 0)会发生什么?如果值是 1 会发生什么?如果值非常高,例如一百万会发生什么?

< > 更新 在 GitHub 上