大数据文摘转载自数据派THU
作者:Manuel Brenner
翻译:陈之炎
校对:赵茹萱
“对不可见数据的泛化能力是机器学习的核心。”
当前大多数人工智能研究的核心问题是如何将算法泛化到不可见数据。
在机器学习的背景下,大多数模型都是建立在数据是i.i.d.(独立同分布)的基础之上进行训练和评估的,它意味着对于同一个给定任务来说,需要对相同分布的训练数据和测试数据进行采样。泛化意味着需要从训练数据中提取出共享的底层分布。
对数据是i.i.d.的假设往往是一种理想状态,在现实世界中,却不一定行得通,因为环境在不断变化,所以 o.o.d.(非同分布)学习对模型的生存变得至关重要。
从当前现状来看,人类的泛化能力比机器要好得多:人类可以快速识别环境中的分布变化,是“小样本学习者”,从少数例子中便可以推断出规则。人类还可以根据所看到的先验数据,灵活地调整推理模型。对于许多经典的ML模型来说,这不可能成为现实:灾难性遗忘是一个经常出现的问题,神经网络模型在新的、不可见数据上训练时往往会突然忘记先前所学到的一切。
泛化与训练数据的过拟合和欠拟合问题密切相关,其中过拟合是指由于噪声过大或信号过小的原因,从而无法解释数据。解决过拟合的标准方法是采用低参数模型、剪枝模型和正则化技术(dropout、l2规一化等)。这些方法从直观上被质疑会发生双重下降现象(该Twitteer用一个简单的例子解释了双重下降现象如何与正则化相关联),由于会发生过拟合现象,高容量模型比低容量模型的泛化能力要差,但甚高容量模型的泛化能力却要比低容量模型要好得多。
由于GPT-3无法解决未经训练过的任务,所以对基于transformer的大规模模型的泛化能力也有了质疑。
GPT-3论文的标题
DeepMind的新Flamingo将语言与视觉模型连接起来,整合了大量的视觉和语言组合任务:
神经网络这种跨任务泛化方式表示知识的能力,远远比在看到数百万个标记好的狗和猫的例子之后再对狗和猫进行分类的神经网络要聪明得多。
接着,这些模型又成功地提出了一系列有趣的问题:即泛化究竟意味着什么?如何实现?这些模型到底学到了什么?随着模型规模的不断增加,这些问题并没有变得更加容易回答,因为模型的参数数目已经接近于人类大脑中神经元的数量。模型的能力如此巨大,是否能以一种更加聪明的方式记住所有的训练数据,亦或能记住更多的内容?
泛化以重要的方式与记忆相互作用:其想法是,如果能从数据中提取出解意,便能获得比记忆更灵活、更浓缩的知识表示。在许多无监督的学习中,这已经成为了一项必要的任务,例如解纠缠表示学习。因此,不可见数据的泛化能力不仅是机器学习的核心,也是许多智能所定义的核心内容。
马库斯·哈特(Markus Hutter)认为,智能与无损压缩有许多相似之处,哈特奖授予将特定版本英文维基百科中包含1.000.000.000个字母的文本文件进行有无损压缩的先进技术,哈特和他的同事谢恩·莱格(Shane Legg)一起,将“智能”的定义浓缩成与心理学、机器学习和哲学相关的以下公式:
简单地说,智能是指智能体(Agent)从全部环境空间中提取价值的能力,并根据环境的复杂性来确定权重。利用柯尔莫戈罗夫(Kolmogorov)复杂性函数来度量复杂程度:它是复杂程度的信息论度量,与生成它所需的最短行代码相对应,与将智能当成压缩的思想相关连,对应于最佳压缩、高效记忆的一种表示(我在关于“混沌理论和计算不可约性”的文章中更详细地讨论了类似的思想)。当发生噪声过拟合时,必须记住这个公式,因为在信息理论中,噪声是不相关的,是无意义的解释,它不包含与过去或未来相关的信息。
然而,虽然大家都认为泛化对于机器学习很重要,并且在某种程度上与复杂性有关,但它仍然难以度量,这篇谷歌论文汇编了40多个指标,旨在对复杂性和泛化进行描述,但结果却大相庭径。
神经网络的泛化能力与它们记住了多少内容以及它们学会忘记了多少内容有关。佩德罗·多明戈斯(Pedro Domingos)最近的一篇题为“通过梯度下降学习到的全部模型都将近似为内核机”一文,为这一讨论带来了一个有趣的新视角:
“深度网络……实际上等同于内核机在数学上的近似,即是一种学习方法,可以简单地记忆数据,并通过相似性函数(内核)直接用它进行预测。这大大提高了深度网络权值的可解释性,是对训练示例的有效叠加。”—佩德罗·多明戈斯
多明戈斯认为,神经网络中的学习与基于核的方法有许多数学上的相似之处,如支持向量机。
核机通过非线性变换将数据点嵌入特征空间,在变换空间中,样本可以被线性分离。来源:Alisneaky向量:Zirguezi,CC BY-SA 4.0
简单地说,在基于核的方法中,训练数据首先通过非线性变换嵌入到一个新的空间,即所谓的特征向量空间。特征(嵌入空间的维度)可以具备直观的属性意义(如令人愉悦或恐怖的电影,或毛茸茸的猫),从更一般的意义上来讲,嵌入空间捕获的是对数据点之间的相似性(例如两部电影之间的幸福维度如何接近)的度量。一旦嵌入了特征之后,便可以将二者线性分离,例如,可以用k最近邻分类将二者分离开来,在特征空间中,可以将测试数据与k邻近数据点相比较,再根据邻近数据点的共同标记进行分类。(可以找出令人愉悦的电影或相似的电影)。
深度学习也解决了类似的问题:它的目的是找出嵌入空间中那些与测量样本之间相似的数据(对于人脸识别任务来说,即是找出相似的人脸图像)。另一方面,可以利用神经核推导出一个对应于无限宽神经网络的核函数,反之,用它来证明核函数的可用性,并为神经网络如何学习提供新的理论依据。
多明戈的论文揭示了用梯度下降学习模型和基于核技术模型二者之间的一个有趣的相似之处:在训练过程中,网络权值隐式地记住了待训练的数据。在推理过程中,“被记住的”训练数据和由神经网络表示的非线性变换一起工作,将一个测试点与先前的数据进行比较,并根据核方法对其进行分类。
虽然模型尚未对这其中的含义完全理解,但也可以解释为什么用梯度下降训练的神经网络一直在与o.o.d.作斗争中进行学习:如果训练确实依赖于记忆的话,那么遵循前文讨论过的逻辑,模型在没有遗忘(正则化)之前,泛化能力会变差。因此,这一观点也可以用于阐明如何更好地正则化模型以实现泛化。
记忆, Dall-E的记忆
记忆关注的是跨时间信息的存储和检索,因此记忆问题在时间序列分析领域中也同样重要。递归神经网络(RNNs)和长-短期记忆网络(LSTMs)是时间序列数据建模中最为流行的两种模型。
经典的记忆序列模型基准带来了另一个问题,模型的任务变成:添加两个时间点t1和t2的输入,并在另一个时间点T输出正确的二者之和,为此,模型应保留住更长时间内的信息,对于基于梯度的方法来说,随着t1和t2之间时间滞后的增加,训练难度也随之增大。这与梯度消失和爆炸梯度问题有关,因为在序列模型反向传播的同时,t时刻同一层的多次循环调用会引发(对于混沌系统的时间序列,必然会发生)梯度消失和爆炸梯度,从而导致经常性梯度爆炸或消失的出现,间接地提高了循环模型的成本,甚至无法在特定任务上进行训练。
保留记忆的困难与降低学习时间尺度的困难相关:实验表明,通过减缓RNN动态子空间(所谓的线吸引子)可以解决由子空间带来的问题,可以稳定地保留住信息,不受网络其他部分的动态影响。
20世纪被引用次数最多的LSTM神经网络架构,通过显式添加一个单元状态来解决记忆问题,该状态可保留任意时间内的信息,用一个输入门、一个输出门和一个遗忘门来控制信息的流向。因此,LSTM比普通RNN更能在“记住”数千个时间步长的信息,解决诸如加法问题等任务。
正如前文所述,这种记忆方式也存在其自身的缺点:通过记住信息而不是通过理解来压缩信息,更容易引发“过度匹配”问题。
物理学家用动力系统的语言来描述时间序列,从牛顿定理到薛定谔方程,是大多数物理理论对于世界的动态描述的核心要义:
薛定谔方程是用一个微分方程组来描述系统
这种通过微分方程来描述现实世界的方式,其特征是无记忆的。给定系统的初始状态,再利用时间演化算子对系统进行完整的描述(即哈密顿量),系统的时间演化过程都是已知的(甚至是时间的对称反转,不会发生信息丢失)。因此,没有必要记忆信息:在描述确实是完整的前提下,从柯尔莫戈罗夫复杂度的角度,可以完美进行压缩。
在动力系统重构领域,机器学习更加关注如何从时间序列中再现出一个动力系统,带有记忆的模型实际上有百害而无一利,在找到无记忆体最优解的同时,泛化往往会加大失败的风险,通过记住训练数据的各种模式会引发过拟合。对于复杂(动态)系统的学习模型来说,这是一个旷日持久的挑战,比如在描述大脑或气候时,如何泛化系统的正确描述,捕获系统的长期行为特征,有着诸多重要的实际意义。例如在预测动态系统的爆发点时,这些数据在预测极端天气事件或气候变化的长期影响方面发挥了重要作用。然而,大多数真实世界的系统都是有噪声的、混沌的,而且只能观察到部分环节,所以如何从噪声中分离出信号仍然是一个巨大的挑战。
在许多实际应用中,往往无法观察到周边世界的完整描述和认知。利用记忆,特别是在无法获取到现实描述的压缩数据的情况之下,记忆已然成为了构建现实智能系统的一个关键因素,也成为了人类自身智能的一个明确特征。笔者认为:通过从这个角度来思考泛化和记忆的相互作用关系,有助于设计出更好的泛化算法。
原文标题:
Memory and Generalization in Artificial Intelligence
原文链接:
https://towardsdatascience.com/memory-and-generalization-in-artificial-intelligence-35e006ca0a9a
编辑:王菁
校对:林亦霖
点「在看」的人都变好看了哦!