最近在看进化算法在强化学习(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_2的更多相关文章

  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. 新版的Django Docker部署方案,多阶段构建、自动处理前端依赖

    前言 前几天的文章中,我们已经把使用 pdm 的项目用 docker 搞定了,那么下一步就是把完整的 DjangoStarter v3 版本用 docker 部署. 现在不像之前那么简单直接一把梭了, ...

  2. grpc断路器之hystrix

    上一章介绍了grpc断路器sentinel, grpc断路器之sentinel 但是由于公司线上系统用的告警与监控组件是prometheus,而sentinel暂时还没有集成prometheus,所以 ...

  3. Postman Code Java-Unirest 代码的依赖

    本来是Postman的Code直接使用的,结果根据这个名字 Unirest,搜出来了很多依赖,使用了排名第一的, https://search.maven.org/search?q=Unirest 结 ...

  4. ChatGPT 教我写一个基于python程序开发的网络设备巡检功能

    这几天被ChatGPT玩坏了,为什么说是被玩呢,这东西真的太强大了,我现在用的还是版本3就专业溜了,现在已经有版本4了,详细一些人工智能真的还快就会取代一大批只会CV程序员,所以你有什么理由不学习呢. ...

  5. postgresql 查询包含某字段的表

    查询包含某字段的表都有哪些 查询SQL如下: SELECT b.oid, b.relname, att.attname, b.relkind, attinhcount, atttypmod FROM ...

  6. 深度学习环境安装-conda-torch-Jupyter Notebook

    conda的安装 为什么要安装这个,它是什么? 它是一个管理环境的,当我们跑项目的时候,往往这些项目所需要的pickets库和环境是不同的,这时候如果自己的电脑里面只有一个版本的库的话,就运行不了,比 ...

  7. 小tips:tomcat下JSP页面引用css、js等资源路径404问题

    在JSP页面头部添加如下代码: <% String path = request.getContextPath(); String basePath = request.getScheme() ...

  8. CSS – initial, Inherit, unset, revert

    参考 Understanding the "Initial", "Inherit" and "Unset" CSS Keywords [译] ...

  9. Ubuntu 64系统编译android arm64-v8a 的openssl静态库libssl.a和libcrypto.a

    #!/bin/bash # Cross-compile environment for Android on ARM64 and x86 # # Contents licensed under the ...

  10. MybatisPlus——入门案例

    MyBatisPlus MyBatisPlus(简称MP)是基于MyBatis框架基础上开发的增强型工具,旨在简化开发.提高效率 开发方式 基于MyBatis使用MyBatisPlus 基于Sprin ...