贝尔曼方程:简化我们的价值估计
贝尔曼方程 **简化了我们对状态值或状态-动作值计算。**
根据我们到目前为止的学习,我们知道如果我们计算(状态的价值),我们需要计算从该状态开始的回报,然后在之后一直遵循策略。**(以下示例中定义的策略是贪婪策略;为了简化,我们没有对奖励进行折扣。)**
所以要计算,我们需要计算预期奖励的总和。因此
然后,要计算,我们需要计算从该状态开始的回报.
因此,您可能已经注意到,我们在重复计算不同状态的价值,如果需要对每个状态值或状态-动作值进行计算,这将非常繁琐。
与其为每个状态或每个状态-动作对计算预期回报,**我们可以使用贝尔曼方程。**(提示:如果您知道动态规划是什么,这与它非常相似!如果您不知道它是什么,不用担心!)
贝尔曼方程是一个递归方程,其工作原理如下:与其从每个状态的开头开始计算回报,我们可以将任何状态的价值视为
即时奖励+ 紧随其后的状态的折扣价值( ) .
如果我们回到我们的示例,我们可以说状态 1 的价值等于如果我们从该状态开始的预期累计回报。
要计算状态 1 的价值:如果智能体从状态 1 开始,然后一直遵循策略的所有时间步的奖励总和。
这等效于= 即时奖励+ 下一个状态的折扣价值
为了简单起见,这里我们不打折,所以 gamma = 1。但是你将在本单元的 Q-Learning 部分学习一个 gamma = 0.99 的例子。
- 的值= 即时奖励+ 下一状态的折现值( ).
- 等等。
回顾一下,贝尔曼方程的思想是,我们不是将每个值计算为预期回报的总和,**这是一个漫长的过程**,而是将值计算为**即时奖励 + 后续状态的折现值的总和。**
在进入下一节之前,思考一下 gamma 在贝尔曼方程中的作用。如果 gamma 的值非常低(例如 0.1 甚至 0)会发生什么?如果值是 1 会发生什么?如果值非常高,例如一百万会发生什么?
< > 更新 在 GitHub 上