大模型:泛化即智能,压缩即一切
深度学习入门:理解泛化
泛化是指模型在未见数据上的表现。作为入门者,我们专注于观察和理解现象,而不是深入探究。这篇总结旨在激发您对泛化的兴趣,为进一步探索奠定基础。
遵循 Scaling Law 定律,专注于为长期模型泛化能力获取大量多样化数据,胜过通过巧妙调整模型获得短期效果。正如机器学习专家 Rich Sutton 在【苦涩的教训】中强调的那样,这种方法至关重要。
泛化能力,即从特定问题中提取一般性原理,并将其应用于其他领域的能力。孔子称赞颜回具有举一反十的泛化能力,凸显了其重要性,因为它决定了一个人的上限。
人工智能模型的泛化能力至关重要,因为它决定了模型在面对新数据时的预测准确性。泛化指模型从训练数据中提取共性,使其能够对未见过的数据做出可靠预测。
定义1: 模型的泛化程度与你将不同数据推入足够高容量模型的速度成正比。
培养孩子泛化能力的关键在于构建稳固的基础认知,犹如教育中的奠基工程,为后续的知识拓展和应用提供坚实支撑。
早期经验会塑造儿童对世界的认知。就像苹果一样,如果只接触单一颜色,儿童可能将其视为唯一颜色。通过暴露于各种颜色,他们扩大对现实的理解,意识到世界的多样性。
通过训练模型处理大量且多元的数据,模型能够适应它从未接触过的全新数据。然而,成功实现这一点的关键在于确保模型能够有效地利用这些数据。
所以说,记忆是通向泛化的第一步。
1. 监督学习是优秀的数据海绵
深度神经网络拥有强大的数据吸收能力,得益于监督学习训练。它们可以迅速记住大量数据,即使训练批次大小达到数万。
监督学习的优势在于其数学保证:只要训练数据充足且误差低,模型对新数据的预测也会精准。这意味着,当训练过程将误差降至最低时,模型已有效「记住」训练集。
有人可能会说,我们只是在拟合训练集么,为什么能推导出测试集泛化呢?
数据集中每个标记经过评估后,训练损失实际上是下一个标记验证损失。这表明模型正在学习预测下一个标记的概率分布,从而最大化标记序列中标记预测的准确性。
随着模型复杂度的提升,经验风险和泛化风险先减后增,在某一临界点处达到平衡。此后,经验风险继续下降,而泛化风险却持续上升。
教科书中的 U 形风险曲线表示复杂度与模型预测准确性之间的关系。欠拟合(复杂度过低)和过拟合(复杂度过高)均会导致较差的性能。
定义2:狭义上,过度参数化的深度网络可以更好的泛化。
深度神经网络在极低训练误差下表现出惊人的泛化能力,挑战了传统对于过度拟合的理解。这表明过度参数化的模型即使在训练损失接近零的情况下,也能有效避免过度拟合。
过度参数化的模型具有无限降低风险的能力,即使在训练损失最小化后。模型复杂性的增加会持续降低风险,尽管收益递减,但会趋向于一个稳定点。这种过度参数化与风险之间的经验关系已被证明是可靠的。
复杂性与成本之间存在单一下降曲线,广泛适用于各种情况。即使在复杂性极低的场景中,成本也随复杂性的增加而减少,确保极佳的性价比。
较大型模型不仅泛化性优于较小型模型,还具有样本外预测能力更强的独特特性。然而,大型化是否只是将泛化挑战推迟,仍值得探索。
监督学习的关键在于保持测试分布和训练分布的一致性。只有在这种情况下,监督学习理论才能有效发挥作用,实现准确的预测。
2. 无监督学习是针对不同任务的监督学习
监督学习是一种机器学习技术,它利用已标记的数据训练模型。模型基于这些标记学习输入与输出之间的关系,并优化目标函数来提高预测准确性。
无监督学习采用未标记的数据,使模型自主发现潜在模式和规律。其优势在于:
- 数据探索:帮助理解数据,找出隐藏特征和关联性。
- 优化目标不明:无需预先定义特定目标,模型根据数据自行学习。
优化模型有效性的关键在于确保目标函数与实际应用场景相关。处理无标签数据时,验证目标函数在实践中的有效性至关重要,以确保模型的输出符合预期的成果。
通过学习数据的数学结构,即分布匹配,模型可以捕捉数据的本质特征。这意味着模型学习数据的分布特征,而不仅仅是优化目标函数。通过这种方法,模型能够提高泛化能力,更好地适应新数据。
无监督学习利用未标注的数据,建立分布之间的映射。它不学习明确的函数f(x)~y,而是专注于在不同的分布之间建立联系。通过捕捉数据固有结构,无监督学习可用于数据分组、模式识别和异常检测等任务。
分布匹配通过创建函数 f,将输入数据源 X 的分布转换为类似于数据源 Y 的分布。它在翻译和文本转语音中至关重要,利用了不同数据源分布之间的关系。
该技术通过一个函数 f,将英语句子分布转换为类似法语句子的分布。函数 f 的约束非常接近真实约束,这表明函数 f 中可能蕴含大量约束。此外,这些约束可用来完整还原函数 f 的信息。这种类似于监督学习的方法确保了学习的有效性。
真实机器学习场景中,翻译场景设置可能包含人为因素,与实际情况存在差异。
设想你有数据集 X 和 Y,对应硬盘文件,拥有出色压缩算法 C。当将 X 和 Y 连接并输入 C 时,会产生如下结果:
* 压缩率提升: X 和 Y 联合压缩的压缩率可能高于单独压缩。
* 潜在信息泄露: X 和 Y 连接后,C 可能会发现两个数据集之间的隐藏联系,从而导致潜在的信息泄露。
* 算法效率提升: C 在处理连接数据集时,算法效率可能会得到提升。
利用压缩模型匹配数据分布,通过识别共性和模式,将数据集 X 的压缩模式应用于数据集 Y,建立分布映射。此过程展示了如何通过理解数据结构进行分布匹配和学习,类似于压缩,以共性匹配和转换分布。
精简
压缩,又称泛化,是一种识别数据共性并以简洁方式表示数据的过程。压缩成功表示捕捉到了数据的核心规则和特征,减少了冗余信息。
无损压缩揭示数据关键特征,强化泛化能力。实现最佳无损压缩的模型,能最大限度提取数据特征,在不同数据集上展现卓越的泛化效果。
2006 年,计算机教授 Marcus Hutter 发起 Hutter Prize 竞赛,旨在奖励设计出高效通用压缩算法的团队。该算法结合了人工智能和数据压缩技术,使其能够针对不同数据集优化压缩率,最大限度地减少文件大小。
困难在于压缩数据的规律本身,然而,高压缩比与智能密切相关。
如果Hutter是对的,那我们就可以通过压缩效率来近似量化模型的智能。
定义5:压缩和预测下一个单词本质上是等价的。
泛化能力是模型对未知数据进行准确预测的能力,而泛化的关键在于深刻理解数据的数学规律。通过实现数据的「无损压缩」,模型能够掌握数据的内在规律,从而在未知情况下进行准确预测。
大模型通过预测下一个符号,学习对世界的压缩表示。这使得它们能够高效地处理庞大复杂的数据集,获得对现实的深刻理解。
GPT 升级可通过泛化模型压缩来完成,无需原始数据训练。分布之间的泛化使模型能够将知识从大型模型压缩器转移到新任务中。
3. 涌现是模型对数据的数学结构深层理解和压缩
涌现能力指的是从简单规则中产生复杂行为或高级功能的能力,也称为顿悟。
基于 ICLR 研讨会论文 "Grokking" 的研究,如果持续训练模型至训练损失归零状态,它可能在较长一段时间后突然顿悟,实现泛化能力,即论文中提到的 "涌现" 现象。
令人惊叹的是,模型在训练集上迅速达到 100% 准确率,却在验证集上出现过拟合现象。当训练步数增加 3 个数量级后,验证集的准确率才逐渐上升,最终接近训练集。这表明,模型在早期过度关注训练集的细节,导致在验证集上的泛化能力较弱。随着训练的进行,模型逐渐学会了从训练集中提取更通用的特征,从而提高了验证集上的准确率。
在 a + b mod 67 模型验证实验中,通过划分 a、b 配对为训练和测试数据集,对模型进行训练和评估。训练数据用于调整模型,使之能够输出正确答案,而测试数据则用于验证模型是否已获得解决问题的通用能力。
初始训练阶段,模型权重分布嘈杂,即使测试准确率已达100%。
通过分析神经元循环频率,研究人员发现权重波动依然混乱,表明模型仍在学习和调整。
神经元活动展示出周期性模式,预示着测试准确性提升和模型泛化的出现。此发现为改善人工智能模型的性能提供了重要见解。
通过将数据推入模型,着重于长期泛化性能,而不是短期模型微调,可以应对具有挑战性的问题,该方法超越了分析算法改进的局限。
总结
训练集上的经验风险最小化模型是否能有效泛化至测试集中的新数据至关重要。VC维度和Rademacher复杂度等度量标准有助于评估模型的泛化能力,即使训练集和测试集存在差异。
联合压缩是最大似然估计的无过拟合适用。对于一个数据集,似然之和代表压缩成本,加上参数压缩成本。合并多个数据集时,似然之和会累加,无需考虑额外参数成本。
泛化理解的局限性不仅体现在定量模糊上,也无法解释关键的经验观察。Ilya的观点提供新的启发,值得进一步探讨。
如果觉得这篇文章对你有所帮助,请点一下赞或者在看,是对我的肯定和支持~
-对此,您有什么看法见解?-
-欢迎在评论区留言探讨和分享。-