前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TensorFlow强化学习入门(5)—— 可视化Agent的“所思所想”

TensorFlow强化学习入门(5)—— 可视化Agent的“所思所想”

作者头像
ArrayZoneYour
修改2018-03-07 22:42:49
2.3K0
修改2018-03-07 22:42:49
举报

在我的强化学习系列的文章中,我想要深入探究我们基于神经网络的agent在训练过程中习得的表达形式。尽管我们的直接目的是希望我们的agent能够获得更高的分数,或者完成某一具体的任务,但是了解agent如何做到,或者更进一步,agent为什么可以做到对于我们来说是同等甚至更加重要的。为了更加清楚地看到agent的学习过程,我使用了d3.js制作了一个网页来展示agent学习的各种信息。我称之为 强化学习控制中心。在本文中,我会用它来进一步讲解agent的原理。

控制中心界面

控制中心被设计用于监控agent学习执行某一任务的实时性能。界面的左侧有episode的大小和收益的曲线图,会随着训练的进行而动态更新。右侧展示的是选取的episode的动态演示,包括agent每一步计算得到的当前状态的价值和各个决策的分值。

接口数据来源于上一篇文章中的Double-Dueling-DQN神经网络。游戏环境为一个简单的n x n网格。游戏规则为:agent控制蓝色方块进行上下左右移动,在尽可能短的时间内移动至绿色方块的位置且避开红色方块。碰到红色方块-1分,绿色方块+1分,每移动一次-0.1分。每个episode开始时,三个方块的位置会随机生成。

演示动画地址

基于 DD-DQN 神经网络的agent同时处理了两个独立的信息流:反映各个决策优劣的值所在的信息流和反映当前状态优劣的值所在的信息流,前者反映了agent对当前状态下各个决策优劣的判断,后者反映了agent对当前状态优劣的判断。从控制中心我们可以直观地看出agent习得正确预测这两个参数值的技能的过程。随着训练的进行,agent的行为从随机逐渐向最优决策靠拢。而控制中心的可视化为agent的“思维过程”开辟了一个展示的窗口。当它所处的位置很好时,它能否感受到这一点?当它作出向下的行为的时候是否意味着它对向下的动作收益评估很高?分析可视化的结果,我们可以进一步理解agent在不同的环境下性能的差距的来源。

深入探究agent的所思所想

除了展示agent在训练时的表现外,我们也可以用agent来测试训练/调试完毕的agent。拿之前的例子来说,在我们训练的agent解决了3x3网格下的问题后,我们可以拿某些训练中没有出现的特殊场景来检验agent是否真正习得了我们需要的表达。

下面的视频展示了我们将游戏中的方块全部改为绿色方块后agent的行为。可以看到agent距离绿色方块越近对状态的打分越高,同时其决策也使蓝色方块向绿色方块靠拢,这和我们的预期一致。

演示动画地址

下面给出另一个相反的测试样例,游戏中的方块全部为红色方块。可以看出,为了避开红色方块,agent操纵蓝色方块不断上下往复移动,从agent对各个可选行动的打分也可以看出这一点。

演示动画地址

最后,我给了agent一个新的挑战:我移除了所有的方块。这种场景下,除了蓝色方块自己外什么也没有。没有了目标位置,agent的移动完全可以随机,对各个行动的评估值似乎也没有任何意义了。

演示动画地址

综合这三个实验,可以证明训练得到的agent可以按照我们的期望对环境作出相应。在我们设计强化学习的agent时,这种检验时必不可少的。如果我们没有仔细考虑agent上建立的期望和环境的收益获得机制,就很容易发现训练得到的agent在某些场景下不能够正确地完成任务或者达不到我们的预期。在之前的例子中,我们设定每一步的收益为-0.1,这是为什么呢?如果你尝试过没有罚值的情况就会发现,agent大概需要50步才能移动到绿色方块!因为agent没有需要快速解决任务的“缘由”,所以它就没有快速抵达绿色方块。而通过给每一步设置一个很小的罚值,agent就可以迅速掌握快速移动至目标的模式。这和人类潜意识中处理收益的机制是一致的:假想绿色为奖励,红色为惩罚,我们下意识会希望自己可以在尽可能快地拿到奖励。当我们在设计强化学习的agent的时候,要确保它处理收益的机制与我们一样丰富。

使用控制中心

如果你想在不训练自己的模型的情况下体验控制中心的功能,可以访问这个链接体验。你将看到一个训练了40000 episode的agent。通过点击左侧的图表可以切换当前右侧展示的过程对应的episode数,通过切换不同的时间观察可以看到agent在最初的时候不能很好地理解并解决任务,但是在最后agent学会了直接抵达目标位置。

控制中心的代码逻辑当前被硬编码在上一篇文章的例子上,如果你对实现代码感兴趣,可以从Github上查阅

系列文章(翻译进度,下一篇等区块链的活动结束之后再翻):

  1. (0) Q-Learning的查找表实现和神经网络实现
  2. (1) 双臂赌博机
  3. (1.5) — 上下文赌博机
  4. (2) —— 基于策略的Agents
  5. (3) —— 构建仿真环境来进行强化学习
  6. (4)—— 深度Q网络及扩展
  7. (5)—— 可视化Agent的“所思所想”
  8. Part 6 — Partial Observability and Deep Recurrent Q-Networks
  9. Part 7 — Action-Selection Strategies for Exploration
  10. Part 8 — Asynchronous Actor-Critic Agents (A3C)

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 控制中心界面
  • 深入探究agent的所思所想
  • 使用控制中心
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档