在这篇文章中,谷歌研究人员提供了有关这一现象和当前研究的视觉展示。该团队对超过1000个不同训练参数的小型模型进行了算法任务的训练,展示了「有条件的现象——如果模型大小、权重衰减、数据大小和其他超参数不合适,这种现象会消失。」




一个具有24个神经元的单层MLP。模型的所有权重如下面的热图所示;通过将鼠标悬停在上面的线性图上,可以看到它们在训练过程中如何变化。
模型通过选择与输入a和b对应的两列
,然后将它们相加以创建一个包含24个独立数字的向量来进行预测。接下来,它将向量中的所有负数设置为0,最后输出与更新向量最接近的
列。模型的权重最初非常嘈杂,但随着测试数据上的准确性提高和模型逐渐开始泛化,它们开始展现出周期性的模式。在训练结束时,每个神经元,也就是热图的每一行在输入数字从0增加到66时会多次在高值和低值之间循环。如果研究人员根据神经元在训练结束时的循环频率将其分组,并将每个神经元分别绘制成一条单独的线,会更容易看出产生的变化。
这些周期性的模式表明模型正在学习某种数学结构;当模型开始计算测试样本时出现这种现象,意味着模型开始出现泛化了。但是为什么模型会抛开记忆的解决方案?而泛化的解决方案又是什么呢?

下面的权重图标显示,在记忆训练数据时,模型看起来密集而嘈杂,有许多数值很大的权重(显示为深红色和蓝色方块)分布在数列靠后的位置,表明模型正在使用所有的数字进行预测。随着模型泛化后获得了完美的测试数据准确性,研究人员看到,与干扰数字相关的所有权重都变为灰色,值非常低,模型权重全部集中在前三位数字上了。这与研究人员预期的泛化结构相一致。
通过这个简化的例子,更容易理解为什么会发生这种情况:其实在训练过程中,研究人员的要求是模型要同时完成两个目标,一个是尽量高概率地输出正确的数字(称为最小化损失),另一个是使用尽量小的全权重来完成输出(称为权重衰减)。在模型泛化之前,训练损失略微增加(输出准确略微降低),因为它在减小与输出正确标签相关的损失的同时,也在降低权重,从而获得尽可能小的权重。
而测试数据损失的急剧下降,让模型看起来像是似乎突然开始了泛化,但其实不是,这个过程在之前就已经在进行了。但是,如果观察记录模型在训练过程中的权重,大部分权重是平均分布在这两个目标之间的。当与干扰数字相关的最后一组权重被权重衰减这个目标「修剪」掉时,泛化马上就发生了。




模型只用了5个神经元就完美地找到了解决方案。
然后还是回到a+b mod 67的问题上,研究人员从头训练模型,没有内置周期,这个模型有很多频率。
然后研究人员使用离散傅里叶变换分离出频率,会分离出输入数据中的周期性模式。
而结果就和之前在数列中数1的任务一样,随着模型的泛化,权重会迅速衰减到很低。而且在不同的频率任务中,模型也都出现了「顿悟」。

什么原因导致泛化的出现?虽然研究人员现在对用单层MLP解决模加法的机制以及它们在训练过程中出现的原因有了深入的了解,但仍然存在许多关于记忆和泛化的有趣的悬而未决的问题。从广义上讲,权重衰减确实会导致多种模型不再记忆训练数据 。其他有助于避免过度拟合的技术包括 dropout、较小的模型,甚至数值不稳定的优化算法 。这些方法以复杂、非线性的方式相互作用,使得很难预先预测最终什么原因和方式会导致泛化。

甚至可以找到模型开始泛化的超参数,然后切换到记忆,然后再切换回泛化!
原文标题:谷歌证实大模型能顿悟,特殊方法能让模型快速泛化,或将打破大模型黑箱
文章出处:【微信公众号:智能感知与物联网技术研究所】欢迎添加关注!文章转载请注明出处。
全部0条评论
快来发表一下你的评论吧 !