遗传算法+强化学习—TPG—Emergent Tangled Graph Representations for Atari Game Playing Agents
最近在看进化算法在强化学习(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的更多相关文章
- 基于Keras的OpenAI-gym强化学习的车杆/FlappyBird游戏
强化学习 课程:Q-Learning强化学习(李宏毅).深度强化学习 强化学习是一种允许你创造能从环境中交互学习的AI Agent的机器学习算法,其通过试错来学习.如上图所示,大脑代表AI Agent ...
- DRL强化学习:
IT博客网 热点推荐 推荐博客 编程语言 数据库 前端 IT博客网 > 域名隐私保护 免费 DRL前沿之:Hierarchical Deep Reinforcement Learning 来源: ...
- 强化学习之四:基于策略的Agents (Policy-based Agents)
本文是对Arthur Juliani在Medium平台发布的强化学习系列教程的个人中文翻译,该翻译是基于个人分享知识的目的进行的,欢迎交流!(This article is my personal t ...
- 强化学习之三:双臂赌博机(Two-armed Bandit)
本文是对Arthur Juliani在Medium平台发布的强化学习系列教程的个人中文翻译,该翻译是基于个人分享知识的目的进行的,欢迎交流!(This article is my personal t ...
- 【整理】强化学习与MDP
[入门,来自wiki] 强化学习是机器学习中的一个领域,强调如何基于环境而行动,以取得最大化的预期利益.其灵感来源于心理学中的行为主义理论,即有机体如何在环境给予的奖励或惩罚的刺激下,逐步形成对刺激的 ...
- temporal credit assignment in reinforcement learning 【强化学习 经典论文】
Sutton 出版论文的主页: http://incompleteideas.net/publications.html Phd 论文: temporal credit assignment i ...
- ICML 2018 | 从强化学习到生成模型:40篇值得一读的论文
https://blog.csdn.net/y80gDg1/article/details/81463731 感谢阅读腾讯AI Lab微信号第34篇文章.当地时间 7 月 10-15 日,第 35 届 ...
- 【转】【强化学习】Deep Q Network(DQN)算法详解
原文地址:https://blog.csdn.net/qq_30615903/article/details/80744083 DQN(Deep Q-Learning)是将深度学习deeplearni ...
- 深度强化学习(DQN-Deep Q Network)之应用-Flappy Bird
深度强化学习(DQN-Deep Q Network)之应用-Flappy Bird 本文系作者原创,转载请注明出处:https://www.cnblogs.com/further-further-fu ...
- 论文:利用深度强化学习模型定位新物体(VISUAL SEMANTIC NAVIGATION USING SCENE PRIORS)
这是一篇被ICLR 2019 接收的论文.论文讨论了如何利用场景先验知识 (scene priors)来定位一个新场景(novel scene)中未曾见过的物体(unseen objects).举例来 ...
随机推荐
- 2023 SMU RoboCom-CAIP 选拔赛
前言 更详细题解可以参考咱学长的( 2023 SMU RoboCom-CAIP 选拔赛.zip A. 小斧头 f_k 表示满足条件的j = k 的(i,j)对的数量.如上图中第四行即为f1至f5的元素 ...
- 牛客周赛 Round 6
牛客周赛 Round 6 A-游游的数字圈_牛客周赛 Round 6 (nowcoder.com) 枚举即可 #include <bits/stdc++.h> #define int lo ...
- jxls导入excel
我们在开发中经常用jxls实现导出功能,殊不知jxls也有导入功能,下面来介绍下如何使用jxls导入excel. 首先在maven的pom中添加相关依赖,如下: <dependency> ...
- Blazor开发框架Known-V2.0.8
V2.0.8 Known是基于Blazor的企业级快速开发框架,低代码,跨平台,开箱即用,一处代码,多处运行.目前已有部分客户在使用,最近客户的项目和产品,有的在Docker中运行,有的在重新升级改造 ...
- CSEC:香港城市大学提出SOTA曝光矫正算法 | CVPR 2024
在光照条件不佳下捕获的图像可能同时包含过曝和欠曝.目前的方法主要集中在调整图像亮度上,这可能会加剧欠曝区域的色调失真,并且无法恢复过曝区域的准确颜色.论文提出通过学习估计和校正这种色调偏移,来增强既有 ...
- JWT(JSON WEB TOKEN)是玩具吗
JWT当然不是玩具,理解其设计意图,和适用场景自然会发现存在的就是有价值的 JWT: JSON Web Token 起源和定义 JWT(JSON Web Token)是由 IETF(Internet ...
- 6.24Win&linux&分析后门 勒索病毒分析
操作系统应急响应 1.常见危害 暴力破解.漏洞利用.流量攻击(危害不确定) 木马控制(Webshell.PC木马等),病毒感染(挖矿.蠕虫.勒索等) 2.常见分析 计算机用户.端口.进程.启动项.计划 ...
- 事件触发器TRIGGER
我所理解的事件 MYSQL触发器 就好比是 JavaScript 中的 Object.defineProperty,通过观察某些行为,然后做些事情 创建触发器 DELIMITER $$ CREATE ...
- 小tips:nodejs请求接口超时使用中间件connect-timeout实现自动超时机制
如果在请求中不设置超时时间,那么一直处理loading卡屏状态,使用connect-timeout来设置自动超时时间. 安装: npm install connect-timeout -S 如下例子: ...
- Java 之跨docker容器备份数据库
Java 之跨docker容器备份数据库 摘] java中执行数据库备份,每隔10分钟备份一次,保留四份备份文件,项目在windows系统下运行备份命令没问题.项目采用docker部署后,jar部署在 ...