标准DQN在测试算法性能时为什么要将探索概率epsilon设置为0.05呢,而不是使用其他探索概率的epsilon-greedy策略或者直接使用greedy探索策略呢?
标准dqn的策略网络参数更新所采用的规则为Q-learning中的更新规则,总所周知的是Q-learning是异策略算法,异策略算法就是行为策略和评估策略(更新所得策略)是不同的。
更新规则:

q-learning 如果使用不使用函数近似来表示Q值,那么存在:

也就是说,只要运行迭代的次数足够多,趋近于无穷的情况那么我们得到最优策略下的Q值,而最优策略又必是确定性策略,那么我们就可以获得最优策略了。
但是如果不使用函数近似来表示Q值,那么算法就没有泛化性,由于实际问题中状态空间十分巨大,所以这样做是不现实的。面对实际问题唯一可行的就是使用函数近似来表示Q值,如果使用函数近似后的Q-learning能够收敛并获得最优解,那么就有:

那么,我们就可以获得最优Q值。
但是现实是使用函数近似后的Q-learning往往难以收敛,就连获得局部最优解都难以保证,尤其是使用非线性的函数表示Q值,也就是说实际使用函数近似后的Q-learning得到的最终策略并不是确定性策略,因为只有得到最优解我们才会获得最优策略,也就是说只有最终获得最优策略才是确定性策略,而算法在中间的迭代过程(计算过程)所进行评估得到的策略(中间策略)都不是确定性策略,都是随机策略。
这里面就有一个误区,那就是Q-learning学习到的策略就一定是确定性策略,其实不然,Q-learning只是在迭代计算的时候更新规则使用的是确定性的更新规则( 使用后一状态的最大Q值来代替V值而不是计算各Q值的期望, 即 max Q'(s,a) ),也只用Q-learning算法最终得到最优策略的时候我们才会获得确定性策略,其中的迭代过程中所评估的策略都不是确定性的策略。而使用函数近似的Q-learning算法是难以获得最优解的,或者说使用函数近似后的Q-learning最终能得到的策略都是随机策略,这也是为什么我们在评估函数近似的Q-learning的时候是使用随机策略(epilon-greedy策略)而不是确定性策略(greedy策略)。
那么为什么在标准dqn中要将epilon设置为0.05呢???
在Q-learning的更新规则可以看到,在迭代计算中所进行评估的策略是当前epilon下的epilon-greedy策略,但是需要注意的一点是虽然中间迭代计算过程中的评估策略是epilon-greedy策略,但是它的Q值并不是该策略下的真实值。那么又该如何评价计算过程中的策略性能呢,这时当然是使用epilon-greedy策略,也就是当前所得Q值确定的epilon-greedy策略,又由于当前评估策略的Q值并不是当前epilon下的最优解或者说并不是当前epilon下的真实Q值,这也就导致此时进行测评时epilon并没有一个很好的依据,但是有一点就是训练策略的epilon和测试策略的epilon相近那么此时测试所得性能表现就会越好。但由于我们实际测试算法性能时需要对比的是不同算法的性能,那么只要保证每个算法在相同训练时间下测试策略使用的epilon保持一致就可(各算法在相同训练时间下对应的测试epilon相同即可),至于单独一个算法在不同训练时间下测试策略的epilon的设置和训练epilon设置是否相近并不能太多影响各算法间性能的对比,因此我们可以在整个测试期间都将epilon设置为一个固定值。由于在标准dqn中在运行一段时间后训练epilon固定为0.1,那么我们最终评估策略时epilon都是等于0.1的,而此时的Q值所对应的真实策略应该是epilon小于0.1的epilon-greedy策略(由于Q-learning的更新规则导致),同时由于最终设定统一的测试epilon应该更多的考虑运算后期的真实性能测评,因此测试epilon设置最好为小于最终训练epilon=0.1的一个值,因此这里设置为0.05(当然这也是小于0.1大于0的一个中间值,由于最终策略不是epilon=0的确定性策略也不是最后训练策略epsilon=0.1,因此取中间值0.05)。
------------------------------------------------------
标准DQN在测试算法性能时为什么要将探索概率epsilon设置为0.05呢,而不是使用其他探索概率的epsilon-greedy策略或者直接使用greedy探索策略呢?的更多相关文章
- (5) openssl speed(测试算法性能)和openssl rand(生成随机数)
1.1 openssl speed 测试加密算法的性能 支持的算法有: openssl speed [md2] [mdc2] [md5] [hmac] [sha1] [rmd160] [idea-cb ...
- Apache JMeter--网站自动测试与性能测评
Apache JMeter--网站自动测试与性能测评 2013-02-28 15:48:05 标签:Jmeter From:http://bdql.iteye.com/blog/291987 出于学习 ...
- 使用iozone测试磁盘性能
IOzone是一个文件系统测试基准工具.可以测试不同的操作系统中文件系统的读写性能.可以通过 write, re-write, read, re-read, random read, random w ...
- 【转】利用 Apache JMeter 测试 WebSphere 性能
如果您预算紧张并且时间紧迫 —— 或者即使您不是这样 —— 那么,您可能希望考虑使用 JMeter 来对 Web 和其他应用程序进行压力测试.IBM 的 Greg Herringer 详细描述他使用这 ...
- 背景建模技术(二):BgsLibrary的框架、背景建模的37种算法性能分析、背景建模技术的挑战
背景建模技术(二):BgsLibrary的框架.背景建模的37种算法性能分析.背景建模技术的挑战 1.基于MFC的BgsLibrary软件下载 下载地址:http://download.csdn.ne ...
- 使用iozone测试磁盘性能(测试文件读写)
IOzone是一个文件系统测试基准工具.可以测试不同的操作系统中文件系统的读写性能.可以通过 write, re-write, read, re-read, random read, random w ...
- 【机器学习】机器学习入门02 - 数据拆分与测试&算法评价与调整
0. 前情回顾 上一周的文章中,我们通过kNN算法了解了机器学习的一些基本概念.我们自己实现了简单的kNN算法,体会了其过程.这一周,让我们继续机器学习的探索. 1. 数据集的拆分 上次的kNN算法介 ...
- Android IOS WebRTC 音视频开发总结(五六)-- 如何测试网络性能?
本文主要介绍如何测试网络性能,文章来自博客园RTC.Blacker,欢迎关注微信公众号blacker,更多详见www.rtc.help 网络性能直接决定了视频通话效果,比如qq,很多时候我们我们觉得通 ...
- iozone测试磁盘性能
什么是iozone? iozone是一个文件系统的benchmark工具,可以测试不同的操作系统中文件系统的读写性能. 可以测试 Read, write, re-read,re-write, read ...
- iperf测试网络性能
分类: LINUX 2013-06-17 18:52:21 Iperf是一个网络性能测试工具.可以测试TCP和UDP带宽质量,可以测量最大TCP带宽,具有多种参数和UDP特性,可以报告带宽 ...
随机推荐
- 3个月搞定计算机二级C语言!高效刷题系列进行中
前言 大家好,我是梁国庆. 计算机二级应该是每一位大学生的必修课,相信很多同学的大学flag中都会有它的身影. 我在大学里也不止一次的想要考计算机二级office,但由于种种原因,备考了几次都不了了之 ...
- 第四届物联网与机器学习国际学术会议(IoTML 2024)
[ACM独立出版,高录用,见刊检索快速稳定]第四届物联网与机器学习国际学术会议(IoTML 2024) [IoTML 2023会后三个半月内完成EI检索]2024 4th International ...
- PHP 程序员转 Go 语言的经历分享
大家好,我是码农先森. 之前有朋友让我分享从 PHP 转 Go 的经历,这次它来了.我主要从模仿.进阶.应用这三个方面来描述转 Go 的经历及心得.模仿是良好的开端,进阶是艰难的成长,应用是认知的提升 ...
- 各种语言的OEP大全
Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解` 各种语言的OEP大全 日期:2017-5-19 阿珏 教程 ...
- 剖析 Kafka 消息丢失的原因
目录 前言 一.生产者导致消息丢失的场景 场景1:消息体太大 解决方案 : 1.减少生产者发送消息体体积 2.调整参数max.request.size 场景2:异步发送机制 解决方案 : 1.使用带回 ...
- 迭代器模式(Interator Pattern)
一.模式动机 迭代器模式(Iterator Pattern)是一种使用频率非常高的行为型设计模式,迭代器用于对一个聚合对象进行遍历.通过引入迭代器可以将数据的遍历功能从聚合对象中分离出来,聚合对象只负 ...
- 降维(二)PCA
PCA 主成成分分析(Principal Component Analysis,PCA)在目前是非常热门的降维算法.首先它找到一个最接近数据的超平面,然后将数据投影到这个平面上. 保持方差(Prese ...
- 基于.NET Core + Jquery实现文件断点分片上传
基于.NET Core + Jquery实现文件断点分片上传 前言 该项目是基于.NET Core 和 Jquery实现的文件分片上传,没有经过测试,因为博主没有那么大的文件去测试,目前上传2G左右的 ...
- QT学习:00 介绍
--- title: framework-cpp-qt-00-介绍 date: 2020-04-08 15:41:54 categories: tags: - c/c++ - qt --- 章节描述: ...
- Linux查看系统占用
## 查看内存占用 #CPU占用最多的前10个进程: ps auxw|head -1;ps auxw|sort -rn -k3|head -10 #内存消耗最多的前10个进程 ps auxw|head ...