账号:
密码:
最新动态
产业快讯
CTIMES / 文章 /
强化学习:入门指南
 

【作者: Emmanouil Tzorakoleftherakis】2019年11月14日 星期四

浏览人次:【9535】

强化学习(Reinforcement learning)潜力无穷,能解决许多开发应用上面临的艰难决策问题,包括产业自动化、自主驾驶、电玩竞技游戏以及机器人等,因此备受瞩目。


强化学习是机器学习(Machine learning)的一种,指的是电脑透过与一个动态(dynamic)环境不断重复地互动,来学习正确地执行一项任务。这种尝试错误(trial-and-error)的学习方法,使电脑在没有人类干预、没有被写入明确的执行任务程式下,就能够做出一系列的决策。最著名的强化学习案例就是AlphaGo,它是第一支打败人类围棋比赛世界冠军的电脑程式。


强化学习的运作主要是仰赖动态环境中的资料—也就是会随着外部条件变化而改变的资料,像是天气或交通流量。强化学习演算法的目标,即是于找出能够产生最佳结果的策略。强化学习之所以能达成目标,是借着软体当中被称为主体 (agent)的部分在环境中进行探索、互动和学习的方法。


自动驾驶范例

自助停车(self-parking)是自动驾驶功能中极为重要的一环,目标是要让车辆中的电脑(主体,agent)能准确地寻找位置并将车辆停入正确的停车格。


在以下的范例中,「环境」指的是主体之外的所有事物—比如车辆本身的动态、附近的车辆、天候条件等等。训练过程中,主体使用从各种感测器如摄影机、GPS、光学雷达(LiDAR)以及其他感测器读取的资料来产生驾驶、煞车与加速指令(动作)。为了学习如何从观察去产生正确的动作(也就是策略调整,policy tuning),主体会不断反覆地尝试错误来试着停车,而正确的动作会得到一个奖赏(reward)(强化,reinforced)以数值讯号表示(图1)。



图1 : 强化学习概要图
图1 : 强化学习概要图

以此范例来说,训练是透过一个训练演算法(training algorithm)来监督。这个训练演算法(即主体的大脑)负责根据从感测器收集而来的资料、动作、与奖赏来调整主体的策略。经过训练之后,车辆上的电脑应该只要使用调整过的策略和感测器资料便能进行自主停车。


用于强化学习的演算法

到目前为止,已经有许多强化学习训练演算法被开发出来,其中某些最热门的演算法是以深度类神经网路来建构。类神经网路最大的优势,是可以将复杂的行为编译为代码,让强化学习可以处理许多对传统演算法来说可能是非常具有挑战性的任务。


举例来说,在自动驾驶任务上,类神经网路可以取代驾驶者,透过摄影机的画面、和光学雷达的量测值等多种感测器的输入资料进行解读,并决定如何转动方向盘(图2)。



图2 :  自动驾驶的类神经网路
图2 : 自动驾驶的类神经网路

若没有类神经网路,这种问题会被分解为更细微的部分:首先,一个能分析摄影机输入资料并找出有用特征的模组、另一个能过滤光学雷达量测值的模组、可能还需要一个将感测器的输出资料进行融合、并将车辆周边环境绘制出来的元件、也就是一个「驾驶」模组等等。


强化学习的工作流程

利用强化学习来训练一个主体,主要包含五个步骤:


1.建立环境:定义出一个环境,让主体可以在里面进行学习,包含主体与环境之间的介面也须被定义出来。这个环境可以是一个模拟模型,也可能是真实的物理系统。经过模拟的环境通常是作为第一步的较好选择,因为它较为安全且容许实验操作。


2.定义奖赏:具体定义奖赏的讯号,供主体用来衡量其表现(与执行目标相比),以及讯号如何在环境中被计算。奖赏的设计可能会需要经过几次的叠代才能达到完备。


3.建立主体:主体由策略和训练演算法组合而成,所以你会需要:


选择一个代表策略的方法(比如利用类神经网路或是查找表)。思考一下,你希望如何去建构这些参数和逻辑以成为主体的决策部分。


选择适当的训练演算法。现代大部分的强化学习演算法多仰赖类神经网路,因为这是处理大量状态/动作空间和复杂的问题的好方法。


4.训练及验证主体:你还需要设置训练的选项(例如停止的标准),并训练主体来调整策略。验证经过训练策略最简单的方法就是模拟了。


5.策略的布署:如何呈现已经被训练好的策略?举例来说,可以用C/C++或CUDA程式码等方式来表示。此时你已经不需要担心主体和训练演算法了—因为到此阶段,策略已经被转为一个独立的决策系统可直接执行。


叠代流程

利用强化学习来训练主体,所牵涉到尝试错误的次数是相当可观的,即使已经到较后面的决策与结果阶段了,你可能还会需要重新回到较早的学习工作流程步骤中。举例来说,如果训练程序没有在一段合理的时间之内收敛到最佳的决策,你可能会需要在重新训练主体之前,先去更新下列某些项目:


--训练的设定


--学习演算法的配置


--策略的表现方式


--奖赏讯号的定义


--动作与观察讯号


- 环境动态


哪些情况适合使用强化学习?

虽然强化学习被视为大幅进化的机器学习,不过它却不一定是适用于所有情况的最好方法。如果你考虑尝试使用强化学习,请记住以下三点:


--它不具备所谓的样本效率(sample-efficient)。这指的是,如果要达到可接受的表现,需要有大量的训练。即使是在相对简单的应用,可能会花费几分钟、几小时、或什至是几天的训练的时间。 AlphaGo就是经过了好几天没有间断、几百万次比赛的训练,等同人类几千年知识的累积。


--问题的正确设定可能很棘手。可能会需要很多的设计决策、相当次数的叠代来达到正确的行为。这些决策包含了选择合适的类神经网路架构、调整超参数、以及塑造奖赏讯号等。


--训练过的深度神经网路策略是一个「黑盒子」。也就是说,网路内部的结构(通常由几百万个参数构成)可能复杂到几乎难以了解及解释、以及去评估它所做出的决定,这使得利用类神经网路所建立的策略,很难用正式的性能表现来加以保证它的成效。


如果你所处理的专案攸关时间或安全性至上,你可能可以尝试其他的替代方案,比如说控制设计,使用传统的控制方法可能是较好的开始。


实际范例:自学走路的机器人

南加州大学(University of Southern California)Valero Lab的研究人员建造了一个简单的机械腿,利用以MATLABR编写的强化学习演算法,几分钟之内就让它自己教导自己学会如何移动(图3)。



图3 :  Valero Lab的新机械肢。图片提供:USC。
图3 : Valero Lab的新机械肢。图片提供:USC。

这个机械肢含有三条腱、两个关节会自主地进行学习,首先是先建立它的动态属性模型,接下来则使用强化学习来进行学习。


在物理设计方面,机械腿采用了一个肌腱架构,大致上相当于驱动动物活动的肌肉和肌腱结构。接着研究人员利用强化学习去了解动态行为以达成在跑步机上行走的目标。


强化学习与运动蹒跚

透过运动蹒跚(motor babbling)与强化学习的结合,系统会试图进行随机的动作,并透过执行这些动作产生的结果来学习其动态的属性。以这项研究来说,研究团队一开始先让系统进行随机的运动,或运动蹒跚(motor babble)。只要每一次系统正确地执行了指定任务—在这个范例中,是在跑步机上向前移动,研究人员就会给予系统奖赏。


这个经由学习产生的演算法被称为G2P(general to particular,从一般到特定的缩写),它复制了生物神经系统从移动去控制肌腱移动时会遇到的一般问题(图4)。随后再强化(给予奖赏)任务的特定行为。在这个范例,任务是要成功地在跑步机上移动。系统透过运动蹒跚建立了自身动态的一般性理解,接着从每一次的经验或G2P学习,最终开发出达到「特定」任务的行为。



图4 : G2P演算法。图片提供:Marjaninejad, et al.
图4 : G2P演算法。图片提供:Marjaninejad, et al.

这个类神经网路,是利用MATLAB和深度学习工具箱(Deep Learning Toolbox?)来完成的,它使用了从运动蹒跚得来的结果,建立一个输入(运动学)和输出(运动触发)的反向地图。该网路会依据强化学习阶段所做的每一次尝试来更新模型,而趋向期望的结果。网路会记住每一次的最佳结果,当新的输入值创造出更好的结果,网路则会以新的设定来覆盖原本的模型设定。


G2P演算法在仅仅5分钟的无特定结构地执行运动蹒跚后,就可以自己学习新的步行任务,然后,它也不需要任何额外的编程,便能够适应其他任务。


(本文由钛思科技提供;作者Emmanouil Tzorakoleftherakis任职于MathWorks公司)


相关文章
人工智慧和自动化:中小企业转型良方
生成式AI与PC革新
机器学习可以帮助未来的癌症诊断
Premium Radar SDK以演算技术改进汽车雷达应用
资料科学与机器学习协助改善颈部损伤评估
comments powered by Disqus
相关讨论
  相关新闻
» GTC 2024:所罗门与NVIDIA合作加速生成式AI应用
» 日月光半导体与文藻外大携手培育高科技跨域人才
» 帆宣与隹世达合组「达宣智慧」公司 启动智慧医疗引擎
» 镭洋叁与美国华盛顿卫星展 展示立方卫星成果和地面设备追星技术
» IDC:2023年亚太区PC市场衰退16.1%


刊登廣告 新聞信箱 读者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2024 远播信息股份有限公司版权所有 Powered by O3  v3.20.1.HK83JAY9UA2STACUKG
地址:台北数位产业园区(digiBlock Taipei) 103台北市大同区承德路三段287-2号A栋204室
电话 (02)2585-5526 #0 转接至总机 /  E-Mail: webmaster@ctimes.com.tw