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