reinforcement-learning - 贝尔曼方程的版本
问题描述
在浏览有关强化学习的各种资料时,我发现了V
和Q
方程的两个版本:
这对:
V(s) = max<sub>a</sub> (sum<sub>s'</sub> P(s'|s,a) (R(s,a,s') + lambda V(s')))
Q(s,a) = sum<sub>s'</sub> P(s'|s,a) (R(s,a,s') + lambda max<sub>a'</sub> Q(s',a'))
而这一对:
V(s) = R(s,a) + max<sub>a</sub> (sum <sub>s'</sub> P(s'|s,a) lambda V(s'))
Q(s,a) = R(s,a) + sum<sub>s'</sub> (P(s'|s,a) lambda max<sub>a'</sub> Q(s',a'))
主要区别在于其价值中是否包含即时奖励,V
以及Q
状态的价值是完全由状态决定还是由转换决定。虽然我很少看到后面的一对,但我相信它是正确的。
这两者之间的这些或任何其他差异是否会影响各种强化算法的工作方式?
解决方案
当奖励对于给定的状态和动作是确定的时使用第一对,当奖励也是随机的时使用第二对。
实际上,环境决定了您必须使用哪一对。例如,在 Atari-2600 这样的环境中,第一对是有效的,因为对于给定的状态和动作,您总是获得相同的奖励值。
推荐阅读
- java - 比较 Java 中的地理位置点
- linux - 如何将 Linux 移植到带有 Kendryte K210 内核的 MAIXDUINO 板上?
- c# - 按空字符串搜索列不起作用
- angular - 在运行时读取 Angular 中的服务器环境变量
- sql - SQL Server 多租户数据库分区与索引
- css - 如何在多行 React Native TextInput 的开头添加默认文本
- vue.js - 使用 Apollo + Vue 进行异步调用
- javascript - 给出错误输入时,jQuery自动完成ajax无法用于自动更正
- mysql - 在开始新的更改操作之前缺少逗号。(靠近位置 68 的“BY”)和无法识别的更改操作。(靠近位置 68 的“BY”)
- maven - 使用 SonarScanner 在 Google Cloud Build 上构建 Maven 依赖项项目