深度强化学习课程文档

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

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-学习部分学习一个 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 上更新