翻译小组 关注
手机版
  1. 云栖社区>
  2. 翻译小组>
  3. 博客>
  4. 正文

增强学习小白?本文带你入门了解增强学习

【方向】 2017-09-09 12:42:30 浏览1672 评论0 发表于: 翻译小组

云栖社区 深度学习 算法 阿里云 agent 脚本 神经网络

摘要: 入门一件新事物总是会有些无从下手的,看了本文希望可以给大家一些帮助和了解。

更多深度文章,请关注:https://yq.aliyun.com/cloud


机器学习算法,特别是神经网络被认为是新的AI革命的起因 在这篇文章中,我将介绍增强学习的概念,不过技术细节有限,只能使具有不同背景的读者能够理解该技术的本质、功能和局限性。

在本文末尾,我将提供一些实现RL的资源链接。

什么是增强学习?

从广义上讲,数据驱动算法可以分为三类:监督式、非监督式和增强学习。

前两个通常用于执行诸如图像分类、检测等任务,虽然它们的精确度是显著的,但这些任务不同于我们所期望的“智能”。

这就是增强学习的来源。这个概念本身是很简单的,就像我们的进化过程:环境给agent一个正确的东西给予奖励,并且对于错误的东西来惩罚它。主要的挑战是培养学习数百万种可能的做事方法的能力。

Q Learning Deep Q Learning

Q Learning是一种应用广泛的增强学习算法。如果不进行详细的数学运算,给定的动作质量取决于agent处于什么状态。agent通常执行给予最大回报的操作。详细的数学可以在这里找到

在这个算法中,agent根据环境给予多少回报来学习每个动作的质量(称为Q值或策略)。每个环境的状态值以及Q值通常存储在表中。当agent与环境交互时,Q值从随机值更新到实际上有助于最大化回报的值。

Deep Q Learning

Q Learning使用表的问题在于它不能很好地扩展。如果状态数太高,该表将不适合于内存。这就是Deep Q Learning可以应用的地方。深学习基本上是一种通用的近似机器,它能理解抽象的表示。深度学习可以用来近似Q值,也可以通过梯度下降学习Q值。

 

有趣的事情

谷歌在Deep Q Learning的某些元素上有专利权:

https://www.google.com/patents/US20150100530

 

探索vs开发

通常情况下,agent记录一条路径,永远不会尝试探索任何其他路径。 一般来说,我们希望一个agent不仅可以利用良好的路径,而且有时会探索可以执行操作的新路径。因此,一个名为ε的超参数用于指导探索新路径的多少和如何利用旧路径。

经验回放

在训练神经网络时,数据不平衡起着非常重要的作用。如果一个模型被训练,当agent与环境交互时,就会出现不平衡。

因此,所有状态以及相关数据都存储在内存中,神经网络可以随机选取一批交互和学习(这使得它与监督学习非常相似)。

训练框架

这就是Deep Q Learning的整体框架。 注意,这代表了打折的回报。这是一个超参数,可以控制未来回报的重量。符号表示下一个。 例如 s'表示下一个状态。

e3dd9393ba9b89360bc2209de0f72e4f40a781fc

1.Deep Q Learning训练框架。授权: Robert Aguilera

延伸的增强学习

增强学习能很好地处理许多事情(如AlphaGo),但是在反馈稀疏的地方通常会失败。 agent不会长期探索实际有益的行为。 有时,为了自身的缘故(内在动机)而不是直接尝试解决问题,需要采取一些行动。

这样做可以让agent执行复杂的操作,基本上允许agent计划事情。分层学习允许这种抽象学习。

870fcb639c515c6071cd7c48a2f316b959638e08

2.分层Deep Q Learning

在这种设置中,有两个Q网络。它们被表示为控制器和元控制器。 元控制器查看原始状态并计算要遵循的“目标”。 控制器与目标一起进入状态,并输出策略来解决目标。critic检查是否达成目标,并向控制器给予回报。 当片段结束或达到目标时,控制器停止。 然后,元控制器选择一个新目标,并重复这个目标。

“目标”是最终帮助 agent获得最终回报的东西。这更好,因为它有可能Q Learning接着Q Learning一个分层的方式。

增强学习的入门资源

下列对那些希望开始增强学习的人很有帮助:

1.Deep Q Learning基础对理解强化学习的数学和过程很有帮助。

2.分层学习论文,对于那些想详细了解分层学习的人。

3.作者解说分层学习论文的视频。(需翻墙)

4.深度RL:概述。我认为是增强学习手册。它涵盖了理解当前研究水平所需要的RL的几乎每个方面。它深入探讨数学,而且还提供了高层次的概述。

5.用一个python脚本来实现深层次的学习也许最简单的深层次的Q学习实现。这是很容易理解的,一个伟大的起点。

90e898fdb5e25d6a800b7687361137edcb66bfd6

3.在操作中的Deep Q Learning。第5点为Python脚本的输出


最后非常感谢Robert Aguilera制作了插图和流程图。


本文由北邮@爱可可-爱生活老师推荐,阿里云云栖社区组织翻译。

文章原标题《5 Ways to Get Started with Reinforcement Learning

作者:Harshvardhan Gupta 译者:TIAMO_ZN 审阅:海棠

文章为简译,更为详细的内容,请查看原文  附件为原文PDF

附件下载: 5Ways to...[【方向】].1504930996.pdf
本文由用户为个人学习及研究之目的自行翻译发表,如发现侵犯原作者的版权,请与社区联系处理yqgroup@service.aliyun.com

用云栖社区APP,舒服~

【云栖快讯】哪个编程语言最热门?各个专业领域的技术趋势是什么?如何才能更快速的踏上技术进阶之路……云栖社区2017中国开发者大调查火热进行!答卷可抽奖,红轴机械键盘、天猫精灵,丰富好礼大概率抽取  详情请点击

网友评论

阿里云机器学习是基于阿里云分布式计算引擎的一款机器学习算法平台。用户通过拖拉拽的方式可视化的操作组件来进行试验,...

一站式提供企业即时通讯、销售管理、协同办公。

用于实时预测用户对物品偏好,支持企业定制推荐算法,支持A/B Test效果对比

为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本...