ChatGPT工作原理:神经网络训练的实践与理论

2023-05-2219:59:49人工智能与大数据Comments779 views字数 5778阅读模式

在过去的十年里,在训练神经网络的艺术方面取得了许多进展。而且,是的,这基本上是一门艺术。有时,特别是在回顾中,人们至少可以看到正在做的事情有一丝 “科学解释” 的影子。但大多数情况下,事情都是通过试验和错误发现的,增加了一些想法和技巧,逐步建立了一个关于如何使用神经网络的重要传说。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

有几个关键部分。首先,对于一个特定的任务,应该使用什么架构的神经网络。然后,还有一个关键问题,即如何获得训练神经网络的数据。而且,人们越来越多地不是在处理从头开始训练一个网络的问题:相反,一个新的网络可以直接纳入另一个已经训练好的网络,或者至少可以使用该网络为自己产生更多的训练实例。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

人们可能认为,对于每一种特定的任务,人们都需要一个不同的神经网络结构。但人们发现,即使是对于明显不同的任务,相同的架构似乎也能发挥作用。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

在某种程度上,这让人想起了通用计算的想法(以及我的计算等价原则),但是,正如我将在后面讨论的那样,我认为这更多地反映了这样一个事实,即我们通常试图让神经网络做的任务是 “类似人类” 的,而神经网络可以捕获相当普遍的 “类似人类的过程”。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

在早期的神经网络中,人们倾向于认为应该 “让神经网络尽可能地少做”。例如,在将语音转换为文本时,人们认为应该首先分析语音的音频,将其分解为音素,等等。但人们发现,至少对于 “类似人类的任务” 来说,通常更好的做法是尝试在 “端到端问题” 上训练神经网络,让它自己 “发现” 必要的中间特征、编码等。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

还有一个想法是,我们应该在神经网络中引入复杂的单独组件,让它实际上 “明确地实现特定的算法想法”。但是,这又一次被证明是不值得的;相反,最好只是处理非常简单的组件,让它们 “自我组织”(尽管通常是以我们无法理解的方式)来实现(大概)那些算法想法的等价物。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

这并不是说没有与神经网络相关的 “结构化思想”。因此,例如,具有局部连接的二维神经元阵列似乎至少在处理图像的早期阶段非常有用。而拥有专注于 “回顾序列” 的连接模式似乎很有用 —— 我们将在后面看到 —— 在处理人类语言等事物时,例如在 ChatGPT 中。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

但神经网络的一个重要特点是,像一般的计算机一样,它们最终只是在处理数据。而目前的神经网络 —— 目前的神经网络训练方法 —— 是专门处理数字阵列的。但在处理过程中,这些数组可以被完全重新排列和重塑。举个例子,我们上面用来识别数字的网络从一个二维的 “图像” 阵列开始,迅速 “增厚” 到许多通道,但随后 “浓缩” 成一个一维阵列,最终将包含代表不同可能输出数字的元素:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

ChatGPT工作原理:神经网络训练的实践与理论文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

但是,好吧,如何判断一个特定的任务需要多大的神经网?这是一门艺术。在某种程度上,关键是要知道 “这个任务有多难”。但对于类似人类的任务来说,这通常是很难估计的。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

是的,可能有一种系统的方法可以通过计算机非常 “机械” 地完成任务。但很难知道是否存在人们认为的技巧或捷径,使人们至少在 “类似人类的水平” 上更容易地完成这项任务。可能需要列举一个巨大的游戏树来 “机械地” 玩某个游戏;但可能有一个更容易(“启发式”)的方法来实现 “人类水平的游戏”。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

当人们在处理微小的神经网络和简单的任务时,有时可以明确地看到 “从这里不能到达那里”。例如,这是人们在上一节的任务中用几个小的神经网络似乎能做到的最好的结果:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

ChatGPT工作原理:神经网络训练的实践与理论文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

而我们的情况是,如果网太小,它就不能再现我们想要的功能。但如果超过一定的规模,它就没有问题了 —— 至少如果一个人用足够长的时间和足够多的例子训练它。顺便说一下,这些图片说明了一个神经网络的传说:如果中间有一个 “挤压”,迫使所有东西都通过一个较小的中间神经元数量,那么我们往往可以用一个较小的网络。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

(值得一提的是,“无中间层” —— 或所谓的 “感知器” —— 网络只能学习本质上的线性函数 —— 但只要有一个中间层,原则上就可以任意很好地近似任何函数,至少如果有足够的神经元,尽管为了使其可行地训练,通常需要某种正则化或规范化)。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

好吧,让我们假设我们已经确定了某种神经网络架构。现在有一个问题,就是如何获得数据来训练网络。围绕神经网络和一般机器学习的许多实际挑战都集中在获取或准备必要的训练数据上。在许多情况下(“监督学习”),人们希望获得明确的输入和期望的输出的例子。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

因此,举例来说,人们可能希望通过图像中的内容或一些其他属性来标记图像。也许我们必须明确地去做 —— 通常是费尽心机地去做标记。但是很多时候,我们可以借助已经完成的工作,或者将其作为某种代理。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

因此,举例来说,我们可以使用网络上已经提供的图片的 alt 标签。或者,在另一个领域,我们可以使用为视频创建的封闭式字幕。或者在语言翻译训练中,可以使用不同语言的网页或其他文件的平行版本。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

你需要向神经网络展示多少数据来训练它完成一项特定任务?同样,这很难从第一原理上估计。当然,通过使用 “转移学习” 来 “转移” 诸如已经在另一个网络中学习过的重要特征列表的东西,可以大大降低要求。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

但一般来说,神经网络需要 “看到大量的例子” 才能训练好。而至少对于某些任务来说,神经网络的一个重要传说是,这些例子可能是非常重复的。事实上,向神经网络展示所有的例子是一个标准的策略,一遍又一遍。在每个 “训练回合”(或 “epochs”)中,神经网络至少会处于一个稍微不同的状态,而以某种方式 “提醒” 它某个特定的例子对于让它 “记住那个例子” 是很有用的。(是的,也许这类似于人类记忆中的重复的有用性)。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

但往往只是反复重复同一个例子是不够的。还需要向神经网络展示这个例子的变化。而神经网络理论的一个特点是,这些 “数据增强” 的变化不一定要复杂才有用。只要用基本的图像处理方法稍微修改一下图像,就可以使它们在神经网络训练中基本上 “像新的一样好”。同样,当人们没有实际的视频等来训练自动驾驶汽车时,人们可以继续从模拟的视频游戏环境中获得数据,而不需要实际的真实世界场景的所有细节。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

ChatGPT 这样的东西如何呢?嗯,它有一个很好的特点,那就是它可以进行 “无监督学习”,这使得它更容易得到用于训练的例子。回顾一下,ChatGPT 的基本任务是找出如何继续它所给的一段文字。因此,为了获得 “训练实例”,我们所要做的就是获得一段文本,并将其结尾遮盖起来,然后将其作为 “训练的输入” —— “输出” 是完整的、未被遮盖的文本。我们稍后会详细讨论这个问题,但主要的一点是,与学习图片中的内容不同,不需要 “明确的标签”;ChatGPT 实际上可以直接从它所得到的任何文本例子中学习。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

好吧,那么神经网络的实际学习过程是怎样的呢?归根结底,这都是为了确定什么权重能够最好地捕捉所给的训练实例。有各种详细的选择和 “超参数设置”(之所以被称为超参数,是因为可以把权重看作是 “参数”),可以用来调整如何完成这一过程。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

有不同的损失函数选择(平方之和、绝对值之和,等等)。有不同的方法来进行损失最小化(每一步要在权重空间中移动多远,等等)。然后还有一些问题,比如要展示多大的 “一批” 例子来获得每一个试图最小化的损失的连续估计。而且,是的,人们可以应用机器学习(例如,我们在 Wolfram 语言中所做的)来实现机器学习的自动化 —— 自动设置超参数等东西。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

但最终,整个训练过程的特点是看到损失是如何逐渐减少的(如这个 Wolfram Language 的小型训练的进度监视器):文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

ChatGPT工作原理:神经网络训练的实践与理论文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

而人们通常看到的是,损失在一段时间内减少,但最终在某个恒定值上趋于平缓。如果这个值足够小,那么可以认为训练是成功的;否则,这可能是一个应该尝试改变网络结构的信号。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

能否告诉我们 “学习曲线” 要花多长时间才能变平?就像许多其他事情一样,似乎有近似的幂律缩放关系,这取决于神经网络的大小和使用的数据量。但一般的结论是,训练一个神经网络是很难的,需要大量的计算努力。作为一个实际问题,这些努力的绝大部分都花在了对数字阵列的操作上,而这正是 GPU 所擅长的 —— 这就是为什么神经网络训练通常受限于 GPU 的可用性。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

在未来,是否会有从根本上更好的方法来训练神经网络,或者一般地做神经网络的工作?我认为,几乎可以肯定。神经网络的基本理念是用大量简单(本质上相同)的组件创建一个灵活的 “计算结构”,并让这个 “结构” 能够被逐步修改,以便从实例中学习。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

在目前的神经网络中,人们基本上是使用微积分的思想 —— 应用于实数 —— 来做这种增量修改。但越来越清楚的是,拥有高精度的数字并不重要;即使用目前的方法,8 位或更少的数字可能也足够了。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

像蜂窝自动机这样的计算系统,基本上是在许多单独的比特上并行操作的,如何做这种增量修改从来都不清楚,但没有理由认为它不可能。事实上,就像 “2012 年深度学习的突破” 一样,这种增量修改在更复杂的情况下可能比简单的情况下更容易。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

神经网络 —— 也许有点像大脑 —— 被设定为拥有一个基本固定的神经元网络,被修改的是它们之间连接的强度(“重量”)。(也许至少在年轻的大脑中,大量的完全新的连接也可以增长。) 但是,虽然这对生物学来说可能是一个方便的设置,但并不清楚它是否是实现我们所需功能的最佳方式。而涉及渐进式网络重写的东西(也许让人想起我们的物理项目)最终可能会更好。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

但即使在现有的神经网络框架内,目前也有一个关键的限制:现在的神经网络训练从根本上说是连续的,每一批例子的效果都被传播回来以更新权重。事实上,就目前的计算机硬件而言 —— 即使考虑到 GPU —— 在训练期间,神经网络的大部分时间都是 “闲置” 的,每次只有一个部分被更新。从某种意义上说,这是因为我们目前的计算机往往有独立于 CPU(或 GPU)的内存。但在大脑中,这大概是不同的 —— 每一个 “记忆元素”(即神经元)也是一个潜在的活跃的计算元素。如果我们能够以这种方式设置我们未来的计算机硬件,就有可能更有效地进行训练。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

“当然,一个足够大的网络可以做任何事情!”文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

像 ChatGPT 这样的能力似乎令人印象深刻,人们可能会想象,如果人们能够 “继续下去”,训练越来越大的神经网络,那么它们最终将能够 “做任何事情”。如果人们关注的是那些容易被人类直接思考的事物,那么很有可能是这样的。但是,过去几百年科学的教训是,有些东西可以通过形式化的过程来计算出来,但并不容易被人类的直接思维所获得。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

非琐碎的数学就是一个大例子。但一般的情况其实是计算。而最终的问题是计算的不可还原性现象。有一些计算,人们可能认为需要很多步骤才能完成,但事实上可以 “简化” 为相当直接的东西。但计算的不可简化性的发现意味着这并不总是有效的。相反,有些过程 —— 可能就像下面这个过程 —— 要弄清楚发生了什么,必然需要对每个计算步骤进行追踪:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

ChatGPT工作原理:神经网络训练的实践与理论文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

我们通常用大脑做的那些事情,大概是专门为避免计算的不可还原性而选择的。在一个人的大脑中做数学需要特别的努力。而且,在实践中,仅仅在一个人的大脑中 “思考” 任何非微观程序的操作步骤,在很大程度上是不可能的。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

当然,为此我们有计算机。有了计算机,我们可以很容易地做很长的、计算上不可简化的事情。而关键的一点是,这些事情一般来说没有捷径。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

是的,我们可以记住很多关于在某个特定计算系统中发生的具体例子。也许我们甚至可以看到一些(“计算上可还原的”)模式,使我们可以做一点概括。但问题是,计算上的不可还原性意味着我们永远无法保证意外不会发生 —— 只有通过明确地进行计算,你才能知道在任何特定情况下实际发生了什么。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

最后,在可学习性和计算的不可重复性之间存在着一种基本的紧张关系。学习实际上是通过利用规则性来压缩数据。但计算上的不可复制性意味着最终对可能存在的规律性有一个限制。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

作为一个实际问题,我们可以想象将一些小的计算设备 —— 如蜂窝自动机或图灵机 —— 构建成像神经网络这样的可训练系统。而且,这种设备确实可以作为神经网的好 “工具”,就像 Wolfram|Alpha 可以作为 ChatGPT 的好工具。但计算的不可简化性意味着我们不能指望 “进入” 这些设备并让它们学习。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

或者换句话说,在能力和可训练性之间有一个最终的权衡:你越想让一个系统 “真正利用” 它的计算能力,它就越会显示出计算的不可复制性,它的可训练性就越低。而它越是从根本上可训练,它就越不能做复杂的计算。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

(对于目前的 ChatGPT 来说,情况实际上要极端得多,因为用于生成每个输出符号的神经网络是一个纯粹的 “前馈” 网络,没有循环,因此没有能力做任何具有非复杂 “控制流” 的计算)。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

当然,人们可能会问,能够做不可还原的计算是否真的很重要。事实上,在人类历史的大部分时间里,这并不特别重要。但我们的现代技术世界是建立在至少使用数学计算的工程之上的,而且越来越多地使用更普遍的计算。如果我们看一下自然界,它充满了不可简化的计算 —— 我们正在慢慢理解如何模仿并用于我们的技术目的。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

是的,一个神经网络当然可以注意到自然世界中的各种规律性,而我们也可能很容易通过 “无助的人类思维” 注意到这些规律性。但是,如果我们想要解决属于数学或计算科学范畴的事情,神经网络是无法做到的 —— 除非它有效地 “作为工具” 使用一个 “普通” 的计算系统。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

但是,这一切都有一些潜在的混淆之处。在过去,有很多任务 —— 包括写文章 —— 我们认为对计算机来说 “从根本上说太难了”。而现在我们看到这些任务是由 ChatGPT 等完成的,我们倾向于突然认为计算机一定是变得更加强大了,特别是超越了它们已经基本能够做到的事情(比如逐步计算蜂窝自动机等计算系统的行为)。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

但这并不是正确的结论。计算上不可还原的过程仍然是计算上不可还原的,而且对计算机来说仍然是根本性的困难 —— 即使计算机可以轻易地计算它们的单个步骤。相反,我们应该得出的结论是,我们人类可以做的,但我们不认为计算机可以做的任务,比如写文章,实际上在某种意义上比我们想象的更容易计算。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

换句话说,神经网络之所以能够成功地写出一篇文章,是因为写一篇文章被证明是一个比我们想象的 “计算上更浅” 的问题。从某种意义上说,这使我们更接近于 “拥有一种理论”,即我们人类是如何做到像写文章这样的事情的,或在一般情况下处理语言。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

如果你有一个足够大的神经网络,那么,是的,你可能能够做任何人类能够轻易做到的事情。但是,你不会捕捉到自然界一般能做的事情 —— 或者我们从自然界塑造的工具能做的事情。而正是这些工具的使用 —— 无论是实用的还是概念性的 —— 使得我们在近几个世纪里能够超越 “纯粹的无助的人类思维” 所能达到的界限,并为人类的目的捕捉到物理和计算宇宙中的更多东西。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41520.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/ai/41520.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定