“AI 教父”Geoffrey Hinton:AI 会欺骗人类,控制超级智能非常重要( 二 )


但现在情况发生了改变 。我们现在有了一种不同的方法来让计算机完成任务,那就是从示例中学习 。我们只需向计算机展示我们希望它们完成的任务,由于如何让计算机做你想要的事情的方式发生了改变,现在我们有可能要放弃计算机科学最基本的原则,即软件应该与硬件相分离 。
在放弃这个原则之前,让我们简要了解一下为什么它是一个好的原则 。
由于软件与硬件的分离,我们可以在不同的硬件上运行相同的程序 。我们还可以关注程序的特性,并对神经网络上的程序特性进行研究,而不必担心电子方面的问题 。

“AI 教父”Geoffrey Hinton:AI 会欺骗人类,控制超级智能非常重要

文章插图
这就是为什么计算机科学部门可以与电气工程部门不同 。
如果我们放弃软件和硬件的分离,我们就得到了我称之为“非永生计算”的东西 。显然它有很大的缺点,但也有一些巨大的优势 。
为了这些优势,我开始研究“非永生计算”,以便能够以更低的能量运行大型语言模型等任务 。特别是能够使用更少的能量来训练它们,放弃永恒性的好处是放弃硬件和软件的分离 。我们可以获得巨大的能量节约,因为我们可以使用非常低功率的模拟计算 。这正是大脑正在做的 。
它确实有1位的数字计算,因为神经元要么触发,要么不触发 。但大部分计算是模拟计算,并且可以以非常低功率完成 。我们还可以获得更便宜的硬件 。目前的硬件必须以二维(2D)方式精确制造,但实际上我们可以使用三维(3D)技术制造硬件,因为我们不需要完全理解硬件的连通性或每个部分的工作原理 。
很显然,要实现这一点需要大量的新纳米技术,或者也许是通过基因重组重新设计生物神经元,因为生物神经元已经大致能够实现我们想要的功能 。
在我详细介绍“非永生计算”的所有缺点之前,我想给你举一个例子,说明我们明显可以通过使用模拟硬件更便宜地完成的计算任务 。
如果您将神经活动的向量与权重矩阵相乘,那就是神经网络的核心计算 。这是它大部分工作所在之处 。
目前我们所做的是以非常高的功率驱动晶体管,以表示数字中的位数 。然后,我们执行O(n^2)的操作来将两个n位数相乘 。在计算机上可能只是一个操作,但在位操作上却是n^2个操作 。另一种选择是将神经活动实现为电压,将权重实现为电导 。然后,在单位时间内,电压乘以电导会产生电荷,而电荷会相互叠加 。
现在很明显,您可以通过电导矩阵乘以电压向量 。这种方法在能量效率上要高得多 。已经存在以这种方式工作的芯片 。不幸的是,人们接下来会尝试使用模数转换器将模拟答案转换为数字形式,而这是非常昂贵的 。如果可能的话,我们希望完全保持在模拟领域 。但问题是,不同的硬件部件最终将计算出略有不同的结果 。
“非永生计算”的主要问题是,学习过程必须利用其运行的硬件部件的特定模拟特性,而我们不确切知道这些特性是什么 。
例如,人们不知道将输入与神经元的输出相关联的确切函数,或者可能不知道连接性 。这意味着我们无法使用反向传播算法等方法来获得梯度,因为反向传播是前向传递的精确模型 。
那么问题是,如果我们不能使用反向传播,我们还能做些什么?因为我们现在非常依赖于反向传播 。这里有一个人们已经讨论了很多次的非常简单和明显的学习过程 。您对网络中的每个权重生成一个小的随机扰动向量 。然后,您测量全局目标函数的变化 。在一小批示例上,然后通过扰动向量进行永久性地更改权重,扰动向量的缩放因子为目标函数的改善 。如果目标函数变得更糟,显然您会朝相反的方向调整 。这个算法的好处是,平均而言,它的行为与反向传播相同 。
因为平均而言,它遵循梯度 。但它的问题在于方差非常高 。当您选择一个随机方向在权重空间中移动时,所产生的噪声与网络的规模非常不成比例 。这意味着,这种算法对于连接数较少的小网络可能有效,但对于大型网络来说效果不佳 。
这里有一种方法效果要好得多 。它仍然存在类似的问题,但比扰动权重要好得多,即扰动神经元的活动 。也就是说,您考虑对每个神经元的总输入进行随机扰动的向量 。您观察当您在一小批示例上对其进行随机扰动时,目标函数会发生什么变化,并获得由此扰动导致的目标函数差异 。
然后,您可以计算如何改变神经元的每个传入权重以遵循梯度 。


推荐阅读