- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在DQN、Actor-Critic或A3C中选择奖励值时,是否有选择奖励值的通用规则?
正如我简单听到的那样,(-1 ~ +1) 奖励是一种非常有效的选择。
你能告诉我什么建议和原因吗??
最佳答案
理想情况下,您希望标准化您的奖励(即 0 均值和单位方差)。在您的示例中,奖励介于 -1 到 1 之间,满足此条件。我相信原因是因为它在更新你的神经网络参数时加速了梯度下降,而且它还允许你的 RL 代理更有效地区分好的和坏的 Action 。
举个例子:假设我们正在尝试构建一个智能体来过马路,如果它过马路,它会获得 1 的奖励。如果它被车撞了,它会获得 -1 的奖励,并且每一步的奖励为 0。就百分比而言,成功的奖励远远高于失败的奖励(被车撞)。
但是,如果我们给智能体成功过马路奖励 1,000,000,001,并给它被车撞了 999,999,999 的奖励(这种情况和上面的标准化时相同),成功不再是和以前一样发音。此外,如果你对如此高的奖励进行折扣,这将使这两种情况的区别更加难以识别。
这在 DQN 和其他函数逼近方法中尤其是一个问题,因为这些方法概括了状态、 Action 和奖励空间。所以 -1 和 1 的奖励有很大的不同,但是,如果我们使用一个函数来概括它,那么 1,000,000,001 和 999,999,999 的奖励基本上是相同的。
关于reinforcement-learning - 深度强化学习中的有效奖励范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51814505/
下面的脚本 test.php 旨在放置在我所有 wordpress 站点的特定目录中。它的作用是抓取下面$source地址的文件,解压到它所在的目录下。这就是它的全部意图。 例如,我将在我的中央服务器
我有以下代码,并且在 copyMessages() 处遇到资源注入(inject)问题。 我不知道如何解决这个问题? Abstract: Attackers are able to control t
上个学期我介绍了 Java 中的面向对象编程,下学期我将学习 Java 计算机科学 2,它基本上学习用 Java 实现的各种算法和数据结构,例如链表、二叉树等。 ..我可以通过哪些方法来巩固在面向对象
我很好奇 Fortify 规则集在 Android 应用程序中寻找哪些漏洞。不幸的是,我找不到任何相关文件。我知道他们四处寻找 Java 特定的漏洞以及组件的权限检查——还有其他吗? SQL注入(in
我在 fortify 报告中收到第 4 行的 XML 外部实体注入(inject)安全警告。不知道如何解决它。我对 SOAP、JAXB 和 Marshaller 还很陌生。 1 private
查找以“#PermitRootLogin yes”开头的行并替换为“PermitRootLogin no” 在底部添加一行“AllowUsers user1@test.com” 重新启动 sshd 守
我正在尝试强化我的 session 并找到了下面的代码。我的问题是这一行 isset($_SESSION['last_ip']) !== $_SERVER['REMOTE_ADDR']。 当我回显比较
当我在 Java 8 中包含以下代码时,我在 fortify 中遇到 Null Dereference 问题: String name = statusList.stream() .map(s
我有一个强化漏洞:跨站点脚本:DOM。 在我的应用程序(asp.net)中,我们动态构建 html 并将其分配给一个 div 标签,它在其中提示问题。 str += '
强化安全运行不合规代码 public static A read(String path) throws IOException, ClassNotFoundException { try (
出于安全考虑,我计划不允许 Azure 服务与 Azure 服务进行通信,而只允许与它正在使用的服务进行通信。 例如,我有一些使用 Azure SQL 数据库的 Web 应用程序。我应该只在 Azur
出于安全考虑,我计划不允许 Azure 服务与 Azure 服务进行通信,而只允许与它正在使用的服务进行通信。 例如,我有一些使用 Azure SQL 数据库的 Web 应用程序。我应该只在 Azur
早上好,我在 Android 项目上使用 native 库,它只是包签名的简单 md5hash,但是我在具有 JNI 功能的 64 位设备上遇到问题: char *getSignatureMd5(JN
我正在开发一个基于 struts 的 Web 应用程序。在该应用程序中,我们从 Jsp 生成并下载 xls 文件。在Jsp文件和web.xml中,我将内容类型设置为“application/vnd.m
我正在处理遗留系统,我们只是用 HP Fortify 扫描了它并得到了JavaScript Hijacking: Vulnerable Framework,代码如下。我能做些什么来确保这一点?我并不完
大家好,我有一个由 fopen 使用产生的强化问题“路径操作”。根据 fortify,我可以实现一个白名单来修复它,所以有我的白名单验证器: white_list.c #define BUFF_WHI
我们正在使用 Fortify 扫描我的 Android 源代码,但我无法解决这个问题: Category: Android Bad Practices: Missing Google Play Ser
我是一名优秀的程序员,十分优秀!