强化学习之七:Visualizing an Agent’s Thoughts and Actions
本文是对Arthur Juliani在Medium平台发布的强化学习系列教程的个人中文翻译,该翻译是基于个人分享知识的目的进行的,欢迎交流!(This article is my personal translation for the tutorial written and posted by Arthur Juliani on Medium.com. And my work is completely based on aim of sharing knowledges and welcome communicating!)
原文地址(URL for original article)
在本篇博客里,我想更深入地探讨我们的神经agent在训练过程中所学到的表征。当得到一个高分,或者完成一个特定的任务就是我们对于我们的神经agent的要求的时候,同样我们也应该理解如何,以及更重要的,为什么agent会以某种方式表现。为了使得学习过程更透明,我建立了一个d3.js驱动的网络接口,它可以在学习过程中展示各种各样的有关agent的信息。我称之为强化学习控制中心。在这篇博客里,我会用它来提供一些有关强化学习agent如何以及为什么等相关的信息。
控制中心接口(The Control Center Interface)
强化学习控制中心接口
控制中心是为了让用户可以实时追踪agent在学习如果解决一个任务的过程中的性能变化。在接口的左边,每一轮的长度还有各时间的回报都会被追踪以及动态更新。右边展示了一个简单训练轮的动画gif,还有一轮中每一步的优势以及值函数的计算结果。
这个接口目前只适配我的博客中所描述的神经网络和任务。它是一个双子竞争DQN(Double-Dueling-DQN),环境则是一个简单的网格世界。网格世界的规则如下:agent的目标是尽快地到达绿色方块,过程中要避免红色方块。绿色方块提供+1的回报,红色方块提供-1的回报。每一步都有-0.1的回报。在每一轮开始的时候,三个方格被随机放到网格上。
对agent在一个epoch的训练过程中行动与思想的展示
双子竞争DQN的agent在它探索网格世界时,会同时接受两个分离的信息流:一个优势流(advantage stream)和一个价值流(value stream)。优势流代表了网络所认为的,在给定当前它所在的状态下,采取每个行动分别的有多么好。价值流则代表了在不考虑可能的行动的情况下,任一给定所在状态分别有多么好。有了控制中心,我们可以观察网络如何逐渐学习正确地预测状态和行动的价值。随着训练过程的进行,它会从乍看起来的随机值,逐渐演变为能准确地指出哪个行动是最有优势的。我们可以认为这种可视化提供了一个我们观察agent的“思考过程”的入口。它是否知道它正处在一个好的位置?是否知道在它往下走一格是好的选择?这可以让我们更深刻地理解为什么我们的agent可以表现不错,不管是在什么情况或环境中对它进行训练。
进入agent的大脑
我们不只可以用接口来探索agent如何进行训练,我们也能用它测试和调试我们已经经过完全训练的agent。例如,在训练了我们的agent如何解决上述的3*3的网格世界问题后,我们可以提供它一些特别的测试情景,这些情景是它从来没在训练过程中遇见过的,借此我们可以评估它是否真的具备了我们希望它所具备的经验。
下面是一个agent如何在修改版(只有绿色方块)的任务中表现的实例。如你所见,随着agent逐渐靠近绿色方块,价值估计值如我们所期望地逐渐上升。它也给出了对于采取行动的优势的高估计值,这引导着agent不断靠近绿色目标。
在下一个测试中,我们颠倒了情况,我们会给agent一个只有两个红色方块的世界。它肯定很不喜欢这个世界。如你接下来所见,agent试图远离每个红色额方块,这导致它长时间内不断地前进又后退。注意价值估计值如何随着agent靠近红色方块时减少。
最终,我给agent了一个有关存在意义的挑战。我不在在学习目标上做文章,而是把它们都去掉了。在这种情形下,蓝色方块自身在环境中,没有其它的目标。没有一个前行的目标,agent看起来在随意四处移动,并且价值估计值也似乎无意义。Camus会怎么说呢?
总的来看,这三个实验给我们提供了很多证据,这些证据表明我们的agent是如我们所期望地那样在对环境进行反应。这些检查步骤在设计任何强化学习agent之前都是必要的。如果我们不仔细关注我们将要内置到agent里的期望以及环境回报的结构,我们很有可能最终也不能得到一个可以表现良好的agent,或者至少不如我们所预期的那样进行学习的agent。比如在网格世界中,采取一步行动能导致-0.1的回报。虽然这不是通常的情形。本来是没有所谓的惩罚(penalty)一说的,并且agent也能在平均50步左右到达绿色方块。它没有“理由”去尽快移动到目标位置,所以它也不会这么做。通过对每一步施加一个小的惩罚,agent有可能很快地学习到径直向绿色目标移动的直觉。这提示我们我们人类自身的潜意识中的回报结构也很可能是这样的。尽管我们可能能清楚地认为绿色就是奖励,红色就是惩罚,我们潜意识里会由于想尽快完成任务的欲望而限制自己的行动。当设计强化学习agent时,我们需要确保它们的回报结构和我们的一样丰富(rich)。
使用控制中心
如果你想试用一下工作版的控制中心,而无需自己训练你的agent,点击这个链接即可(要求浏览器是Google Chrome)。你将看到的是一个已经在网格世界中经过40,000轮预训练的agent。你可以点击左边的时间线去查看任一训练过程点中的示例轮。更早的轮清楚地展现了agent如何失败地理解了任务,但训练到最后agent几乎总会能直接到达目标。
控制中心是一个我计划继续开发的软件,因为我也将继续研究各类强化学习算法。现在它是按照Part 4中所描述的具体的网格世界以及DD-DQN硬编码而成的,按时如果你想把它适配到自己的项目中,你可以在github上fork它,并按照你自己的需求调整它。希望它能提供更多对于你的学习算法的了解渠道。
如果这篇博文对你有帮助,你可以考虑捐赠以支持未来更多的相关的教程、文章和实现。对任意的帮助与贡献都表示非常感激!
如果你想跟进我在深度学习、人工智能、感知科学方面的工作,可以在Medium上follow我 @Arthur Juliani,或者推特@awjliani。
用Tensorflow实现简单强化学习的系列教程:
- Part 0 — Q-Learning Agents
- Part 1 — Two-Armed Bandit
- Part 1.5 — Contextual Bandits
- Part 2 — Policy-Based Agents
- Part 3 — Model-Based RL
- Part 4 — Deep Q-Networks and Beyond
- Part 5 — Visualizing an Agent’s Thoughts and Actions
- Part 6 — Partial Observability and Deep Recurrent Q-Networks
- Part 7 — Action-Selection Strategies for Exploration
- Part 8 — Asynchronous Actor-Critic Agents (A3C)
强化学习之七:Visualizing an Agent’s Thoughts and Actions的更多相关文章
- 强化学习论文(Scalable agent alignment via reward modeling: a research direction)
原文地址: https://arxiv.org/pdf/1811.07871.pdf ======================================================== ...
- 强化学习之六:Deep Q-Network and Beyond
本文是对Arthur Juliani在Medium平台发布的强化学习系列教程的个人中文翻译,该翻译是基于个人分享知识的目的进行的,欢迎交流!(This article is my personal t ...
- 强化学习之五:基于模型的强化学习(Model-based RL)
本文是对Arthur Juliani在Medium平台发布的强化学习系列教程的个人中文翻译,该翻译是基于个人分享知识的目的进行的,欢迎交流!(This article is my personal t ...
- 强化学习之四:基于策略的Agents (Policy-based Agents)
本文是对Arthur Juliani在Medium平台发布的强化学习系列教程的个人中文翻译,该翻译是基于个人分享知识的目的进行的,欢迎交流!(This article is my personal t ...
- 强化学习之三点五:上下文赌博机(Contextual Bandits)
本文是对Arthur Juliani在Medium平台发布的强化学习系列教程的个人中文翻译,该翻译是基于个人分享知识的目的进行的,欢迎交流!(This article is my personal t ...
- 强化学习之三:双臂赌博机(Two-armed Bandit)
本文是对Arthur Juliani在Medium平台发布的强化学习系列教程的个人中文翻译,该翻译是基于个人分享知识的目的进行的,欢迎交流!(This article is my personal t ...
- 强化学习之二:Q-Learning原理及表与神经网络的实现(Q-Learning with Tables and Neural Networks)
本文是对Arthur Juliani在Medium平台发布的强化学习系列教程的个人中文翻译.(This article is my personal translation for the tutor ...
- 强化学习三:Dynamic Programming
1,Introduction 1.1 What is Dynamic Programming? Dynamic:某个问题是由序列化状态组成,状态step-by-step的改变,从而可以step-by- ...
- <强化学习>基于采样迭代优化agent
前面介绍了三种采样求均值的算法 ——MC ——TD ——TD(lamda) 下面我们基于这几种方法来 迭代优化agent 传统的强化学习算法 || ν ν 已经知道完整MDP——使用价值函数V(s) ...
随机推荐
- python基础-基本概念
python概念介绍 python是一门动态解释型的强类型定义语言,创始人吉多·范罗苏姆(Guido van Rossum) #编译型语言 编译型:一次性将所有程序编译成二进制文件 缺点:开发效率低, ...
- 达拉草201771010105《面向对象程序设计(java)》第十三周学习总结
达拉草201771010105<面向对象程序设计(java)>第十三周学习总结 第一部分:理论知识 事件处理基础: 事件源:能够产生事件的对象都可 以成为事件源,如文本框.按钮等.一个事件 ...
- 🤢保护眼睛,从更换win电脑主题开始🤢
目的: win电脑主题颜色设置为
- 动手搞一个Promise
Javascript语言的执行环境是"单线程"(single thread).所谓"单线程",就是指一次只能完成一件任务.如果有多个任务,就必须排队,前面一个任 ...
- 前端每日实战:34# 视频演示如何用纯 CSS 创作在文本前后穿梭的边框
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/qYepNv 可交互视频教程 此视频 ...
- Python实战之制作瘟疫传播实验
2020年爆发新型冠状病毒,让大家在见证中国的团结也让大家感受到疫情传播的骇人 在这里先道一声“武汉加油.中国加油” 那么现在我们尝试制作一个模拟疫情爆发的模型,以数字的形式展现疫情爆发点恐怖. (1 ...
- An incompatible version [1.1.33] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]
Springboot项目启动出现如下错误信息 解决办法在此地址:http://archive.apache.org/dist/tomcat/tomcat-connectors/native/1.2.1 ...
- 日常破解---XCTF_APP1获取flag记录
日常破解---XCTF_APP1获取flag记录 一.题目来源 来源:XCTF社区安卓题目app1 二.解题记录 1.首先安装到模拟器中运行一下,如下图所示,点击一下按钮,弹出提示年轻人不 ...
- CSS的四种样式
行内式CSS样式 在标签内部使用的样式 <div id="one" style="width:50p"></div> 内嵌式CSS样式 ...
- (28)ASP.NET Core AutoMapper组件
1.什么是AutoMapper? AutoMapper是一个对象-对象映射器.对象-对象映射通过将一种类型的输入对象转换为另一种类型的输出对象来工作.使AutoMapper变得有趣的是,它提供了一些有 ...