G-A3C的代码:

https://gitee.com/devilmaycry812839668/gpu_a3c

论文:

《Reinforcement Learning thorugh Asynchronous Advantage Actor-Critic on a GPU》

论文地址:

https://openreview.net/forum?id=r1VGvBcxl

=====================================================

G-A3C,原意是GPU版本的A3C,但是仔细读过后发现这个GPU版本的算法好像和CPU版本的并不相同。

其中最大的区别就是网络反传时副本是不是由多个进程持有;在A3C中,多个进程中均持有一份可以前后向传播的神经网络,也就是说在多个进程中都可以使用自有的神经网络进行前向推理来进行数据采样,同时也能使用后向计算来进行神经网络的训练;也就是说,在A3C中数据采样和训练用的是同一套神经网络的参数,因此在A3C中的并行算法的异步参数更新和监督学习的并行化异步更新更相似,因此在A3C中虽然使用异步更新的方式,虽然对收敛性造成影响但是也不至于完全发散。

G-A3C中,所有的采样进程并不持有神经网络,全局只有一个神经网络在GPU中,所以不论是神经网络的前向推理还是后向训练都是使用这个神经网络,但是由于异步更新的特点,所以各进程采样的数据时所用的神经网络参数和训练时的神经网络参数时存在一定滞后性的,因此就导致G-A3C中训练神经网络时使用的数据往往对收敛性造成更大的影响,这也implicit的将同策略强化学习算法变成了异策略的强化学习算法;在之前的blog中也讨论过类似的问题,那就是同策略的强化学习算法如果按照异策略强化学习算法那样使用的数据和训练时神经网络有一定滞后性,这样虽然会极大的影响收敛,并且严重时导致不收敛,但是在很多情况下(很多的game环境下)也是可以保证收敛的。

总的来说,A3C算法采集数据和训练数据使用的是同一套神经网络参数,虽然在参数更新时使用异步方式,但是该方式更类似于监督学习中的异步更新方式,虽然也会对算法收敛性造成影响但是要远远低于G-A3C;在G-A3C中,由于数据采样时的神经网络参数与训练时的神经网络参数存在一定的滞后性,而这种滞后性是一种概率分布上的不同,因此这种对收敛性的影响往往要高于A3C算法。

在G-A3C中,为了抑制滞后性造成的对收敛性的影响,使用了一种概率下限的方式,也就是说对于采样后的数据在训练时其概率值是设置了一个下限值的,如果某个采样数据的动作在训练时低于该值那么就应该使其至少不低于该值;在具体实现时,则是在运行时对采样动作的log概率加入一个极小项,也就是log(p+epsilon),即:

---------------------------------------------------

--------------------------------------------------------------

代码上的实现:

PS:

可以说在AC类算法中都是可以使用这个概率下限的操作的,这个可以作为一个trick来使用,这样可以抑制发散,对收敛性起到好的作用。

=====================================================

A3C与GA3C的收敛性分析的更多相关文章

  1. 再论EM算法的收敛性和K-Means的收敛性

    标签(空格分隔): 机器学习 (最近被一波波的笔试+面试淹没了,但是在有两次面试时被问到了同一个问题:K-Means算法的收敛性.在网上查阅了很多资料,并没有看到很清晰的解释,所以希望可以从K-Mea ...

  2. K-Means算法的收敛性和如何快速收敛超大的KMeans?

    不多说,直接上干货! 面试很容易被问的:K-Means算法的收敛性. 在网上查阅了很多资料,并没有看到很清晰的解释,所以希望可以从K-Means与EM算法的关系,以及EM算法本身的收敛性证明中找到蛛丝 ...

  3. 【题解】CF24D Broken Robots(收敛性)

    [题解]CF24D Broken Robots http://codeforces.com/problemset/problem/24/D 解1(不会写,口胡的) 获得一个比较显然的转移式子 \(dp ...

  4. [ML从入门到入门] 支持向量机:从SVM的推导过程到SMO的收敛性讨论

    前言 支持向量机(Support Vector Machine,SVM)在70年代由苏联人 Vladimir Vapnik 提出,主要用于处理二分类问题,也就是研究如何区分两类事物. 本文主要介绍支持 ...

  5. MINIX3 内核整体架构回顾及内核定 性分析

    MINIX3  内核整体架构回顾及内核定 性分析 12.1 注意事项 由于本文档不对 I/O 文件系统做出分析,所以在此不对 MINIX3 整体做出一个分 析,本章主要是针对内核进程分析.并且这里的模 ...

  6. 连续型变量的推断性分析——t检验

    连续型变量的推断性分析方法主要有t检验和方差分析两种,这两种方法可以解决一些实际的分析问题,下面我们分别来介绍一下这两种方法 一.t检验(Student's t test) t检验也称student ...

  7. 51nod1674:区间的价值2(分治,利用&和|的收敛性)

    lyk拥有一个区间. 它规定一个区间的价值为这个区间中所有数and起来的值与这个区间所有数or起来的值的乘积. 例如3个数2,3,6.它们and起来的值为2,or起来的值为7,这个区间对答案的贡献为2 ...

  8. 从软件project的角度写机器学习3——主要监督学习算法的project性分析

    主要机器学习算法的project适用性分析 前段时间AlphaGo跟李世石的大战及相关的深度学习的新闻刷了一遍又一遍的朋友圈.只是这件事情,也仅仅是在机器学习的深度上进一步拓展,而机器学习的广度(也即 ...

  9. [Anti-AV] 从攻防对抗辩证性分析jsp免杀(一)

    从攻防对抗辩证性分析jsp免杀 从最早的最朴素木马 <%@ page import="java.io.InputStream" %> <%@ page impor ...

  10. Mirantis OpenStack 8.0 版本大概性分析

    作为 OpenStack 领域标杆性企业之一的 Mirantis 在2016年3月初发布了最新的 MOS 8.0 版本.本文试着基于公开资料进行一些归纳分析. 1. 版本概况 1.1 概况 社区版本: ...

随机推荐

  1. 玩爆你的手机联系人--T9搜索

        自己研究了好几天联系人的T9搜索算法, 先分享出来给大家看看. 欢迎指教.如果有大神有更好的T9搜索算法, 那更好啊,大家一起研究研究,谢谢. 第一部分是比较简单的获取手机联系人. 获取联系人 ...

  2. LocalDateTime日期相互转换字符串

    /** LocalDateTime日期相互转换字符串 * 默认的时间日期样式 */ public static final String YYYYMMDDHHMMSSS_PATTERN = " ...

  3. Hibernate Validator 校验注解

    Hibernate Validator 校验注解/** * 认识一些校验注解Hibernate Validator * * @NotNull 值不能为空 * @Null 值必须为空 * @Patter ...

  4. c++ win32 纤程

    Win32纤程是一种轻量级的协程机制,它能够在同一个线程中实现多个线程执行的效果,从而提高了程序的并发性和可伸缩性. 在C++中,可以使用Win32 API中的fiber来实现纤程.以下是一个使用纤程 ...

  5. Linux实时查看Java接口数据

    1.Linux实时查看Java接口数据的方法 在Linux系统中实时查看Java接口数据通常涉及几个步骤: (1)编写Java应用程序:首先,我们需要有一个Java应用程序,它暴露了一个或多个HTTP ...

  6. 《史记 XuYu列传》

    前言 甲辰年二月十九,余记挂友人须臾.大醉,作此篇以悼念故友.忆往昔同窗之情,言语无不有经天纬地之能,举手投足间便可斩敌方上将.能文能武,乃当世之奇才,其言语中有大智慧.(文体并不重要) 吃饭时 Xu ...

  7. 2>&1解释

    场景 /root/test.sh > runoob.log 2>&1 那2>&1是什么意思? 解释 将标准错误 2 重定向到标准输出 &1 ,标准输出 &am ...

  8. 深入理解Spring AOP中的@EnableAspectJAutoProxy

    本文分享自华为云社区<Spring高手之路20--深入理解@EnableAspectJAutoProxy的力量>,作者: 砖业洋__. 1. 初始调试代码 面向切面编程(AOP)是一种编程 ...

  9. Linux的访问权限详解

    题目 解读访问权限 rw-r--r--分别代表什么东西 r:代表可读 w:可写 e:可执行 方便起见进行拆分 rw- 代表文件所属用户的权限 r-- 代表同组用户的权限 r-- 代表其他用户的权限 同 ...

  10. unity中Shader实现地形中根据实际高度绘制等高线,剖切功能,颜色渐变等功能

    问题背景 在做地形模块时,需要根据实际地形高度画出世界相应的等高线,以及根据高度做颜色渐变,以及剖切功能. 解决方法 通过像素点在世界坐标系下的真实高度值来判断计算绘制等高线,剖切功能以及颜色渐变均有 ...