强化学习,第1部分:什么是强化学习?
从系列中:强化学习
布莱恩•道格拉斯
人工智能,机器学习,深度神经网络。这些术语可以激发你对未来机器人是会思考和进化的生物的想象。
在这个视频中,我们从工程师的角度概述了强化学习。强化学习是一种机器学习,它有潜力解决一些真正困难的控制问题。在本系列结束时,你将更好地准备回答以下问题:
- 什么是强化学习?为什么在解决我的控制问题时要考虑它?
- 我如何设置和解决强化学习问题?
- 与传统的控制方法相比,强化学习的优点和缺点是什么?
人工智能、机器学习和深度神经网络。这些术语可以激发你对未来机器人是会思考和进化的生物的想象。在这个视频中,我们将看看强化学习,或者RL,我有时会缩写它。这是一种机器学习,有潜力解决一些真正困难的控制问题。
你可能听说过人工智能公司Deep Mind开发了一个名为AlphaGo的程序。这是一个使用强化学习来击败世界上最好的围棋玩家的人工智能,然后他们最近创造了阿尔法之星,准备统治星际争霸2的场景。所以很自然地,你可能会想,好吧,如果它能做到这一点,为什么我不能用强化学习来控制我的机器人或冷却我的数据中心,或在高度动态和湍流中稳定无人机?
好吧,我们来谈谈这个。现在,在我们开始之前,有一个简短的警告。这并不是对强化学习的详尽介绍。反正我也没资格跟你解释清楚。相反,我想从一个受过传统训练的控制工程师的角度来介绍这个话题,我希望向你们展示,这实际上与控制理论有很多重叠。
在本系列结束时,我认为您将更好地准备回答以下问题:什么是强化学习,以及在解决我的控制问题时为什么要考虑它?我如何设置和解决强化学习问题?与传统的控制方法相比,强化学习的优点和缺点是什么?
好的,有了这个系列的范围,我们开始吧。我是Brian,欢迎来到MATLAB技术讲座。让我们从传统控制方法的角度来思考构建一个行走机器人的复杂性。我们可以使用相机来观察环境,然后提取图像特征,并将其转换为障碍物的位置或位置等信号。
我们可以将这些观察结果与完成状态估计的其他传感器结合起来,然后将其与植物和环境模型一起使用,以设计控制系统。更有可能的是,这将包括多个相互作用的控制循环。例如,会有低级的电机控制器和高级控制器来管理腿部轨迹或机器人躯干轨迹。可能还有一个更高级别的控制器来管理余额或非标称行为。
在一个不确定的环境中,所有的东西都必须一起工作才能产生这种复杂的行走动作,这真的很有挑战性。与其这么复杂,不如把它压缩到一个简单的黑盒子里,只需要接收观察结果,直接输出低级别的电机指令。如果我们有无限的智慧,我们可以坐下来设计一个功能,可以让机器人行走,而不需要考虑整个过程中所有的内部步骤。但既然我们不是,那就需要机器学习了。
广义上讲,机器学习可以细分为三类:无监督学习、有监督学习和强化学习。无监督学习用于寻找尚未分类或标记的模式或隐藏结构和数据集。例如,假设你收集了10万只动物的信息,比如一堆物理属性和社会倾向。
然后你可以使用无监督学习对动物进行分组或将它们聚类为相似的特征。这可以是一些显而易见的事情,比如把它们归类为哺乳动物和鸟类,或者按照可能不那么明显的模式来分组,比如发现你事先不知道的身体特征和社会行为之间的相关性。另一方面,监督学习在一个微妙的方式上有所不同,因为我们训练计算机对给定的输入应用标签。
例如,假设我们的动物特征数据集中有一列是物种。然后,我们可以把物种作为标签,其余的数据作为数学模型的输入。然后,我们可以使用监督学习来训练我们的模型,通过一次输入一个动物特征来正确标记每一组动物特征,让模型猜测物种,然后根据猜测是否正确系统地调整模型。
如果我们有足够的训练数据来得到一个可靠的模型,我们就可以发送一个新动物的输入特征,一个我们没有标记的动物,我们训练过的模型会把最可能的物种标签应用到它身上。监督学习可能是大多数人熟悉的机器学习类型,因为它允许计算机识别照片中的猫或你朋友的照片。
从根本上讲,将标签应用于图像与将标签应用于动物特征数据集是完全相同的问题。我们在模型中输入一堆训练图像,然后根据它的猜测是否正确来调整模型,直到它准确。不同之处在于,图像的输入数据只是表示像素强度的数字流,所以理解它与猫的关系并不那么直接。
这正是深度学习所擅长的。通过将模型表示为一个深度神经网络,我们有一种有效的方法来输入数千个数字,然后在训练过程中调整它,使它可以在像素强度数组中识别特征,最终允许它应用正确的标签。强化学习完全是另一回事。与其他两个使用静态数据集的学习框架不同,RL使用动态环境,其目标不是聚类数据或标记数据,而是找到将产生最佳结果的最佳操作序列。
最优在这个意义上意味着收集最多的奖励。它通过允许一个称为代理的软件探索环境、与环境交互并从环境中学习来实现这一点。智能体可以采取影响环境的行动,改变其状态,然后环境对该行动产生奖励。在使用这些信息时,代理可以调整将来要采取的行动。它可以从这个过程中学习。
尽管你可能不是一个软件,但你的学习方式本质上与软件代理在强化学习框架下的学习方式相同。你可以被认为是一个代理,你周围的世界是你可以与之互动、观察其状态并收集奖励的环境。你通过采取好的行动得到环境的奖励,比如你上了大学——行动——你找到了一份工作——状态——这份工作薪水很高——奖励。
或者你过马路前看了两边,开始。你已经到另一边了,州警。而且你没有在过程中被碾过,奖励你。或者,你会因为采取糟糕的行动而获得较低或负的奖励。就像你考试前熬夜一样,开始。你累了,州。你的成绩很差,作为奖励。
在智能体内部有一个大脑,它接受状态观察和输入,并将它们映射到行动和输出。在RL术语中,这种映射称为策略。给定一组观察,策略决定采取哪些行动,就像监督学习一样,我们可以将策略表示为一个深度神经网络,我们稍后将看到,它允许我们的代理一次性输入数千个状态,并且仍然能够提出有意义的行动。
这就是深度强化学习这个术语的由来。在一个行走机器人的例子中,观察可能是每个关节的状态和来自相机传感器的数千个像素。策略将接收所有这些观察结果并输出执行命令。如果机器人保持直立并继续行走,环境就会产生奖励,告诉智能体执行器命令的具体组合有多好。
当然,策略可能无法正确映射以采取最佳操作,或者环境可能正在缓慢变化,因此映射不再是最佳的。这就是强化学习算法的用武之地。他们根据所采取的行动、对环境的观察以及所收集的奖励数量来改变策略。通过这种方式,整体智能体的目标是在与环境交互时使用强化学习算法来修改其策略,以便最终在给定任何状态下,它总是会采取最有利的行动,从长远来看将产生最大回报的行动。
例如,如果你考试很累,而你的成绩很差,那么,你会从中吸取教训,调整你的策略,这样你就不会在下次考试前熬夜了。现在,强化学习的核心是一个优化问题,但有一些非常有趣的概念将强化学习与其他优化技术区分开来。首先是价值观念。
奖励是处于特定状态下的瞬时利益,而价值是代理可以期望从该状态到未来收集的总奖励。评估状态的价值,而不是评估奖励,可以帮助智能体选择随着时间的推移收集最多奖励的行动,而不是短期利益。例如,假设我们的代理处于这种情况,并试图在三步内收集最多的奖励。
如果智能体直接看着每个动作的奖励,那么它会先向左走,以获得更高的奖励,然后向右走,然后再向左走,最终获得+ 1。然而,如果智能体能够估计一个状态的价值,那么它将看到向右走比向左走的价值更高,最终将获得+ 8的奖励。当然,对未来高奖励的承诺并不意味着行动就是最好的,至少有两个原因可以解释这一点。
第一,就像金融市场一样,现在口袋里的钱比一年后口袋里的钱多一点更好。第二,你对未来奖励的预测变得不那么可靠,因此,当你获得高奖励时,可能已经没有了。在这两种情况下,在评估价值时稍微短视一些会更有利。
在RL中,我们可以通过对未来的奖励进行更大的折现来控制这一点。强化学习的另一个关键方面是在与环境交互时探索和利用之间的权衡。这是在收集你已经知道的最多奖励与探索你还没有去过的环境区域之间的交易。
例如,假设智能体只知道与之相邻的两个奖励。如果它采取贪婪的方法,利用环境,它只会追求它所知道的最高奖励,所以它会去左边收集1。然而,如果我们偶尔让智能体探索状态空间——即使冒着收集更少奖励的风险——它可以填充更多的价值函数,并且它有可能找到它不知道的更高奖励。
这也是我们人类正常学习过程的一部分。一个简单的例子是决定你想去哪家餐厅吃饭。你会选择一家你知道自己喜欢的餐厅,然后利用你的知识吗?或者你会冒险去探索一家你从未去过的餐厅,增加你的知识?
现在,尝试一家新餐厅给了你找到一个新的最喜欢的地方的机会,但它也增加了你吃到你不喜欢的食物的机会。在探索和开发之间找到完美的平衡是很棘手的,然而,RL算法至少提供了一种简单的方法来设置这种平衡。好吧,我们开始觉得RL的目标和我们设计控制系统时控制工程师的目标完全不同,但这几乎是完全相同的问题。
我们试图弄清楚如何设计控制器,或策略,将工厂或环境的观察状态映射到最佳执行器命令,即动作。当我们设计一个控制器时,我们基本上是在做一次性的策略更新。我们设计最优控制器的方法之一就是最小化代价函数,就像LQR一样,代价就是奖励的负数,所以通过最大化奖励,我们解决的问题和最小化代价是一样的。
不同之处在于,在强化学习中,计算机试图随着时间的推移学习最佳行为,而不是让设计师明确地解决它。这就像自适应控制器中的调整机制,在每个采样时间调整参数。通过这种方式,我们可以设计一个控制器,它是一个策略,而不需要知道系统本身的任何信息。不需要解决任何传统的控制问题,我们只是让计算机通过一个过程自己学习正确的参数,你可以把这个过程想象成奇妙的试错。
现在,即使学习算法为我们做了大部分工作,我们也不能完全无知地进入这个过程。在我们开始之前,我们必须知道几件事,首先是我们需要了解我们试图控制的系统,并确定是用传统的控制技术还是用强化学习更好地解决问题。如果我们选择了学习的道路,那么我们需要建立政策,使其有足够的参数,并在正确的结构中,以便能够成功地进行调整。如果我们希望控制一个多维系统,但只给它一个参数,这对我们没有任何好处。
我们还需要知道成功的结果是什么,并奖励控制者的出色表现。这需要创建一个奖励函数,这样学习算法就能知道它什么时候变得更好,并最终确定你真正想要的结果。第三,我们需要应用一种有效的算法,着眼于奖励和系统状态,并知道如何调整参数,以便过程在任何合理的时间内收敛。
这也是我们为勘探和开发以及未来回报的贴现设定参数的地方。在接下来的几个视频中,我们将通过更详细地查看强化学习的工作流程来扩展所有这些内容。我们会研究策略的结构,并介绍神经网络,我们会讨论如何制定适当的奖励函数影响最终结果,我们会对一些有趣的学习算法进行非常全面的概述。
所以如果你不想错过下一期Tech Talk视频,不要忘记订阅这个频道。此外,如果你想看看我的通道控制系统讲座,我也涵盖了更多的控制理论主题。感谢收看,我们下期见。
相关产品下载188bet金宝搏
了解更多
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。