最近在看进化算法在强化学习(RL)领域的一些应用,有些论文中将使用进化算法解决强化学习问题的算法归为非强化学习算法,然而又有些论文把使用进化算法解决强化学习问题的算法归为强化学习算法,不过更多的论文是不讨论进化算法解决强化学习问题的,由此就出现了大多数论文只讨论使用MDP框架的解决强化学习问题的算法为强化学习算法;也正是因为在深度学习时代(Deep learning age)大家都在用神经网络和深层神经网络并使用梯度优化算法来求解也更加在形势上加重了进化算法解决强化学习问题是不是应该归为强化学习算法的这个分歧,这里我也说下个人的一些观点,我觉得不能因为其小众就不将其归为强化学习算法,而且如果严格按照解决强化学习问题的算法为强化学习算法的这种观点,那么使用进化算法解决强化学习问题自然是可以把这些类型的解决强化学习问题的进化算法归为强化学习算法的一类。

不过使用进化算法解决问题确实和其他的ML领域的算法有些不同,因为进化算法的算法本质就导致其不被强制限制于解决某一类问题,或者说进化算法可以用于所有的求解问题中,其所覆盖的范围是远超其他ML算法的,可以说不论是监督学习算法还是非监督学习算法其都是和问题所绑定的,也就是说监督学习算法只能解决监督学习问题,而非监督学习算法只能解决非监督学习问题,但是进化算法不同,进化算法这一个算法可以解决所有的计算机领域的模型求解问题,可能在很多问题的求解效率和性能不如监督学习算法和非监督学习算法,但是其普遍适用性却是其他算法无法比的。

之所以最近又关注起了进化算法在RL领域的应用,其主要原因是虽然Deep Learning的RL算法在多媒体的环境下表现突出,但是在传统的robotic问题中有很多控制问题是并不涉及多媒体数据的,这种情况和传统的控制问题并没有本质的不同的,而传统的控制问题在进化算法求解领域是有着很多积累的,为了参考这些传统控制问题中的进化RL,便有了本文。

遗传算法中在RL领域的常用算法类别,传统遗传算法、进化神经网络、CMA-ES、TPG等等,本文就讨论Tangled Program Graph (TPG)算法中的一些问题。

TPG算法的示意图:

部分算法过程:

根据上面的这个介绍可以知道,在TPG算法中需要保存最近的50个observation数据,这些数据是为了增加一个新的program的时候来判断这个program的新颖性的,把这50个observation分别放入到新生成的program中可以得到50个值,这50个值组成了这个program的一个类似id的标识,然后通过这种方式可以获得其他的已有的program的标识,然后根据这个新生成的program的标识是否和其他已有的program完全相同来判断其新颖性,如果在已有的program中存在和其相同的id的program则说明新生成的program不具备新颖性拒绝其加入program种群。

强化学习算法library库:(集成库)

https://github.com/Denys88/rl_games

https://github.com/Domattee/gymTouch

个人github博客地址:

https://devilmaycry812839668.github.io/

遗传算法+强化学习—TPG—Emergent Tangled Graph Representations for Atari Game Playing Agents的更多相关文章

  1. 基于Keras的OpenAI-gym强化学习的车杆/FlappyBird游戏

    强化学习 课程:Q-Learning强化学习(李宏毅).深度强化学习 强化学习是一种允许你创造能从环境中交互学习的AI Agent的机器学习算法,其通过试错来学习.如上图所示,大脑代表AI Agent ...

  2. DRL强化学习:

    IT博客网 热点推荐 推荐博客 编程语言 数据库 前端 IT博客网 > 域名隐私保护 免费 DRL前沿之:Hierarchical Deep Reinforcement Learning 来源: ...

  3. 强化学习之四:基于策略的Agents (Policy-based Agents)

    本文是对Arthur Juliani在Medium平台发布的强化学习系列教程的个人中文翻译,该翻译是基于个人分享知识的目的进行的,欢迎交流!(This article is my personal t ...

  4. 强化学习之三:双臂赌博机(Two-armed Bandit)

    本文是对Arthur Juliani在Medium平台发布的强化学习系列教程的个人中文翻译,该翻译是基于个人分享知识的目的进行的,欢迎交流!(This article is my personal t ...

  5. 【整理】强化学习与MDP

    [入门,来自wiki] 强化学习是机器学习中的一个领域,强调如何基于环境而行动,以取得最大化的预期利益.其灵感来源于心理学中的行为主义理论,即有机体如何在环境给予的奖励或惩罚的刺激下,逐步形成对刺激的 ...

  6. temporal credit assignment in reinforcement learning 【强化学习 经典论文】

    Sutton 出版论文的主页: http://incompleteideas.net/publications.html Phd  论文:   temporal credit assignment i ...

  7. ICML 2018 | 从强化学习到生成模型:40篇值得一读的论文

    https://blog.csdn.net/y80gDg1/article/details/81463731 感谢阅读腾讯AI Lab微信号第34篇文章.当地时间 7 月 10-15 日,第 35 届 ...

  8. 【转】【强化学习】Deep Q Network(DQN)算法详解

    原文地址:https://blog.csdn.net/qq_30615903/article/details/80744083 DQN(Deep Q-Learning)是将深度学习deeplearni ...

  9. 深度强化学习(DQN-Deep Q Network)之应用-Flappy Bird

    深度强化学习(DQN-Deep Q Network)之应用-Flappy Bird 本文系作者原创,转载请注明出处:https://www.cnblogs.com/further-further-fu ...

  10. 论文:利用深度强化学习模型定位新物体(VISUAL SEMANTIC NAVIGATION USING SCENE PRIORS)

    这是一篇被ICLR 2019 接收的论文.论文讨论了如何利用场景先验知识 (scene priors)来定位一个新场景(novel scene)中未曾见过的物体(unseen objects).举例来 ...

随机推荐

  1. C# 使用特性的方式封装报文

    在编写上位机软件时,需要经常处理命令拼接与其他设备进行通信,通常对不同的命令封装成不同的方法,扩展稍许麻烦. 本次拟以特性方式实现,以兼顾维护性与扩展性. 思想: 一种命令对应一个类,其类中的各个属性 ...

  2. 一文讲清楚static关键字

    static能修饰的地方 静态变量 静态变量: 又称为类变量,也就是说这个变量属于类的,类所有的实例都共享静态变量,可以直接通过类名来访问它:静态变量在内存中只存在一份. 实例变量: 每创建一个实例就 ...

  3. LaTeX cleveref 宏包用法

    介绍 cleveref 宏包是 LaTeX 中用于增强交叉引用功能的一个强大工具.它的主要特点是能够自动地按照不同元素的类型(如章节.图表等)生成格式化的引用,同时还支持定制引用格式,提供了比 LaT ...

  4. nacos 注册服务正常,服务列表内没有服务

    解决办法: 在nacos里 创建 注册的 命名空间 , 然后再看服务列表 就会有对应命名空间的数据了

  5. 【YashanDB知识库】共享集群YAC换IP

    [标题]共享集群YAC换IP [需求分类]安装部署,配置变更 [关键字]安装部署,更换IP,运维,配置变更,高可用,YAC [需求描述]客户需要将已经部署的YAC集群更换IP,从测试网段切换生产网段 ...

  6. Unity 刚体 AddForce 的几种力类型

    今天在实现 2D 横版跳跃的时候,发现使用AddForce添加的力太突兀了,没有逐渐向上的过程,发现AddForce还有ForceMode mode参数 以下部分内容摘自Bing Copilot总结 ...

  7. C# 开源教程带你轻松掌握数据结构与算法

    前言 在项目开发过程中,理解数据结构和算法如同掌握盖房子的秘诀.算法不仅能帮助我们编写高效.优质的代码,还能解决项目中遇到的各种难题. 给大家推荐一个支持C#的开源免费.新手友好的数据结构与算法入门教 ...

  8. 记一次 .NET某上位机视觉程序 卡死分析

    一:背景 1. 讲故事 前段时间有位朋友找到我,说他的窗体程序在客户这边出现了卡死,让我帮忙看下怎么回事?dump也生成了,既然有dump了那就上 windbg 分析吧. 二:WinDbg 分析 1. ...

  9. 《Vue.js 设计与实现》读书笔记 - 第7章、渲染器的设计

    第7章.渲染器的设计 7.1 渲染器与响应系统的结合 渲染器需要有跨平台的能力. 在浏览器端会渲染为真实的 DOM 元素. const { effect, ref } = VueReactivity ...

  10. 使用composer创建项目时报错:Composer could not find the config file?

    使用composer创建项目时报错:Composer could not find the config file:C:\Composer ....? 一般报这个错就是composer安装的时候配置了 ...