深度强化学习课程文档

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

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
为简化起见,这里我们不折现,所以伽马 = 1。

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

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

总而言之,贝尔曼方程的思想是,我们不是将每个价值计算为预期收益的总和(这是一个漫长的过程),而是将价值计算为即时奖励 + 下一个状态的折现价值的总和。

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

< > 在 GitHub 上更新