OpenAI 元学习与自我对弈: Ilya Sutskever 超级前瞻的MIT讲座2018
文:城主
前言
熟悉OpenAI发展史的同学都知道,在2018年大举进军生成式AI(GPT-1诞生于2018年)之前,OpenAI花了很大的精力去做强化学习和游戏的AI自我对弈, 这在另外一位大神Andrej Karpathy的多次谈话里都提到。
今天分享的是一个有承前启后意义的讲座,OpenAI首席科学家Ilya在2018年2月在MIT所做:“OpenAI元学习和自我对弈”。讲座总结了OpenAI在这个领域所做出的结果,在这之后,OpenAI就转而投入到生成式AI的大道了。
如果细读这个讲座内容,读者会惊讶的发现,当年OpenAI在强化学习/自我对弈方面所做的事情,很多都为后面生成式AI的进展做了技术铺垫,比如,这里居然看到了RLHF “Learn from Human Feedback”! 再比如,这里居然大量使用了最近因为Qstar神秘模型而大火的Q-learning技术;这讲座还大量提到了现在最流行的“智能体”概念。。。
而在最后的问答环节里,更是有读者询问“目前生成语言模型的状况非常糟糕。您认为生成语言模型最有成效的研究方向是什么?”
Ilya高瞻远瞩的回答:
“我想说的是,仅仅训练更大、更深的语言模型就会取得令人惊讶的效果,扩大规模。”
神一般的判断。
对于关心OpenAI发展轨迹的同学,这是一个特别好的补齐OpenAI早期研究路线和思考体系拼图的一次讲座,非常推荐!
惯例有B站传送门:【Ilya Sutskever MIT讲座2018 OpenAI 元学习与自我对弈【中英】-哔哩哔哩】
https://b23.tv/ECfFw9h
=以下是根据讲座重写汇总的天空之城文字版=
今天,我们非常荣幸地邀请到了OpenAI的联合创始人兼研究总监伊利亚·苏茨克维。伊利亚的职业生涯始于与杰弗里·辛顿一同在多伦多的机器学习小组工作,随后他在斯坦福大学与吴恩达共同创建了DNN Research。在Google Brain担任研究科学家三年后,他参与创立了OpenAI。
虽然引用次数并非衡量一切的标准,但它们确实能够反映一个人的学术影响力。伊利亚过去五年的研究成果已经被引用超过46,000次,他一直是深度学习和人工智能领域中一些最重大突破性思想的关键创新者和推动者。非常欢迎伊利亚的加入。
感谢您的介绍,Lex。也感谢大家参加我的演讲。今天,我将向大家介绍我们在OpenAI过去一年在元学习和自我对战方面的一些研究成果。在我详细阐述这些工作的技术细节之前,我想先花些时间讨论一下深度学习的原理,以及为什么它能够起效。事实上,深度学习之所以有效,并不是显而易见的。
有一个事实,也是一个可以证明的数学定理,那就是如果你能找到一个对你的数据效果很好的最短程序,那么你就能获得尽可能最好的泛化效果。稍作修改,这个观点可以被转化为一个精确的定理。在直观层面上,这是容易理解的。如果你能找到一个生成特定数据的更短程序,那么你实际上已经将所有可想象的规律提取到了你的程序中,从而可以使用该程序做出最佳预测。如果你的数据如此复杂,以至于无法被简化为一个更短的程序,那么这意味着你的数据是完全随机的,无法从中提取任何规律。
然而,这背后的数学理论并不广为人知,而且这些陈述的证明实际上并不复杂。但有些许令人失望的是,至少以目前的工具和理解来看,寻找最佳短程序来解释、生成或解决你的问题是不可能的,因为这个问题在计算上是非常困难的。程序的空间是非常庞大且复杂的,程序的微小变化可能导致行为的巨大变化,这是不可避免的。例如,你改变了一个循环的内部,自然会得到完全不同的结果。因此,在如此庞大的程序空间中进行搜索似乎是完全不可能的。
那么,如果我们放弃寻找短程序,转而寻找小回路会怎样呢?幸运的是,事实证明,当涉及到小回路时,我们可以通过使用反向传播来找到解决问题的最佳小回路。这是人工智能领域的一个神奇事实,其他所有的研究都是基于这一点。实际上,当你对一个回路施加限制,并使用数据来迭代地通过反向传播微调神经网络的权重,直到其预测满足数据要求时,你就找到了解决计算问题的方法。
这是回路搜索的过程。我们知道并不总是能解决这个问题,但有时你可以,尤其是当我们拥有实用的数据集时。虽然设计一个人工数据集很容易,但你可能找不到最佳的神经网络,但在实践中,这似乎并不是问题。在许多情况下,你可以将训练神经网络视为求解一系列方程,例如f(xi, theta) = yi。你有你的参数,它们代表了你所有的自由度。然后,你可以使用梯度下降将这些方程中的信息推入参数中,以满足所有这些方程。
神经网络假设有50层,基本上是一台并行计算机,给定50个时间步来运行。你可以用一台非常强大的大规模并行计算机的50个时间步来完成许多任务。例如,人们可能不知道,你可以使用一个只有两个隐藏层的中等大小的神经网络来学习排序,对n位数字进行排序,这是相当不错的成就。这并不是显而易见的,特别是因为我们被告知排序需要使用神经网络执行log n个并行步骤,而你只需要两个并行步骤就可以成功排序。所以,有一些不太明显的事情正在发生。现在,这些是阈值神经元的并行步骤,因此它们完成了更多的工作。这就是谜底的答案。但如果你有50个这样的层,你就可以在神经网络内部完成相当多的逻辑和推理。这就是它起作用的原因。给定数据,我们能够找到最好的神经网络。因为神经网络很深,因为它可以在其层内运行计算,最好的神经网络值得寻找。因为这确实是你所需要的。你需要一个模型类,这是值得优化的。但它也需要是可优化的。深度神经网络满足这两个条件。这就是一切正常运作的原因。这是其他一切的基础。
现在,我想谈谈强化学习。强化学习是一个框架,用于评估代理在复杂的随机环境中实现目标的能力。你有一个代理插入环境中,如图所示。对于任何给定的代理,你只需要多次运行它,并计算其平均奖励。强化学习框架的有趣之处在于,它存在有趣且有用的强化学习算法。这个框架已经存在了很长时间,一旦我们意识到好的算法是存在的,事情就变得有趣了。这些算法并不完美,但它们足以完成有趣的任务。你所面临的数学问题是需要最大化预期回报的地方。
强化学习框架还不完全完善的一个重要方面是,它假设奖励是由环境给出的。你看这张图片,代理发送一个动作,而环境则将观察结果和奖励一起返回。这就是环境返回的信息。然而,在现实世界中,情况并非如此,因为我们有一个框架来从观察中找出奖励是什么。我们奖励自己。我们没有被告知。环境并没有说,嘿,这里有一些负面奖励。这是我们对感官的诠释,让我们可以确定奖励是什么。生命中只有一种真正的回报,那就是存在或不存在,其他一切都是其必然结果。
那么,我们的代理应该是什么?你已经知道答案了。它应该是一个神经网络,因为每当你想做某事时,答案将是一个神经网络,并且你希望代理将观察结果映射到行动。因此,你可以使用神经网络对其进行参数化,然后应用学习算法。
所以,我想向你解释一下强化学习是如何运作的。这就是无模型强化学习。强化学习实际上已经在各地得到了实际应用。但它也很深刻,非常坚固。这个过程非常简单。它的效率并不特别高。因此,其工作原理如下:这实际上可以用一句话来描述正在发生的事情。简单来说,就是尝试一些新事物。为你的行动引入随机性,并将结果与你的预期进行比较。如果结果让你感到惊讶,如果你发现结果超出了你的预期,那么就调整你的参数,以便在将来采取这些行动时能够得到改进。就是这么简单。这就是强化学习的核心思想。尝试一下,看看你是否喜欢它,如果你喜欢,那么以后就多做一些。字面上就是这个意思。这是核心概念。
事实证明,将这个过程用数学形式化并不困难,但这确实是正在发生的事情。如果你在神经网络中,在常规神经网络中,你可能会问,目标是什么?你运行神经网络,你就会得到一个答案。你将这个答案与所需的答案进行比较。无论两者之间有什么差异,你都可以将其反馈回去以更改神经网络。这就是监督学习。在强化学习中,你运行一个神经网络,你为你的行动添加了一些随机性,然后如果你喜欢这个结果,实际上,你的随机性就变成了期望的目标。就是这样了。这很简单。现在,数学已经存在。在不解释这些方程的含义的情况下,重点并不是要真正推导它们,而只是证明它们存在。
强化学习算法有两大类。其中之一是策略梯度,你所做的基本上就是使用这个表达式,期望的总和,奖励的总和,你只需要计算导数。你展开项,你运行,你做一些代数,你就得到了一个导数。奇迹般的是,导数的形式正好是我告诉你的,那就是尝试一些行动,如果你喜欢它们,就增加这些行动的对数概率。这实际上是从数学上得出的。直观的解释与你在等式中得到的内容完美对应,即使你不熟悉它,你也必须相信我。这就是顶部的等式。
还有一类不同的强化学习算法,它稍微复杂一些,解释起来有点困难。它被称为基于Q学习的算法。它们的稳定性稍差一些,样本效率更高一些,它具有这样的特性:它不仅可以从参与者生成的数据中学习,而且还可以从任何其他数据中学习。因此,它具有不同的稳健性特征,这有点重要,但这只是一个技术问题。是的,这就是策略内和策略外的区别,但这有点技术性,所以如果你发现这很难理解,请不要担心。如果你已经知道了,那么你就已经知道了。
那么现在强化学习的潜力是什么?承诺是什么?它到底是什么,我们为什么要对此感到兴奋?现在,有两个原因。今天的强化学习算法已经非常有用和有趣,特别是如果你对你的世界有一个很好的模拟,你可以训练智能体做很多有趣的事情。但真正令人兴奋的是,如果你能够构建一个超级惊人的样本高效强化学习算法。我们只给它少量的数据,算法只是对它进行处理并从中提取每一点熵,以便以尽可能最快的方式学习。现在,我们的算法的数据效率并不是特别高。他们的数据效率低下。但随着我们的领域不断进步,这将会改变。
接下来,我想深入探讨元学习的主题。元学习的目标是一个很好的主意,这并没有真正起作用,但它确实有效。而且它也确实很有前途。这是另一个有前途的想法。那么梦想是什么?我们有一些学习算法。也许我们可以使用这些学习算法来学会学习。如果我们能学会学习就好了。那么你会怎么做呢?你会采用一个系统,你不是在一项任务上训练它,而是在多项任务上训练它,你问它是否学会快速解决这些任务。这实际上可能就足够了。
所以它看起来是这样的。这是大多数传统元学习的工作原理和外观。你有一个模型,它是一个大的神经网络。但你所做的是对待每一个,你有训练任务,而不是训练案例。你拥有的不是测试用例,而是测试任务。所以你的输入可能是,它不仅仅是你当前的测试用例,而是有关测试任务的所有信息加上测试用例,你将尝试输出该测试用例的预测或操作。所以基本上你会说,是的,我会给你10个例子作为你模型输入的一部分,弄清楚如何充分利用它们。所以这是一个非常简单的想法。你将神经网络转变为学习算法,将训练任务转化为训练案例。所以训练任务等于训练案例。这就是元学习。
因此出现了一些我认为非常有趣的成功案例。元学习的成功案例之一是学习快速识别字符。麻省理工学院的Lake等人制作了一个数据集。这是一个数据集。我们有大量不同的手写字符。人们已经能够为此训练极其强大的元学习系统。元学习的另一个非常成功的例子是神经架构搜索,由来自谷歌的Zoph和Le提出,他们发现了一种神经架构可以很好地解决一个问题,一个小问题,然后它也能成功解决大问题。所以这是一种少量比特元学习。这就像当你学习架构,甚至学习一个程序、一个小程序或学习算法时,你可以将其应用于新任务。所以这是进行元学习的另一种方式。
无论如何,但重点是正在发生的事情大多数情况下元学习中到底发生了什么就是你把一个训练任务变成一个训练案例并假装这是完全正常的深度学习。就是这样。这就是元学习的全部。其他一切都只是小细节。接下来,我想深入。
现在我已经完成了介绍部分,我想开始讨论不同的工作来自OpenAI的不同人,我想首先谈谈事后经验回放。安德烈等人付出了巨大的努力开发强化学习的学习算法,这不仅仅解决了一项任务,但它解决了许多任务,并且学会利用其经验以更有效的方式。
我想讨论强化学习中的一个问题。我想,这实际上是一系列相互关联的问题。但你需要学会做的一件非常重要的事情就是探索。你从一个环境开始,你不知道该怎么办。你做什么工作?所以必须发生的一件非常重要的事情就是你必须时不时地获得奖励。如果你尝试某件事但没有得到回报,那你怎样才能学习呢?所以我说这就是问题的症结所在。你怎么学习?与此相关的是,有没有什么方法可以让我们受益匪浅?来自经验,来自你的尝试,来自你的失败?如果你尝试实现一个目标但失败了,你还能从中吸取教训吗?
你告诉你,不要要求你的算法实现单一目标,你想要学习一项可以实现一系列目标的策略。例如,不是达到一种状态,你想了解一项适用于每个状态的策略,你的系统的。现在,这意味着什么?每当你做某事时,你就会达到某种状态。假设我表达了一个目标,即我希望达成状态A。我付出了极大的努力,但最终只能达到状态B。从这个结果来看,我可以得出结论,这是一种令人失望的结果。我几乎没有学到任何东西,我仍然不清楚如何实现状态A。然而,我也可以换个角度思考,暂时停下来,我实际上已经达到了一个非常良好的状态,即状态B。我可以从中学习如何实现状态B,而这正是我原本试图达到状态A的过程中意外获得的。答案是肯定的,这是有效的。
我想强调的是,这是一个案例,它包含了一个微妙之处,对于那些非常了解策略内和策略外学习差异的人来说,这可能是一个有趣的点。当你尝试实现状态A时,你正在进行策略内学习。但是,当你实际上达到状态B时,你正在进行策略外学习,因为如果你真的在尝试达到状态B,你会采取不同的行动。这就是为什么选择能够支持策略外学习的算法非常重要。这只是一个小的技术细节。关键的想法是,你通过让问题变得更简单,表面上看似更加困难,通过训练一个系统去渴望并学习达到每一个状态,实现每一个目标,从而在整体上掌握其环境,你就建立了一个能够不断学习的系统。它能够从成功和失败中学习,因为如果它尝试做一件事却完成了另一件事,那么它就获得了如何实现那另一件事的训练数据。
我想展示一个视频,向您演示这个概念在实践中是如何运作的。强化学习系统面临的挑战之一是需要塑造奖励。这意味着什么呢?当系统刚开始学习,知之甚少时,它可能无法实现你设定的目标。因此,设计一个逐渐递增的奖励函数是非常重要的,使其平滑且连续,这样即使系统的表现不佳,它也能实现目标。如果你给系统一个非常稀疏的奖励,只有在达到最终状态时才给予奖励,那么传统的强化学习算法就很难解决问题,因为它几乎永远不会得到奖励,从而无法学习。没有奖励就意味着没有学习。但在这里,因为你可以从失败和成功中学习,这个问题就不复存在了。这是非常好的。我认为,我们应该再看一下视频,看看它是如何自信且充满活力地将绿色的小冰球移动到目标位置的,这真是太棒了。
现在,让我们跳过这个部分,如果你在物理机器人上实施这个策略也是可行的,但我们可以跳过这个。
我认为重点是事后经验重播算法的方向是正确的,因为你想要利用所有的数据,而不仅仅是一小部分。现在,一个巨大的问题是,你如何获得高级状态?高级状态是从哪里来的?因为在我迄今为止向你们展示的例子中,系统被要求达到低级状态。所以,我认为对于这些方法来说,表示学习和无监督学习将变得非常重要,它们能够发现正确的状态,确定值得实现的目标状态空间。
现在,我想要查看一些真实的元学习结果,并告诉你一个非常简单的方法,即如何通过元学习从模拟转移到物理机器人。这是Peng等人在2017年完成的一个非常出色的实习项目。所以,我认为我们可以同意,在机器人领域,如果你能够在模拟器中训练你的策略,然后以某种方式将这些知识转移到物理机器人上,那将是非常理想的。现在,我们可以构建没有问题的模拟器,但它们永远无法完美地匹配现实世界,除非你愿意接受一个极其缓慢的模拟器。原因是,事实证明模拟接触是非常困难的,我在某个地方听说,如果我错了,请纠正我,模拟摩擦力是NP完全问题。我不确定这是否准确,但就是这样的情况。所以你的模拟器和现实世界总是会有所不同。会有一些相似之处,但仅此而已。
我们该如何解决这个问题呢?我想向您展示一个简单的想法。假设有一件事情会很好,那就是如果你能学习一项策略,它能够迅速适应现实世界。那么,如果你想学习一个能够快速适应的策略,我们需要确保它在训练期间有机会适应。那么我们该怎么办?我们不仅仅在一个模拟器中解决问题,而是为模拟器添加了大量的变异性。我们说,我们将随机化摩擦力,我们将随机化质量,我猜还有不同物体的长度和尺寸。所以你尝试以多种不同的方式随机化物理模拟器。然后重要的是,你不会告诉策略是如何随机化的。那么接下来它会做什么呢?你将你的策略放入一个环境中,它会发现这真的很困难。我不知道质量是多少,也不知道摩擦力是多少。当我从环境中得到反馈时,我需要尝试一些事情并找出摩擦力是什么。所以你学会了让策略具有一定程度的适应性。这确实是有效的。
我只是想给你看一下。当你在模拟器中训练策略并将其部署到物理机器人上时,会发生什么。这里的目标是将冰球推向红点的方向。你会发现它会挣扎。它陷入困境的原因是模拟器和真正的物理机器人之间的系统差异。因此,即使是基本的运动对于策略来说也是困难的,因为假设被严重违反了。因此,如果你按照我所讨论的方式进行训练,我们就会训练一个循环神经网络策略,它学会快速推断模拟器的属性,以完成任务。然后你可以给它真实的东西,真正的物理环境,它会做得更好。现在,这不是一个完美的技术,但它绝对是非常有前途的。每当你能够充分随机化模拟器时,它都是有希望的。因此,很高兴看到该策略的闭环性质。你可以看到它会推动冰球,并且会非常非常轻柔地纠正冰球的方向,使其到达球门。是的,你看到了吗?这太酷了。所以这是元学习的一个很酷的应用。
我想讨论元学习的另一个应用,即学习动作的层次结构。这是Franz等人完成的工作。事实上,当时完成这项工作的实习生Kevin Franz还在读高中。他写了这篇论文。所以,有一件事情会很好,那就是强化学习是否是分层的。如果不是简单地采取微小的动作,而是有一些可以部署的小子程序。也许子程序这个术语有点过时了,但如果你知道哪些动作原语是值得采用的,那将是非常有帮助的。现在,没有人能够证明分层强化学习确实带来了真正的增值。到目前为止,所有真正酷的结果、所有真正令人信服的强化学习结果都没有使用它。那是因为我们还没有完全弄清楚强化学习、分层强化学习的正确方法是什么。
我只想向您展示一种非常简单的方法,在这种方法中,我们使用元学习来学习动作的层次结构。所以这就是你要做的。在这项具体的工作中,你有一定数量的低级原语。假设你有10个,并且你有任务分配。你的目标是学习低级原语,这样当它们在一些强化学习算法的非常简短的运行中使用时,你会取得尽可能多的进步。所以这个想法是你想要获得最大程度的进步,你想要学习能够带来最大进步的策略,抱歉,你想要学习能够带来最大程度进步的原语。在学习过程中的应用中,我们面对的是一个元学习的场景,因为你需要分配不同的任务。这里有一个小型迷宫的例子。你面对的是一个迷宫分布。在这种情况下,小虫子学会了三种不同的策略,使其能够朝着一个固定的方向移动。得益于这种层次化结构,你可以迅速地解决问题。但这只有在层次结构设置得当时才成立。因此,分层强化学习是一个持续进行中的研究领域。这项研究是一个有趣的证明点,展示了分层强化学习的概念以及它在有效时的样子。
现在,我想通过一张幻灯片来讨论高容量元学习的局限性。具体来说,训练任务的分布必须与测试任务的分布相同。我认为这是一个真正的限制,因为实际上你想要学习的新任务在某些方面将与你迄今为止所见的任务完全不同。例如,当你上学时,你会学到很多有用的东西。但当你开始工作时,你会发现只有一小部分所学知识是有用的,你需要从头开始学习很多东西。因此,元学习面临的问题在于它实际上假设训练任务的分布必须与测试任务的分布相同。这是一个限制。我相信,随着我们开发出更好的算法,使得在测试任务超出训练任务分布时仍能保持稳健,元学习的效果将会更好。
现在,我想谈谈自我对弈。我认为自我对弈是一个非常酷的话题,现在才开始引起人们的关注。我想首先回顾一下一项非常古老的研究,名为TD Gammon。这项研究可以追溯到1992年,现在已经有26年的历史了。这是由Jerry Tesauro完成的。这项工作非常不可思议,因为它在今天仍然具有重要的意义。他们所做的基本上是,让两个神经网络相互对弈,让它们玩双陆棋,并接受Q-learning训练。这是一种非常现代的方法。你可能会以为这是2017年的论文,但当你看到图表显示只有10个、20个、40个和80个隐藏单元的不同颜色时,你会发现最大的神经网络效果最好。在某些方面,并没有太多的变化,这就是证据。事实上,他们能够在双陆棋中击败世界冠军,并发现了最优秀的人类双陆棋玩家没有注意到的新策略,他们确定TDGammon所涵盖的策略实际上更好。这就是纯粹的自我对弈Q-learning,它一直处于休眠状态,直到与DeepMind的Atari合作出现DQN。
其他自我对弈的例子包括AlphaGo Zero,它能够在不使用任何外部数据的情况下学会击败围棋世界冠军。这种思路的另一个成果是OpenAI的Dota 2机器人,它能够在1v1版本的游戏中击败世界冠军。
所以我想花一点时间谈谈自我对弈的魅力以及为什么我认为这令人兴奋。当我们尝试构建真正的智能系统时,我们必须面对的一个重要问题是任务是什么?我们究竟在教系统做什么?自我对弈的一个非常有吸引力的特点是主体创造了环境。通过代理在环境中的作用,环境对于其他智能体来说变得更加困难。这里有一个鬣蜥和试图吃掉它的蛇的互动的例子,这次蛇没有成功。我们可以看到接下来会发生什么。鬣蜥正在尽力而为。实际上,蛇和鬣蜥之间的军备竞赛激励了它们的发展,可能没有界限。这就是在生物进化中实际发生的情况。
Carl Sims在1994年在这个方向上做了有趣的工作。YouTube上有一个由Carl Sims制作的非常酷的视频。你应该去看看,这确实展示了他所做的所有工作。在这里,代理之间存在一些竞争,你可以进化行为和形态,当智能体试图获得绿色立方体的所有权时。所以你可以看到代理们互相创造了挑战。这就是他们需要发展的原因。
所以我们做了一件事,这是OpenAI的Dan Salerno的工作,我们问自己,我们能否在自我对弈中展示一些不寻常的结果,让我们真正相信其中存在某些东西?我们在这里所做的是创建一个小环境,并有两个人形角色。他们的目标只是将对方推出擂台。他们对摔跤一无所知,他们对站立或相互平衡一无所知,他们对重心一无所知。他们只知道如果你做得不好,那么你的竞争对手就会做得更好。
自我对弈真正有吸引力的一点是,你总是有一个与你实力相当的对手。为了学习,你需要有时赢,有时输。你不可能总是赢。有时你必须失败,有时你必须成功。让我们看看这里会发生什么。是的,绿色人形能够挡住球。在一个平衡良好的自我对弈环境中,竞争始终是公平的。不管你的水平如何,你面临的竞争对你来说都是恰到好处的挑战。
哦,还有一件事。这个视频展示了迁移学习。你带着小摔跤人形,然后你把它的伙伴带走了。然后你开始对它施加很大的随机力,看看它是否能保持平衡。答案是,是的,它可以,因为它经过了针对推动它的对手的训练。这就是为什么,即使它不明白压力施加在哪里,它仍然能够自我平衡。所以这是自我对弈环境的一个潜在的有吸引力的特征,你可以学习一系列广泛的技能,虽然技能的内容有点难以控制。
因此,这项研究最大的悬而未决的问题是,如何在自我对弈环境中学习代理,以便他们无论做什么,但随后他们能够解决一系列对我们有用的任务,这些任务是外部明确指定的?
我还想强调一下我们在Dota机器人中观察到的自我对弈环境的一个特点。也就是说,我们看到机器人的能力快速提高。因此,在大约五个月的时间里,我们已经看到机器人从完全随机地玩游戏变成了现实,一路走向世界冠军。原因是一旦你有了自我对弈的环境,如果你投入计算资源,你就可以将其转化为数据。自我对弈允许你将计算转化为数据。我认为我们会认为这是一件极其重要的事情,能够将计算本质上转化为数据泛化,仅仅是因为神经网络处理器的速度将在未来几年内显著提高。因此,神经网络循环将变得非常便宜,并且利用这些新发现的过量循环将变得非常重要。
现在,我还想谈谈自我对战方法的结局。关于人类大脑,我们知道的一件事是它的大小在过去两百万年里增长得非常快。我的理论是,这种现象发生的原因是因为我们的祖先已经达到了一个点,在这个点上,对你的生存最重要的东西是你在部落中的地位,而不是老虎和狮子。在处理那些具有高度智能的其他实体时,拥有一个稍大的大脑确实有其优势。我相信这正是我们所观察到的现象。至少有一篇科学论文支持了这一点。显然,社会性的灵长类动物和鸟类之间存在着一种趋同进化,尽管它们的行为多种多样,而且人类与鸟类在进化的时间线上早已分道扬镳,人类、灵长类动物和鸟类的大脑结构也大相径庭。因此,我认为,如果我们能够成功地沿着这条道路前进,我们应该能够创造出一个具有语言和心智理论的主体社会,拥有谈判、社交技巧、贸易、经济、政治和司法系统。所有这些都应该在一个多代理体环境中发生。同时,我们还会面临一致性问题,即如何确保我们所训练的智能体按照我们所期望的方式运作。
现在,我想做一个推测性的题外话,即我想提出一个观点。如果你认为代理人社会是一个合理的场所,那里可能会出现完全通用的智能,而且如果你接受我们在DotaBot方面的经验,我们已经见证了能力的快速提升,那么一旦所有细节都得到妥善处理,我们就可以继续这种经验。如果你假设这两个条件成立,那么我们应该看到我们的代理人在代理社会中生活时能力的迅速提升。
现在我们已经讨论了一个有潜力提高能力并教授代理人社交技能和语言的有趣方法,以及许多真实存在于人类社会中的东西,我们想要探讨的是如何向代理人传达目标。向智能体传达目标的问题是一个技术问题,但这一点非常重要,因为我们所训练的智能体最终可能会比我们更加聪明。这是Paul Christiano等人以及OpenAI安全团队的工作。
因此,我将向您展示这段视频,它基本上解释了整个过程是如何运作的。你会看到一些你希望观察到的行为,作为人类,你可以看到成对的行为,并通过点击来选择看起来更好的那个。经过极少量的点击,你就可以让这个模拟的小腿做后空翻。在这个例子中,为了获得这种特定的行为,人类注释者需要点击大约500次。
这个方法的工作原理是,你收集所有的点击,这些点击表明了一种行为比另一种行为更好。你需要拟合一个奖励函数来满足这些点击,然后通过强化学习来优化这个奖励函数。这种方法确实有效。因此,这需要大约500次信息输入。我们还能够使用数千次信息输入来训练大量的Atari游戏。
在所有这些情况下,都有人类注释者或评判,就像之前的幻灯片所示,他们查看成对的轨迹,然后点击他们认为更好的轨迹。这是一个不寻常目标的例子,在一场赛车游戏中,目标是让代理训练白色汽车紧跟在橙色汽车后面。使用这种方法传达目标非常简单。
最后,对齐是一个技术问题,它必须得到解决。但当然,确定我们希望人工智能系统具有的正确目标将是一个非常具有挑战性的政治问题。在此,我非常感谢您的关注,并想说今晚8点45分将在Cambridge Brewing Company举行欢乐时光,如果你想更多地讨论人工智能和其他话题,请加入我们。
=QnA环节=
关于反向传播,虽然神经网络是受生物启发的,但反向传播并不像是大脑中发生的事情,因为大脑中的信号沿着轴突单向传播,而反向传播则需要将误差沿着神经途径传回。这看起来大脑正在做一些与我们非常成功的算法有些不同的事情。一旦我们弄清楚大脑在做什么,算法是否会得到改进?还是大脑确实在发送信号,尽管它没有明显的方法来做到这一点?
这是一个很好的问题。首先,我要说的是,真正的答案是我不知道,但我有我的看法。
所以,我要说两件事。首先,如果我们同意反向传播解决了回路搜索问题,这个问题看起来像是一个极其根本的问题。出于这个原因,我认为它不太可能消失。你也说得对,大脑显然不会进行反向传播,尽管已经有多种关于它如何进行反向传播的建议。例如,Tim Lillicrap和其他人的研究已经证明,如果你学习一组不同的连接,它们可以用于反向传递,并且可以导致成功的学习。现在,这并没有被从业者真正推向极限,因为他们会说,我有tf.gradients,我不需要担心这个。但你说得对,这是一个重要的问题,而且,有两种可能的情况。所以我个人的观点是,反向传播将一直伴随我们直到最后,在我们了解大脑如何运作之前,我们实际上将建立完全人类水平和超越的系统。这就是我所相信的,但是,当然,这是必须承认的差异。
你认为Dota机器人与人类的对决公平吗?考虑到系统的限制?
所以我想说,电脑在这样的游戏中最大的优势之一就是它们显然有更好的反应时间,尽管特别是在Dota中,顶级玩家的每秒点击次数相当少,这与星际争霸不同。星际争霸是一个机械性非常重的游戏,由于单位数量较多,所以顶级玩家他们只是一直点击。而在Dota中,每个玩家只控制一个英雄,这大大减少了他们需要采取的行动总数。现在,精度仍然很重要。我认为我们会发现,但我认为真正会发生的是,我们会发现计算机在任何领域都具有优势,或者更确切地说,每个领域。目前还没有。
你是否认为智能体的紧急行为实际上是有指导的,因为约束已经就位,所以它是被迫去发现这些,或者你认为这实际上是某种东西非常新奇,哇,它实际上自己发现了这些。你实际上并没有添加限制它的偏见。
所以毫无疑问,我们发现了新的策略,我可以分享一个轶事,我们的测试人员,我们有一个专业人士可以测试机器人,他和它对抗了很长时间,机器人会针对玩家(人类玩家)做各种各样的事情,这些事情都很有效。然后在某个时候,该职业选手决定与更好的职业选手比赛,他决定模仿机器人正在做的事情之一,通过模仿,他能够击败更优秀的职业选手。所以我认为他发现的策略是真实的,这意味着,存在着非常真实的转移,我想说,我认为这意味着,因为机器人发现的策略可以帮助人类,所以这意味着基本的游戏玩法是密切相关的。
长期以来,我了解到强化学习的目的是确定一种策略,即选择一个行动以最大化预期奖励,正如你之前所述。你是否希望考虑可能奖励的标准差?这个想法还合理吗?
是的,我相信这是肯定的。我认为这确实取决于具体的应用场景。追求最大化预期奖励的一个原因是,设计算法时更为简便。因此,你可以写下一个方程或公式,进行一些推导,最终得到一个看起来非常优雅的算法。现在,我确实认为,在某些应用中,你永远不希望犯错,同时你也希望考虑标准偏差。但在实际操作中,似乎只考虑预期奖励就能覆盖大多数你想要应用这种方法的情况。谢谢你。
在上周的讨论中,我们谈到了动机,这与强化学习有很大的关联。有些理论认为,我们的动机实际上与与他人的联系和合作有关。我很好奇,我知道让计算机玩竞技游戏非常流行,但是让代理进行自我协作,比如在协作游戏中,这有什么用处呢?
是的,我认为这是一个非常好的问题。我们可以从合作的演变中获得一些启示。我认为我们最终会选择合作,因为合作比不合作对我们更有利。所以我认为,如果你有一个足够开放的游戏,合作将成为一种胜利策略。因此,我认为无论我们是否愿意,我们都将看到合作的出现。
你提到了模拟摩擦的复杂性。我想知道你是否认为存在与人工智能相关的开放性复杂性理论问题,或者这只是寻找人类行为良好近似的问题,即人类倾向于解决的问题类型。
是的,所以在复杂性理论方面,在非常基础的层面上,我们知道无论我们运行什么算法,它都会在某些硬件上非常有效地运行。这为我们正在解决的问题的真实复杂性设定了一个相当严格的上限。从定义上讲,我们正在解决的问题在复杂性理论上并不是特别困难。现在,也有很多问题出现,尽管我们所做的事情在复杂性理论上并不难,而且实际上,人类通常无法解决NP完全问题,但是,从神经网络优化本身开始,我们对算法提出的许多优化问题在一般情况下都是棘手的。很容易为具有少量神经元的神经网络创建一系列数据集,使得找到全局最优解是NP完全问题。那么,我们如何避免这个问题呢?好吧,无论如何我们都只是尝试使用梯度下降,不知怎的它就起作用了。但是,毫无疑问,我们没有解决真正困难的问题。所以,我希望这能回答你的问题。
似乎通向通用人工智能(AGI)的道路上一个重要的子问题是理解语言,而目前生成语言模型的状况非常糟糕。您认为生成语言模型最有成效的研究方向是什么?
首先,我要说的是,你说的完全正确,我们在语言方面的情况还远未达到理想状态,尽管已经取得了一些进展。即使没有任何特定的创新,仅仅是在更大的数据集上扩展现有模型也会取得惊人的效果。甚至不是更大的数据集,而是更大、更深的模型。例如,如果你训练了一个具有一千层的语言模型,并且它是同一类型的层,我认为这将是一个非常惊人的语言模型。我们还没有达到那个阶段,但我认为这种情况很快就会改变。现在,我也同意你的观点,即我们目前对深度学习的理解缺乏一些基本的东西,这使我们无法真正解决我们想要的问题。所以,我认为其中一个问题,缺少的东西之一是,或者看起来显然是错误的,事实是我们训练一个模型,然后停止训练,我们将其冻结。尽管真正的魔法发生在训练过程中。魔法在于,如果你仔细想想,训练过程是整个故事的真正通用部分,因为你的TensorFlow代码并不关心要优化哪个数据集。它只是说,给我数据集就行,我不在乎要解决哪个问题,我会解决所有问题。所以,能够做到这一点感觉真的很特别,我认为我们在测试时没有利用它。很难推测我们不知道答案的事情,但我想说的是,仅仅训练更大、更深的语言模型就会取得令人惊讶的效果,扩大规模。但我认为,在测试时进行训练和在测试时进行推理之类的事情将是性能的另一个重要提升。
谢谢你的演讲。因此,现在解决强化学习问题的另一种有趣方法可能是采用进化策略。尽管它们有自己的局限性,我想知道你在OpenAI是否正在从事相关的工作,以及你对它们的总体看法是什么?
就目前而言,我认为像进化策略这样的方法对于强化学习来说并不是特别好。我认为传统的强化学习算法,尤其是大规模策略的算法,更为有效。但如果你想进化出一个小而紧凑的实体,比如一段代码,我认为这将是一个值得认真考虑的方向。但是,开发一段有用的代码是一个很酷的想法,它还没有实现,所以在我们达到那个目标之前还有很多工作要做。
非常感谢你的到来。我的问题是,你提到确定正确的目标是一个政治问题。所以我想知道你是否可以详细说明一下,然后你认为我们可以采取什么方法来实现这一目标?
好吧,我真的不能过多评论,因为现在我们在OpenAI有一些人全职思考这个问题。我没有足够强烈的意见来发表任何明确的声明。我所能说的是,在非常高的层面上,如果你进入未来,无论何时,或者,每当你建造一台可以比人类做得更好的机器时,这将会发生,因为大脑是物理的,它对社会的影响将是巨大且压倒性的。即使你非常努力,这也是很难想象的。我认为这意味着人们会非常关心,这就是我所暗示的,事实上这将是许多人会强烈关心的事情。而且,随着自动驾驶汽车和更多自动化的影响逐渐增加,我认为我们会看到更多的人关心。
我们是否需要拥有一个非常准确的物理世界模型,然后对其进行模拟,以便让这些代理最终能够进入现实世界并执行一些接近人类水平的智能任务?
这是一个很好的问题。所以我认为如果是这样的话,我们就有麻烦了。我非常确定这是可以避免的。所以具体来说,真正的答案必须是,看,你学会解决问题,你学会谈判,你学会坚持,你在模拟中学到很多不同的有用的人生教训。是的,你也学了一些物理。但随后你就脱离了现实世界,你必须在某种程度上重新开始,因为你的许多根深蒂固的假设将是错误的。这是目标之一,这就是我如此关心永不停止训练的原因之一。你已经积累了知识,现在你进入了一个违反某些假设的环境,你继续训练,尝试将新数据与旧数据联系起来。这是我们算法的一个重要要求,在一定程度上已经得到满足,但还需要更多地满足,这样你就可以利用你所获得的部分知识进入新的情况,继续学习。一个直观的例子是,你去学校,你学到有用的东西,然后你就去工作。它并不完美,它不是完全一样的,但是你能够应用你在学校学到的东西,并在工作中继续学习和适应。对于你们这些学习了四年计算机科学的本科生来说,这段教育经历并不会让你们完全准备好掌握工作中所需了解的所有知识。它确实有助于你们的起步,但你们还需要学习许多新事物。这正是教育的本质。我认为这是学校应该做的事情。
你们在演讲的早期阶段提到的一点是,强化学习风格的一个局限性是缺乏自我组织能力。因此,你必须指导它何时做得好或做得不好。这在尝试教导老鼠穿越迷宫时,实际上也是神经科学领域的一个问题。你必须人为地指示它应该做什么。那么,既然我们在教学中已经面临这个问题,你认为未来的方向是什么?你知道,这不仅仅是关于学习,还有教学的问题。你认为这方面的研究进展如何?我们如何引入自我组织的概念?
我认为,无疑,一件非常重要的事情是能够通过观察其他代理来推断它们的目标和策略。这是一项基本技能,需要被学习并嵌入到代理中。比如,假设有两个代理,一个代理正在执行某项任务,另一个代理观察到这一行为并认为这非常酷,也希望能够做到同样的事情。然后它就会开始模仿。所以,我想说,这是在设定奖励机制时的一个非常重要的组成部分。你观察到他们的行为,从而推断出奖励。现在我们有一个调节器,上面标有:“你看到他们在做什么吗?现在去尝试做同样的事情。”所以,据我所知,这是人类与其他动物的一个重要区别,我们模仿他人行为的规模和范围。
你介意我追问一个问题吗?因此,这在竞争环境中如何运作是显而易见的,但在任意任务中又是如何呢?比如我在上数学课,看到有人用特定的方式解决问题,我会想:“哦,这是一个很好的策略。也许我应该尝试一下。”在非竞争环境中,这是如何运作的?
所以我认为,这将是一个与竞争环境相区分的问题,但它也必须以某种方式融入系统中,也许是通过进化。如果你有其他代理在执行任务,他们产生了你所观察到的数据,那么真正理解你所看到的数据的唯一方法是推断出代理的目标、策略以及他们的信念状态。这对于与他们沟通也是至关重要的。如果你想与某人成功沟通,你必须了解他们的目标以及他们的信念和知识状态。因此,我认为你会发现,理解其他智能体在做什么、推断他们的目标、模仿他们以及与他们成功沟通之间存在着联系。
好的,让我们为伊利亚和愉快的时光热烈鼓掌。谢谢。