购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.1 强化学习

强化学习(Reinforcement Learning,RL)旨在学习如何做,即如何根据情况采取动作,从而实现数值奖励信号最大化。学习者不会接到动作指令,而是必须自行尝试去发现回报最高的动作方案。强化学习(RL)已成功地训练计算机程序在游戏中击败全球最厉害的人类玩家。在状态和动作空间较大、环境信息不完善并且短期动作的长期回报不确定的游戏中,这些程序可以找出最佳动作。

从广义上而言,控制系统的目标是确定生成期望的系统行为的正确系统输入(动作)。在反馈控制系统中,控制器使用状态观测提高性能并修正随机干扰。工程师运用反馈信号,以及描述被控对象和环境的模型,设计控制器,从而满足系统需求。以上概念表述十分简单,但若系统难以建模、高度非线性或者状态和动作空间较大,则很难实现控制目标。

为了理解此类难题对控制设计问题造成的进一步后果,不妨设想一下开发步行机器人控制系统的场景。要控制机器人(即系统),可能需要指挥数十台电机操控四肢的各个关节。每一项命令是一个可执行的动作。系统状态观测量有多种来源,包括摄像机视觉传感器、加速度计、陀螺仪及各电机的编码器。控制器必须满足多项要求:确定适当的电机扭矩组合,确保机器人正常步行并保持躯体平衡;在需要避开多种随机障碍物的环境下操作;抗干扰,如阵风。控制系统设计不仅要满足上述要求,还需满足其他附加条件,如在陡峭的山坡或冰块上行走时保持平衡。通常,解决此类问题的最佳方法是将问题分解成为若干部分,逐个击破。例如,可以构建一个提取摄像机图像特征的流程。比方说,障碍物的位置和类型,或者机器人在全局参照系中所处的位置。综合运用这些状态与其他传感器传回的处理后的观测值,完成全状态估测。估算的状态值和参考值将馈送至控制器,其中很可能包含多个嵌套控制回路。外部环路负责管理高级机器人行为(如保持平衡),内部环路用于管理低级行为和各个作动器。

各环路之间相互交互,使得设计和调优变得异常困难。同时,确定最佳的环路构造和问题分解也并不轻松。不是尝试单独设计每一个组件,而是设想一下将其全部塞进一个函数里,由该函数负责接收所有观察结果并直接输出低级动作。毋庸置疑,这可以简化系统方块图,但这个函数会是怎样的结构?该如何设计这个函数?强化学习则是达成这一目标的重要方法。

强化学习是机器学习的3个大类之一。理解强化学习与无监督学习和监督式学习的区别是非常重要的。监督学习用于确定尚未被分类或标注的数据集的模式或隐藏结构。假设我们收集了10万种动物的生理特征和社会倾向性信息,则可以使用无监督学习进行动物分组或总结相似特征,可以根据腿数进行分组,也可以根据不太显著的模式进行分组,如之前并不知道的生理特性和社会行为之间的关联性;或者使用监督式学习训练计算机为给定输入加上标签。例如,如果动物特征数据集的其中一列是物种,则可以将物种作为标签,其余数据作为数学模型的输入。我们可以使用监督式学习训练模型,使其能够根据每一组动物的特征正确标记数据集。先由模型推断物种,再由机器学习算法系统性地调整模型。运用足够的训练数据获得可靠的模型后,再输入未标注的新动物的特征,经过训练的模型即能给出对应最有可能的物种标签。

强化学习是一种截然不同的方法。不同于另外两种采用静态数据集的学习框架,强化学习采用动态环境数据。其目标并不是对数据进行分类或标注,而是确定生成最优结果的最佳动作序列。为了解决这个问题,强化学习通过一个软件(即所谓的代理)来探索环境、与环境交互并从环境中学习。代理中有一个函数可接收状态观测量(输入),并将其映射到动作集(输出)。也就是前面讨论过的单一函数,它将取代控制系统的所有独立子组件。在强化学习命名法中,此函数称之为策略。策略根据一组给定的观测量决定要采取的动作。以步行机器人为例,观察结果是指每个关节的角度、机器人躯干的加速度和角速度,以及视觉传感器采集的成千上万个像素点。策略将根据所有这些观测量,输出电机指令,使机器人移动四肢。接着,环境将生成奖励,向代理反映特定作动器指令组合的效果。如果机器人能够保持直立并继续行走,则对应的奖励将高于机器人摔倒时的奖励。

如果可以设计出一项完美的策略,针对观察到的每一种状态向适当的作动器发出适当的指令,那么目标就达成了。当然,大多数情况下并非如此。即便真的找到了完美的策略,环境也可能不断变化,因而静态映射不再是最优方案。正因为如此,强化学习算法应运而生。它可以根据已采取的动作、环境状态观测量,以及获得的奖励值来改变策略。代理的目标是使用强化学习算法学习最佳环境交互策略,这样一来,无论在任何状态下,代理都能始终采取最优动作,即长期奖励最丰厚的动作。

为了理解机器如何学习,请思考一下策略的含义:一个由逻辑和可调参数构成的函数。倘若已有一套完善的策略结构(逻辑结构),对应有一组参数可生成最优策略,即可产生最丰厚的长期奖励的状态——动作的映射。学习是指系统性调整这些参数以收敛到最优策略的过程。这样,我们就可以专注于设置适当的策略结构,而无须手动调整函数来获取确切的参数。

强化学习的目标与控制问题相似,只不过方法不同,使用不同的术语表示相同的概念。通过这两种方法,我们希望确定正确的系统输入,以让系统产生期望的行为。目的在于判断如何设计策略(或控制器),从而将环境(或被控对象)的状态观测量映射到最佳动作(作动器指令)。状态反馈信号是指环境观察结果,参考信号则内置到奖励函数和环境观测量中。

一般来说,强化学习涉及5个方面:建立环境、奖励、策略、训练和部署问题。环境是指存在于代理之外的一切元素,它既是代理动作产生作用的地方,又能生成奖励和观测量。从控制的角度而言,这个定义可能令人费解,因为人们普遍将环境视为影响控制系统的干扰。然而,在强化学习的术语中,环境是指除代理以外的一切元素,包括系统动态特性。因此,控制系统的一大部分实际上都属于环境。代理只不过是通过学习生成动作及更新策略的一个软件而已。

强化学习之所以功能强大,原因之一在于代理不需要对该环境有任何了解,但仍可学习如何与该环境交互。例如,代理不需要了解步行机器人的动力学或运动学原理,不必了解关节移动或附肢长度,却仍能确定如何获得最多的奖励。这就是所谓的无模型强化学习。在无模型强化学习中,我们可以将采用强化学习的代理内置到任何系统,代理将能够学习最优策略(假设已给策略访问观测量、奖励、动作及足够的内部状态的权限)。

无模型强化学习面临一个问题:如果代理不了解环境,那么必须探索状态空间的所有区域,以确定如何获得最多的奖励。这意味着,代理需要在学习过程中投入一些时间探索低奖励区域。但是,状态空间的某些区域不值得探索。通过提供整个环境或部分环境的模型,将已知的信息提供给代理。代理可以使用模型探索环境的某些部分,而无须采取实际的动作。模型可以补足学习过程,使其避开已知的无益区域,而集中探索剩余部分。

基于模型的强化学习可以缩短学习最优策略所需的时间,因为我们能够使用模型指导代理远离已知的低奖励状态空间区域。首先,我们不希望代理进入这些低奖励状态,所以无须学习低奖励状态下的最佳动作。其次,在基于模型的强化学习中,不需要了解整个环境模型。只需为代理提供自己了解的那部分环境。最后,无模型强化学习应用更广泛。现阶段,无模型强化学习更受欢迎,因为人们希望通过它来解决一些难以开发模型(甚至是简单模型)的问题。例如,通过像素观测来控制汽车或机器人。在大多数情况下,像素强度与汽车或机器人动作之间的关系并不明显。 vyOmKaGPVlgiCgRzS7c1g0Ra5KFq8PMoZAxcNvYd0ii1D6KSrvzvUctsKR7eWtU4

点击中间区域
呼出菜单
上一章
目录
下一章
×