关于强化学习你应该知道的三件事

如果您有在关注科技相关的新闻,可能读过有关人工智能(AI)应用程序如何通过强化学习训练,在围棋、国际象棋等棋类游戏以及电子游戏中击败人类玩家的报道。作为一名工程师、科学家或研究人员,您可能会希望利用这种新的和不断发展的技术。但是该如何开始呢?最好的起点是什么?如何理解它的概念?如何实现强化学习?以及它是不是解决某个问题的正确办法。

简单来说,强化学习就是一种有潜力解决复杂决策问题的机器学习。但要真正理解它对我们的影响,需要了解三个关键问题:

  ·什么是强化学习?

  ·在什么情况下,强化学习才是正确的方法?

  ·我应该遵循什么样的工作流程,来解决强化学习问题?

什么是强化学习?

强化学习是机器学习的一种,在动态环境中,计算机通过反复的试错交互来学习执行某项任务。这种学习方法使计算机能够做出一系列决策,使任务的奖励指标最大化,而不需要人工干预,也不需要通过明确的编程来完成任务。

为了更好地认识强化学习,我们通过一个现实世界中与其类似的场景进行理解。图1显示了使用强化学习来训练狗的一般表示。

图1:狗狗训练中的强化学习

在这种情况下,强化学习的目标是训练狗(agent)在一个环境(environment)中完成一项任务,这里的“环境”包括狗所处的物理环境和训练者。首先,驯兽师发出一条命令或指示,狗会观察(observation)。然后狗会做出反应。如果动作接近期望的行为,训练者可能会提供奖励,如食物或玩具;否则,将不提供任何奖励或提供负面奖励。在训练开始的时候,狗可能会做出更多的随机动作,比如当命令是“坐下”时,它会翻身,因为它试图将特定的观察与动作和奖励联系起来。观察和动作之间的这种关联或映射称为策略。

从狗的角度来看,最理想的情况是它能对每一个提示做出正确的反应,这样它就能得到尽可能多的奖励。因此,强化学习训练的全部意义在于“调整”狗的策略,使它学习期望的行为,从而获得最大的回报。训练完成后,狗应该能够观察主人并采取适当的行动,例如,当命令它“坐下”时,它应该使用它开发的内部策略来“坐下”。

基于训狗示例,我们可以来想想使用自动驾驶系统来停车的任务。该任务的目标是车载计算机(agent)将车辆停放在正确的停车位置,并具有正确的方向。就像训狗一样,这里的环境是agent之外的一切,包括车辆的动态、附近的其他车辆、天气状况等等。在训练过程中,agent通过摄像头、GPS和激光雷达等传感器的读数(observations)来产生转向、刹车和加速指令(actions)。为了学习如何从观察中生成正确的动作(策略调优),代理通过试错过程反复尝试停车。奖励信号可以用来评估试验的好坏,并指导学习过程。

图2:自动停车中的强化学习

在训狗的例子中,训练是在狗的大脑内进行的。在自动停车的例子中,训练是由训练算法来监督的。训练算法负责根据收集到的传感器读数、动作和奖励调整代理的策略。训练结束后,车辆的计算机应该能够仅使用调整后的策略和传感器读数来停车。

在什么情况下,强化学习才是正确的方法?

目前,业界已经发展了许多增强学习的训练算法,虽然本文不讨论训练算法,但值得一提的是,其中一些最流行的算法是依赖于深度神经网络策略的。神经网络最大的优点是它们可以对非常复杂的行为进行编码,这为在应用中使用强化学习打开了方便之门,否则会非常难以处理或极具挑战性,包括使用传统算法。例如,在自动驾驶中,神经网络可以代替驾驶员,通过同时观察来自多个传感器的输入来决定如何转动方向盘,比如摄像头和激光雷达测量(端到端解决方案)。没有神经网络,问题通常会被分解成小块:一个模块,分析相机的输入以识别有用的特性;另一个模块,用于过滤激光雷达测量;可能还需要一个组件, 通过融合传感器的输出来描述车辆所处环境的全貌;还有“司机”模块或更多。不过,虽然端到端解决方案优势很大,但也有一些缺点。

深层神经网络训练策略通常被视为一个“黑箱”,即神经网络的内部结构非常复杂,通常包括数以百万计的参数,几乎不可能去理解、解释和评估网络所采取的决策 (左边的图3)。这使得很难为神经网络建立正式的性能担保政策。可以这样想:即使你对你的宠物进行了训练,仍然会有你的命令被忽视的时候。

图3:强化学习的一些挑战

另一件需要记住的事情是,强化学习不是样本效率。这意味着,为了达到可接受的表现,通常需要大量的训练。举个例子,AlphaGo是首个在围棋比赛中击败世界冠军的电脑程序,它经过几天的不间断训练,玩了数百万场游戏,积累了数千年的人类知识。即使是相对简单的应用程序,训练时间也可能从几分钟到几小时甚至几天不等。最后,如何正确地设置问题可能也比较棘手;这需要做出许多设计决策,可能需要一些迭代才能正确(图3右侧)。这些决策包括如为神经网络选择适当的架构、调整超参数和形成奖励信号等等。

总而言之,如果你正在进行一个时间或安全因素非常关键的项目,也许应该采用替代的、传统的方法,强化学习可能不是最好的。否则,就试一试吧。

强化学习工作流程

使用强化学习训练代理的一般工作流程包括以下步骤(图4)。

图4:强化学习的工作流程

1. 创建环境

首先,您需要定义代理运行的环境,包括代理和环境之间的接口。环境可以是仿真模型,也可以是真实的物理系统。采用模拟环境通常是很好的选择,因为它们更安全(真实硬件往往非常昂贵)并且允许进行实验。

2. 定义奖励

接下来,需要指定代理用于根据任务目标度量其性能的奖励信号,以及如何从环境中计算该信号。奖励塑造可能是一个棘手的问题,可能需要几次迭代才能得到正确的结果。

3.创建代理

在此步骤中,您将创建代理。代理由策略和训练算法组成,需要:

a.选择一种表示策略的方法(例如,使用神经网络或查找表)。

b.选择合适的训练算法。不同的表现形式通常与特定类别的训练算法相关,但通常,大多数现代算法依赖于神经网络,因为它们是解决大型状态/动作空间和复杂问题的良好候选方法。

4. 对代理进行训练和验证

设置训练选项(例如,停止标准)并对代理进行训练,以此来调整策略。在训练结束后,还需要对其展开验证。根据应用程序的不同,训练可能需要几分钟到几天的时间。对于复杂的应用程序,在多个CPU、GPU和计算机集群上并行化训练可以加快速度。

5. 部署策略

使用生成的C/ c++或CUDA代码部署经过训练的策略表示。此时无需担心代理和训练算法——策略是一个独立的决策系统。

使用强化学习训练代理是一个迭代的过程。后期的决策和结果可能需要您返回到学习工作流的早期阶段。例如,如果训练过程没有在合理的时间内收敛到最优策略,你可能需要在重新训练代理之前更新以下配置:

  ·训练设置

  ·学习算法的配置

  ·策略表示

  ·奖励信号的定义

  ·行动与观测信号

  ·环境动态

今天,像Reinforcement Learning Toolbox(图5)这样的工具可以帮助您快速学习并实现控制器和复杂系统(如机器人和自主系统)的决策算法。

图5.使用Reinforcement Learning Toolbox教机器人走路

不管选择什么工具,在决定采用强化学习之前,一定要思考这样一个问题:“考虑到我在这个项目上拥有的时间和资源,强化学习对我来说是正确的方法吗?”

原文作者:Emmanouil Tzorakoleftherakis

Image placeholder
sunwz4
未设置
  100人点赞

没有讨论,发表一下自己的看法吧

推荐文章
关于网络安全防御,每个中小企业应该知道的5件事

根据美国商业促进局(BBB)的数据显示,你可能会惊讶地发现,小型企业占北美所有企业的97%以上。根据这个统计数字,我认为好消息是,在所有网络攻击中,针对小企业的攻击不到一半。坏消息是,当中小企业受到攻

你应该知道的RocketMQ

1.概述在很久之前写过一篇Kafka相关的文章,你需要知道的Kafka,那个时候在业务上更多的是使用的是Kafka,而现在换了公司之后,更多的使用的是Rocketmq,本篇文章会尽力全面的介绍Rock

强化学习在小桔车服用户运营中的实践

桔妹导读:小桔车服为滴滴旗下品牌,围绕车主及汽车生命周期,整合运营多项汽车服务,更加智能更加用心地为车主提供适合的一站式用车服务,致力于让每一个人拥有轻松车生活。本次分享的主题为强化学习在小桔车服用户

关于工业物联网,你应该了解的3件事

世界各地的基础设施日益紧密。我们应该感谢工业物联网(IIoT)带来的这种连通性,它将交通、制造业、医疗保健等行业的机器和设备连接起来,并远远超出了预期范围。IIoT的潜力仍然很高,但风险也是如此。你需

2019年你应该认真对待这7个移动安全威胁

如今,移动安全是每家公司最担心的问题——而且理由很充分:几乎所有员工现在都经常使用智能手机访问公司数据,这意味着让敏感信息不落入坏人之手是一个越来越复杂的难题。可以说,风险比以往任何时候都要高:根据波

【CSS全解01】CSS基础-体系化学CSS

大纲 基础部分学习占比:HTML1%`CSS19%Javascript80%`(`基础部分?%框架?%`项目?%) CSS历史 AcidTestforbrowser CSS是艺术(非逻辑,用测试经验来

看完秒变5G专家!关于5G,你必须知道的事儿……

本文转自|鲜枣课堂   什么是5G    5G,就是5thGenerationMobileNetworks(第五代移动通信网络),也可以称为5thGenerationWirelessSystems(第

科普 | 关于联盟区块链你不知道的事

在分布账本技术发明十年后的今天,我们仍然处于大规模应用落地的早期。目前多数流行的公有区块链仍然无法落地,因此近年来越来越多的技术团队将目光集中在那类有使用场景的方向--联盟区块链。第1部分:行业分类从

你不知道的 PHP 缓存技巧

前言 相信有一定开发经验的PHP程序员都有缓存的使用经验,包括但不限于redis缓存,模板缓存,路由缓存,配置缓存,数据库缓存,还有opcache(真的很有用),但是今天我不准备炒冷饭了,我要讲点你不

分享 10 个你可能不知道的 Laravel Eloquent 小技巧

Laravel是一个功能丰富的框架。但是,你无法从官方文档中找到所有可用的功能。以下是一些你可能不知道的功能。 1.获取原始属性 当修改一条Eloquent模型记录的时候你可以通过调用getOrig

R语言有多强大?十个你不知道的功能

大数据文摘出品编译:邬亮有些业界从业人士对R语言的价值并不认可,他们认为R语言只针对统计分析。R语言的确提供了很全面的统计分析的软件包,比如CRAN,Bioconductor,Neuroconduct

Github一天标星1k+,程序员需要知道的那些定理和法则

大数据文摘出品编译:蒋宝尚、曹培信摩尔定律知道么?帕金森定律讲的又是啥?作为一名合格的开发人员,除了本身码力超强外,或多或少要知道几条“”潜规则”,例如依赖倒置原则、鲁棒性原则……关于开发人员必须要知

企业需要知道的 6个AI/ML关键点

由于人工智能(AI)和机器学习(ML)的迅速发展与应用落地,世界各地的公司正在积极利用AI和ML发展业务,甚至投资数百亿美元。这些技术能够对业务与产生深刻的影响,所以Gartner报告预测,未来将“进

你不知道的 CSS : Next-generation web styling

最近看了ChromeDevSummit2019大会视频,了解到了很多之前不知道的CSS新特性,挺有意思的。下面我就介绍几个激动人心的特性。特性总览:StickyStickeyStackSticySli

14个你可能不知道的JavaScript调试技巧

以更快的速度和更高的效率来调试JavaScript熟悉工具可以让工具在工作中发挥出更大的作用。尽管江湖传言JavaScript很难调试,但如果你掌握了几个技巧,就能用很少的时间来解决错误和bug.文中

你不知道的 Graphql

一起入门Graphql[toc]介绍GraphQL既是一种用于API的查询语言也是一个满足你数据查询的运行时。如何理解呢?GraphQL作为通用的REST架构的替代方案而被开发出来,通俗的讲,在架构中

为什么你应当选择 PostgreSQL 而不是 Oracle?

本文转自| PostgreSQL中文社区 作者简介 Jan Karremans,EnterpriseDB的高级销售工程师。 译者简介 KevinZhan,深圳联友科技SA,目前负责公司部分核心系统应用

数据泄露之后,这5件事能够帮助你降低成本

防范数据泄露对组织而言日益成为一个复杂的问题,数据泄露的平均成本持续上升,根据最新的数据泄露成本报告显示,2019年被调查者的平均成本高达392万美元。尽管保护数据是网络安全的重要组成部分,但被入侵的

海量数据AtlasDB:把“数据库好用”这件事做到极致

导语:坚守初心、不辱使命,近期海量数据研发的企业级数据库AtlasDB获得了市场的普遍关注。这款以“好用”著称的国产数据库产品,不仅承载着海量数据公司对技术创新的坚持和投入,更凝结着一群拥有“工匠之心

关于SD-WAN的三大误区

传统的广域网已经跟不上时代的发展速度。在宽带时代,网络专业人员在管理和配置分支机构时困难重重。员工注意到他们的关键业务应用程序的速度变慢了,而其他应用程序(如流媒体体育赛事)则会覆盖网络。拥有许多分支

详解 PHP 中的三大经典模式

单例模式 单例模式的含义:作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统全局地提供这个实例。它不会创建实例副本,而是会向单例类内部存储的实例返回一个引用。单例模式的三

详解 PHP 中的三大经典模式

单例模式 单例模式的含义:作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统全局地提供这个实例。它不会创建实例副本,而是会向单例类内部存储的实例返回一个引用。单例模式的三

ERP为什么要上云的三个理由!

很多企业之所以不想把ERP迁移到云端,是因为流程和数据是最大的壁垒。我们都知道,ERP是企业的关键业务系统,包含大量与业务相关的数据,因此很多企业迟迟不愿意上云,甚至干脆拒绝上云。但是,ERP迁云却是

Python 打包的现状:包的三种类型

英文|ThestateofPythonPackaging【1】原作|BERNATGABOR译者|豌豆花下猫声明:本文获得原作者授权翻译,转载请保留原文出处,请勿用于商业或非法用途。pip19.0已经于

适配器模式的三种形式

适配器模式,顾名思义,就是把原本不兼容的接口,通过适配,使之兼容。举个生活中简单的例子,以前的手机内存卡可以取出来,但是想和电脑之间传输音乐、视频等资料不能直接传输,需要通过USB读卡器,然后插入US