几十个神经元也有泛化能力

萧箫 发自 凹非寺
量子位 | 公众号 QbitAI

哪怕只有几十个神经元,AI也能出现泛化能力!

这是几个谷歌科学家在搞正经研究时,“不经意间”发现的新成果。

他们给一些很简单的AI模型“照了个X光”——将它们的训练过程可视化后,发现了有意思的现象:

随着训练时间增加,一些AI会从“死记硬背”的状态中脱离出来,进化出“领悟力”(grokking),对没见过的数据表现出概括能力。

谷歌发现大模型「领悟」现象!训练久了突然不再死记硬背,多么痛的领悟

这正是AI掌握泛化能力的关键。

基于此,几位科学家专门写了个博客,探讨了其中的原理,并表示他们会继续研究,试图弄清楚大模型突然出现强理解力的真正原因。

谷歌发现大模型「领悟」现象!训练久了突然不再死记硬背,多么痛的领悟

一起来看看。

并非所有AI都能学会“领悟”

科学家们先探讨了AI出现“领悟力”(grokking)的过程和契机,发现了两个现象:

  • 一、虽然训练时loss会突然下降,但“领悟”并不是突然发生的,它是一个平滑的变化过程。
  • 二、并非所有AI都能学会“领悟”。

先来看第一个结论。他们设计了一个单层MLP,训练它完成“数奇数”任务。

“数奇数”任务,指识别一串长达30位“0”“1”序列中的前3位是否有奇数个“1”。例如,在
000110010110001010111001001011中,前3位没有奇数个1;010110010110001010111001001011中,前3位有奇数个1。

在训练前期阶段,模型中各神经元的权重(下图中的热图)是杂乱无章的,因为AI不知道完成这一任务只需要看前3个数字。

但经过一段时间的训练后,AI突然“领悟了”,学会了只看序列中的前3个数字。具体到模型中,表现为只剩下几个权重会随着输入发生变化:

谷歌发现大模型「领悟」现象!训练久了突然不再死记硬背,多么痛的领悟

这个训练过程的目标被称之为最小化损失(提升模型输出准确率),采用的技术则被称之为权重衰减(防止模型过拟合)。

谷歌发现大模型「领悟」现象!训练久了突然不再死记硬背,多么痛的领悟

训练过程中,有一些权重与任务的“干扰数字”(30位序列的后27位)相关,下图可视化为灰色;有一些则与完成任务的“前3位数字”有关,下图可视化为绿色

当最后一个灰色权重降到接近0,模型就会出现“领悟力”,显然这个过程不是突然发生的。

谷歌发现大模型「领悟」现象!训练久了突然不再死记硬背,多么痛的领悟

再来看第二个结论。不是所有AI模型都能学会“领悟”。

科学家们训练了1125个模型,其中模型之间的超参数不同,每组超参数训练9个模型。

最后归纳出4类模型,只有2类模型会出现“领悟力”。

如下图,“白色”和“灰色”代表学不会“领悟”的AI模型,“黄色”和“蓝色”代表能“领悟”的AI模型。

谷歌发现大模型「领悟」现象!训练久了突然不再死记硬背,多么痛的领悟

总结概括规律就是,一旦权重衰减、模型大小、数据量和超参数的设置不合适,AI的“领悟力”就有可能消失——

以权重衰减为例。如果权重衰减太小,会导致模型过拟合;权重衰减太大,又会导致模型学不到任何东西。

嗯,调参是门技术活……

谷歌发现大模型「领悟」现象!训练久了突然不再死记硬背,多么痛的领悟

了解现象之后,还需要探明背后的原因。

接下来,科学家们又设计了两个小AI模型,用它来探索模型出现“领悟力”、最终掌握泛化能力出现的机制。

更大的模型学会泛化的机制

科学家们分别设计了一个24个神经元的单层MLP和一个5个神经元的单层MLP,训练它们学会做模加法(modular addition)任务。

模加法,指(a + b) mod n。输入整数a和b,用它们的和减去模数n,直到获得一个比n小的整数,确保输出位于0~(n-1)之间。

显然,这个任务的输出是周期性的,答案一定位于0~66之间。

谷歌发现大模型「领悟」现象!训练久了突然不再死记硬背,多么痛的领悟

首先,给只有5个神经元的单层MLP一点“提示”,设置权重时就加入周期性(sin、cos函数)。

谷歌发现大模型「领悟」现象!训练久了突然不再死记硬背,多么痛的领悟

在人为帮助下,模型在训练时拟合得很好,很快学会了模加法。

谷歌发现大模型「领悟」现象!训练久了突然不再死记硬背,多么痛的领悟

然后,试着“从头训练”具有24个神经元的单层MLP,不特别设置任何权重。

可以看到,训练前期,这只MLP模型的权重(下面的热图)变化还是杂乱无章的:

谷歌发现大模型「领悟」现象!训练久了突然不再死记硬背,多么痛的领悟

然而到达某个训练阶段后,模型权重变化会变得非常规律,甚至随着输入改变,呈现出某种周期性变化:

谷歌发现大模型「领悟」现象!训练久了突然不再死记硬背,多么痛的领悟

如果将单个神经元的权重拎出来看,随着训练步数的增加,这种变化更加明显:

谷歌发现大模型「领悟」现象!训练久了突然不再死记硬背,多么痛的领悟

这也是AI从死记硬背转变为具有泛化能力的关键现象:神经元权重随着输入出现周期性变化,意味着模型自己找到并学会了某种数学结构(sin、cos函数)。

谷歌发现大模型「领悟」现象!训练久了突然不再死记硬背,多么痛的领悟

这里面的频率(freq)不是固定的一个值,而是有好几个。

之所以会用到多个频率(freq),是因为24个神经元的单层MLP还自己学会了使用相长干涉(constructive interference),避免出现过拟合的情况。

不同的频率组合,都能达到让AI“领悟”的效果:

谷歌发现大模型「领悟」现象!训练久了突然不再死记硬背,多么痛的领悟

用离散傅里叶变换(DFT)对频率进行隔离,可以发现和“数奇数”类似的现象,核心只有几个权重起作用:

谷歌发现大模型「领悟」现象!训练久了突然不再死记硬背,多么痛的领悟

总结来看,就像前面提到的“数奇数”任务一样,“模加法”实验表明,参数量更大的AI也能在这个任务中学会“领悟”,而这个过程同样用到了权重衰减

从5个神经元到24个神经元,科学家们成功探索了更大的AI能学习“领悟”的机制。

接下来,他们还计划将这种思路套用到更大的模型中,以至于最后能归纳出大模型具备强理解力的原因

不仅如此,这一成果还有助于自动发现神经网络学习算法,最终让AI自己设计AI。

谷歌发现大模型「领悟」现象!训练久了突然不再死记硬背,多么痛的领悟

团队介绍

撰写博客的作者来自谷歌的People + AI Research(PAIR)团队。

谷歌发现大模型「领悟」现象!训练久了突然不再死记硬背,多么痛的领悟

这是谷歌的一个多学科团队,致力于通过基础研究、构建工具、创建框架等方法,来研究AI的公平性、可靠性等。

谷歌发现大模型「领悟」现象!训练久了突然不再死记硬背,多么痛的领悟

一句话总结就是,让“AI更好地造福于人”。

博客地址:
https://pair.withgoogle.com/explorables/grokking/