什么是强化学习?
不可不知的三大要点
不可不知的三大要点
强化学习是一种机器学习方法,其中计算机智能体通过与环境的反复试错交互来学习执行任务。这种学习方法使智能体能够作出一系列决策,以最大化任务的奖励度量,既无需人工干预,也无需为实现任务而进行显式编程。
强化学习背后的典型训练机制反映了许多真实场景。例如,通过正向强化对宠物进行训练。
用强化学习的术语来说,在这种情况下学习的目标是训练狗(智能体)在环境中完成任务,该环境包括狗的周围环境以及训练师。首先,训练师发出命令或提示,狗进行观察(观测值)。然后狗通过采取动作来响应。如果该动作接近期望的行为,训练师可能会提供奖励,例如食物或玩具;否则,将不提供奖励。在训练初期,狗可能会采取更多随机动作,例如当给出的命令是“坐下”时却打滚,因为它正在尝试将特定的观测值与动作和奖励建立关联。我们将观测值与动作之间的这种关联或映射称为策略。从狗的角度来看,理想情况是它能正确响应每个提示,从而获得尽可能多的奖励。因此,强化学习训练的全部意义在于“调节”狗的策略,使其学会能最大化某项奖励的预期行为。训练完成后,狗应能观察主人的指令并通过自身形成的内部策略作出对应的动作 - 例如听到“坐下”的指令就坐下。至此,奖励依然受欢迎,但理论上已非必需。
结合训练狗的示例,我们来看看使用自动驾驶系统停放车辆的任务。其目标是通过强化学习教导车载计算机(智能体)准确停入泊车位。与训练狗的场景一样,环境指智能体之外的所有事物,可能包括车辆的动态特性、周边可能存在其他车辆、天气状况等。在训练期间,智能体使用来自摄像头、GPS 和激光雷达等传感器的读数(观测值)来生成转向、制动和加速命令(动作)。为了了解如何根据观测值生成正确的动作(策略调整),智能体会进行试错过程,反复尝试泊车。系统会提供奖励信号,用于评估试错的效果并指导学习过程。
在训练狗的示例中,训练发生在狗的大脑内部。在自主泊车的示例中,训练由训练算法处理。训练算法负责根据收集的传感器读数、动作和奖励来调整智能体的策略。在训练完成后,车载计算机应该可以仅凭调整后的策略和传感器读数就进行泊车。请注意,这两者都是无模型强化学习的示例,因为它们都涉及与环境的试错交互以生成数据。
强化学习的主要组成部分(策略、环境、智能体、动作、奖励和观测值)在被称为马尔可夫决策过程的框架内形式化,该框架为不确定性环境中的决策提供数学模型。
探索与利用之间的权衡是强化学习的关键方面,对学习质量有重大影响。其主旨是:智能体应通过选择已知能获取最多奖励的动作来利用环境,还是应选择探索环境中仍未知的区域的动作?智能体做出的选择确定它接收到的信息,因此也确定它可以从中学习的信息。过度探索会导致智能体无法收敛于良好的策略。而过度利用可能导致智能体陷入局部、次优解。一般而言,在学习初期,由于可供利用的信息不足,智能体应进行更多探索,而到学习后期,则应逐步过渡到更多利用。
深度强化学习是强化学习和深度学习的结合。对于较简单的问题,采用查找表形式的策略可能就足够了,但对于大型问题和本质上是连续的问题,这种方法的扩展性较差。深度神经网络通过深度强化学习训练可以对复杂行为进行编码,为那些用更传统方法难以处理或更具挑战性的应用提供了一种替代解决方案。例如,在自动驾驶中,神经网络可以取代驾驶员,通过同时查看多个传感器(例如相机帧和激光雷达测量值)来决定如何转动方向盘。如果没有神经网络,这类问题通常需要拆解为多个子问题,例如从摄像头帧中提取特征、对激光雷达测量数据进行滤波、融合传感器输出,以及基于传感器输入作出“驾驶”决策,这些子问题用查找表或多项式函数等更传统的策略表示方法更容易求解。
使用强化学习训练智能体的常见工作流包括以下步骤:
使用强化学习训练智能体是一个迭代过程。后期的决策和结果可能会要求重返学习工作流的前期。如果训练过程未在合理时间内收敛于最优策略,您可能需要回溯并重新审视问题定义(动态特性、观测值、动作)、奖励信号、策略架构和算法超参数,然后再次进行训练。
与无监督和有监督机器学习不同,强化学习不需要依赖静态数据集,而是可以在动态环境中运行并从收集的经验中学习。数据点(或经验)可以在训练期间通过环境和软件智能体之间的试错交互来收集。强化学习的此特性很重要,因为它免除了在训练前进行数据采集、预处理和标记的工作量,而这些工作量在有监督和无监督学习中是必不可少的。
深度学习涵盖所有三种类型的机器学习;强化学习和深度学习并非互斥。复杂的强化学习问题通常依赖深度神经网络和深度强化学习。
强化学习算法可根据其学习和决策的方法分为多个类别。
强化学习算法主要分为三大类:
基于模型的强化学习构建或使用环境动力学模型(转移概率和奖励函数)进行规划和决策。“规划”一词是关键;这些算法通常只需少量甚至无需与环境交互,因为它们依赖其内部模型对将来的状态进行仿真。内部模型可以是预先给定的(在这种情况下,智能体完全无需与环境交互),也可以通过从与真实环境的交互中收集的数据进行学习。基于模型的强化学习通常比无模型强化学习的采样效率更高,因为模型可快速生成大量的训练数据。然而,根据内部模型是预先给定还是通过学习获得,基于模型的方法可能比无模型的方法需要更多计算资源,因为前者除了训练基础智能体外,还必须训练环境模型并生成训练数据。
与基于模型的算法不同,无模型方法不会构造环境的显式模型。相反,它们通过与环境的直接交互,依靠试错学习最优动作(回想上一节中的训练狗和自动泊车示例)。这种方法更简单,更适合高维或非结构化环境,但在数据使用方面通常效率较低。大多数最先进的强化学习算法为无模型算法。
在线强化学习中,智能体在学习过程中主动与环境交互 - 收集经验、更新策略,并随着新数据的产生而持续调整。上述训练狗和自动泊车场景是在线强化学习的示例。
与之相反,离线(或批量)强化学习仅从记录经验的静态数据集(例如来自人类演示或过往策略的数据集)中学习,无需与环境进行进一步交互。离线方法在真实交互成本高或存在安全风险的场景中表现出色,即使从随机或非专家数据中也能提取有用信息(尽管学习效果不如从专家数据或结构化程度更高的数据中学习)。在实际应用中,离线强化学习通常是在转向在线强化学习之前预训练策略的理想选择,在线强化学习虽然采样效率低,但由于能使用新数据持续调整,通常能实现更优的性能。
同策略的强化学习算法对生成训练数据所使用的策略进行更新和评估,即智能体根据自身的实际动作学习当前策略的值(例如 SARSA 算法、PPO 算法、TRPO 算法)。这种方法通常能实现更稳定、更可靠的策略更新,因为无需像异策略方法那样调和行为策略与目标策略之间的差异。由于只需维护和更新一个策略,其计算复杂度也相对较低。
另一方面,异策略方法(例如 Q 学习算法、DQN)利用策略(行为策略)收集的数据,学习或改进一个不同目标策略(如贪心策略或最优策略)。因此,这类方法可将过往的经验(数据)存储在回放缓冲区中并多次重用。与每次策略更新后都会丢弃数据的同策略方法相比,这会大幅提升采样效率。异策略方法的另一项优势是它们能从任意策略中学习,包括随机数据、过时数据,甚至是人工生成的数据。这种灵活性使其能够基于离线数据集或演示进行训练。
基于梯度的算法是许多当代深度强化学习算法的主力,因为它们利用策略梯度的含噪估计(通过反向传播),实现快速、采样高效的学习。但与此同时,这类算法对超参数敏感,容易陷入局部最优解,且要求数据具有可微分性。
与之相反,进化强化学习将策略视为黑盒,在梯度不可得或不可靠、具备大规模并行计算能力,或需要在复杂的搜索空间中进行广泛探索的场景中,它是一种强大的工具。进化策略通过基于种群的变异和选择进行全局搜索 - 对稀疏或不可微分的奖励信号具有稳健性,但其采样效率低得多,收敛速度也更慢。
混合方法正日益成为融合二者优势的选择:通过进化进行探索和全局搜索,再通过基于梯度的更新对有潜力的策略执行细化,通常能实现整体更优的性能。
实际问题的性质通常决定适用的算法类型。如果环境的状态空间和动作空间是离散的且规模较小,则可以使用简单的表来表示策略。Q 学习和 SARSA 是常见的表格型算法示例。当状态/动作对的数量变得庞大甚至无限时,用表来表示策略参数就不再可行。这称为维度灾难,而这正是神经网络发挥作用的地方。通常,大多数现代强化学习算法依赖于神经网络,因为后者非常适合处理大型状态/动作空间和复杂问题。
在单智能体强化学习中,只有一个智能体与环境交互 - 这使得学习更简单、稳定且易于分析。相反,多智能体强化学习 (MARL) 涉及多个智能体在同一环境中交互。由于智能体之间相互影响,环境具有非平稳性,这会违反马尔可夫假设,导致学习过程不稳定。虽然 MARL 能解决更复杂的任务,并产生协作、协商等涌现行为,但也带来诸多挑战,包括收敛性问题、计算要求高,以及如果各智能体独立更新策略会导致训练不稳定性。
尽管强化学习绝非新概念,但深度学习和计算能力的近期发展,使其在人工智能领域取得了一系列令人瞩目的成果。
强化学习的优势包括:
强化学习是一种强大的方法,但也伴随着挑战,包括:
过去几年,强化学习已应用于多个领域,包括 AI 聊天机器人、大语言模型 (LLM)、推荐系统、营销与广告,以及游戏领域。但在很大程度上,其在生产应用中的效果仍处于评估阶段,尤其在工程系统领域。值得庆幸的是,前文所述的各项优势正缓慢而稳步地推动该技术在多个领域的应用。强化学习在工程系统中的实际应用通常集中在以下领域:
MATLAB®、Simulink® 和 Reinforcement Learning Toolbox™ 可简化强化学习任务。您可以在同一生态系统中,完成强化学习工作流的每个步骤,实现控制器和决策算法的开发。具体来说,您可以:
您可以使用 MATLAB 和 Simulink 来应对通常与强化学习相关联的诸多挑战。
借助 Parallel Computing Toolbox™ 和 MATLAB Parallel Server™,您可以通过利用多个 GPU、多个 CPU、计算机集群和云资源来更快地训练强化学习策略。例如,您可以通过并行启动多个仿真来更快地生成训练数据,也可以通过加速梯度计算来加速学习。
Reinforcement Learning Toolbox 还提供基于模型的强化学习功能,这有助于提高采样效率。
基于模型的策略优化 (MBPO) 智能体的采样效率通常高于无模型智能体,因为模型能生成大量多样化的经验。
您可以使用 Reinforcement Learning Toolbox 来减少需要手动调节的超参数数目。例如,无需手动指定神经网络策略的架构即可创建智能体;在强化学习设计器中可通过贝叶斯优化以交互方式调节智能体超参数。此外,如果您已有 Model Predictive Control Toolbox™ 的相关规范,或已通过 Simulink Design Optimization™ 的 Model Verification 模块指定性能约束,则可以自动生成奖励函数。
仿真在强化学习中至关重要。借助与 Simulink 的紧密集成,很容易通过域随机化来增强策略的泛化能力,即跨各种场景训练智能体,甚至包括那些在现实中难以创建且存在风险的极端或危险条件。
使用 Reinforcement Learning Toolbox,您可以充分利用所有可用数据源以提升泛化能力,弥合仿真到现实的鸿沟。通过离线强化学习,您可以使用现有数据(例如来自目标硬件的数据)预训练策略。然后,您可以通过针对仿真环境进行训练来改进策略,并应用域随机化使其对不确定的因素和场景具有稳健性。为确保仿真模型准确表示真实系统,您可以依赖系统辨识。过程的最后一步(如果需要)是通过直接针对真实硬件进行训练来微调经过训练的策略。虽然将真实硬件纳入训练循环通常存在风险甚至危险,但该工作流的前两个步骤能将策略微调所需的与物理硬件的交互次数降至最低。此功能也可应用于实时场景。
强化学习的一个常见特征是存在“静默错误”- 在训练或执行期间可能出现微妙、难以检测的问题。Reinforcement Learning Toolbox 支持您记录和可视化关键的训练数据,便于进行分析和调试。
基于仿真的验证是验证强化学习策略最常用的方法,而 Simulink 让此方法的实现变得简单。使用基于模型的设计,可通过传统的验证和确认方法拓展基于仿真的验证的范围;例如,可通过 Requirements Toolbox™ 对策略的需求进行形式化定义,并分析其一致性、完整性和正确性。此外,您也可以使用 Deep Learning Toolbox Verification Library 中提供的形式化方法来评估神经网络策略的某些属性,例如稳健性和网络输出边界。
最后需要考虑的一点是,将一个复杂问题拆解为多个较小的子问题有助于应对本节讨论的所有挑战;调试和可解释性将变得更易实现(较小的问题通常需要更简单的策略架构),验证需求也可能相应减少。在这类场景中,可将强化学习与传统(控制)方法相结合。该架构的核心思想是,使用可验证的方法或传统方法处理问题中安全关键的部分,而将黑盒强化学习策略应用于更高层级、可能非关键的组件。还可以考虑使用其他架构,例如采用混合方法,让传统方法与强化学习并行运行,或让强化学习对传统方法进行补充或校正。MATLAB 让这类架构的实现变得简单;除了强化学习和基于 AI 的方法外,您还可以直接使用各类传统方法,并通过单一仿真平台 Simulink 将其融合在一起。
通过文档、示例、视频等拓展您的知识。
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲