独家 | 人工智能的记忆与泛化(附链接)

news2025/7/9 14:16:24

c58030b04dc83c010b61bc524ba88994.png

作者:Manuel Brenner
翻译:陈之炎

校对:赵茹萱


本文约4500字,建议阅读8分钟本文为你介绍了人工智能 记忆与泛化相关知识。

标签:人工智能,记忆,泛化

“对不可见数据的泛化能力是机器学习的核心。”

当前大多数人工智能研究的核心问题是如何将算法泛化到不可见数据。

在机器学习的背景下,大多数模型都是建立在数据是i.i.d.(独立同分布)的基础之上进行训练和评估的,它意味着对于同一个给定任务来说,需要对相同分布的训练数据和测试数据进行采样。泛化意味着需要从训练数据中提取出共享的底层分布。

对数据是i.i.d.的假设往往是一种理想状态,在现实世界中,却不一定行得通,因为环境在不断变化,所以 o.o.d.(非同分布)学习对模型的生存变得至关重要。

从当前现状来看,人类的泛化能力比机器要好得多:人类可以快速识别环境中的分布变化,是“小样本学习者”,从少数例子中便可以推断出规则。人类还可以根据所看到的先验数据,灵活地调整推理模型。对于许多经典的ML模型来说,这不可能成为现实:灾难性遗忘是一个经常出现的问题,神经网络模型在新的、不可见数据上训练时往往会突然忘记先前所学到的一切。

fa3c33198d96b352407ecf73e00c7069.png

记忆和人工智能,Dall-E的记忆

泛化与训练数据的过拟合和欠拟合问题密切相关,其中过拟合是指由于噪声过大或信号过小的原因,从而无法解释数据。解决过拟合的标准方法是采用低参数模型、剪枝模型和正则化技术(dropout、l2规一化等)。这些方法从直观上被质疑会发生双重下降现象(该Twitteer用一个简单的例子解释了双重下降现象如何与正则化相关联),由于会发生过拟合现象,高容量模型比低容量模型的泛化能力要差,但甚高容量模型的泛化能力却要比低容量模型要好得多。

由于GPT-3无法解决未经训练过的任务,所以对基于transformer的大规模模型的泛化能力也有了质疑。

2cf2d7ce31fd445add7cc45893307ddf.png 

d217d78ad7b163576a07804343ba577e.png

GPT-3论文的标题

DeepMind的新Flamingo将语言与视觉模型连接起来,整合了大量的视觉和语言组合任务:

f6d442a57b5f85f1fd01a4bd1c8df20d.png

神经网络这种跨任务泛化方式表示知识的能力,远远比在看到数百万个标记好的狗和猫的例子之后再对狗和猫进行分类的神经网络要聪明得多。

接着,这些模型又成功地提出了一系列有趣的问题:即泛化究竟意味着什么?如何实现?这些模型到底学到了什么?随着模型规模的不断增加,这些问题并没有变得更加容易回答,因为模型的参数数目已经接近于人类大脑中神经元的数量。模型的能力如此巨大,是否能以一种更加聪明的方式记住所有的训练数据,亦或能记住更多的内容?

泛化以重要的方式与记忆相互作用:其想法是,如果能从数据中提取出解意,便能获得比记忆更灵活、更浓缩的知识表示。在许多无监督的学习中,这已经成为了一项必要的任务,例如解纠缠表示学习。因此,不可见数据的泛化能力不仅是机器学习的核心,也是许多智能所定义的核心内容。

马库斯·哈特(Markus Hutter)认为,智能与无损压缩有许多相似之处,哈特奖授予将特定版本英文维基百科中包含1.000.000.000个字母的文本文件进行有无损压缩的先进技术,哈特和他的同事谢恩·莱格(Shane Legg)一起,将“智能”的定义浓缩成与心理学、机器学习和哲学相关的以下公式:

7bba87566ff9b42ef6d953b9b34d2ee4.png 

9817941b4da217096769618f29d2f196.png

简单地说,智能是指智能体(Agent)从全部环境空间中提取价值的能力,并根据环境的复杂性来确定权重。利用柯尔莫戈罗夫(Kolmogorov)复杂性函数来度量复杂程度:它是复杂程度的信息论度量,与生成它所需的最短行代码相对应,与将智能当成压缩的思想相关连,对应于最佳压缩、高效记忆的一种表示(我在关于“混沌理论和计算不可约性”的文章中更详细地讨论了类似的思想)。当发生噪声过拟合时,必须记住这个公式,因为在信息理论中,噪声是不相关的,是无意义的解释,它不包含与过去或未来相关的信息。

然而,虽然大家都认为泛化对于机器学习很重要,并且在某种程度上与复杂性有关,但它仍然难以度量,这篇谷歌论文汇编了40多个指标,旨在对复杂性和泛化进行描述,但结果却大相庭径。

神经网络的泛化能力与它们记住了多少内容以及它们学会忘记了多少内容有关。佩德罗·多明戈斯(Pedro Domingos)最近的一篇题为“通过梯度下降学习到的全部模型都将近似为内核机”一文,为这一讨论带来了一个有趣的新视角:

“深度网络……实际上等同于内核机在数学上的近似,即是一种学习方法,可以简单地记忆数据,并通过相似性函数(内核)直接用它进行预测。这大大提高了深度网络权值的可解释性,是对训练示例的有效叠加。”—佩德罗·多明戈斯

多明戈斯认为,神经网络中的学习与基于核的方法有许多数学上的相似之处,如支持向量机。

238053fbd3e3962ba618bd4065066504.png 

db25bb866780648d5a6f709fe7341dcf.png

核机通过非线性变换将数据点嵌入特征空间,在变换空间中,样本可以被线性分离。来源:Alisneaky向量:Zirguezi,CC BY-SA 4.0

简单地说,在基于核的方法中,训练数据首先通过非线性变换嵌入到一个新的空间,即所谓的特征向量空间。特征(嵌入空间的维度)可以具备直观的属性意义(如令人愉悦或恐怖的电影,或毛茸茸的猫),从更一般的意义上来讲,嵌入空间捕获的是对数据点之间的相似性(例如两部电影之间的幸福维度如何接近)的度量。一旦嵌入了特征之后,便可以将二者线性分离,例如,可以用k最近邻分类将二者分离开来,在特征空间中,可以将测试数据与k邻近数据点相比较,再根据邻近数据点的共同标记进行分类。(可以找出令人愉悦的电影或相似的电影)。

深度学习也解决了类似的问题:它的目的是找出嵌入空间中那些与测量样本之间相似的数据(对于人脸识别任务来说,即是找出相似的人脸图像)。另一方面,可以利用神经核推导出一个对应于无限宽神经网络的核函数,反之,用它来证明核函数的可用性,并为神经网络如何学习提供新的理论依据。

多明戈的论文揭示了用梯度下降学习模型和基于核技术模型二者之间的一个有趣的相似之处:在训练过程中,网络权值隐式地记住了待训练的数据。在推理过程中,“被记住的”训练数据和由神经网络表示的非线性变换一起工作,将一个测试点与先前的数据进行比较,并根据核方法对其进行分类。

虽然模型尚未对这其中的含义完全理解,但也可以解释为什么用梯度下降训练的神经网络一直在与o.o.d.作斗争中进行学习:如果训练确实依赖于记忆的话,那么遵循前文讨论过的逻辑,模型在没有遗忘(正则化)之前,泛化能力会变差。因此,这一观点也可以用于阐明如何更好地正则化模型以实现泛化。

ff279d8302a921f8c95b30ae71e8a1e8.png 

51667bf52b9c250a7a97ab9bd58491e9.png

记忆, Dall-E的记忆

记忆关注的是跨时间信息的存储和检索,因此记忆问题在时间序列分析领域中也同样重要。递归神经网络(RNNs)和长-短期记忆网络(LSTMs)是时间序列数据建模中最为流行的两种模型。

经典的记忆序列模型基准带来了另一个问题,模型的任务变成:添加两个时间点t1和t2的输入,并在另一个时间点T输出正确的二者之和,为此,模型应保留住更长时间内的信息,对于基于梯度的方法来说,随着t1和t2之间时间滞后的增加,训练难度也随之增大。这与梯度消失和爆炸梯度问题有关,因为在序列模型反向传播的同时,t时刻同一层的多次循环调用会引发(对于混沌系统的时间序列,必然会发生)梯度消失和爆炸梯度,从而导致经常性梯度爆炸或消失的出现,间接地提高了循环模型的成本,甚至无法在特定任务上进行训练。

保留记忆的困难与降低学习时间尺度的困难相关:实验表明,通过减缓RNN动态子空间(所谓的线吸引子)可以解决由子空间带来的问题,可以稳定地保留住信息,不受网络其他部分的动态影响。

20世纪被引用次数最多的LSTM神经网络架构,通过显式添加一个单元状态来解决记忆问题,该状态可保留任意时间内的信息,用一个输入门、一个输出门和一个遗忘门来控制信息的流向。因此,LSTM比普通RNN更能在“记住”数千个时间步长的信息,解决诸如加法问题等任务。

正如前文所述,这种记忆方式也存在其自身的缺点:通过记住信息而不是通过理解来压缩信息,更容易引发“过度匹配”问题。

物理学家用动力系统的语言来描述时间序列,从牛顿定理到薛定谔方程,是大多数物理理论对于世界的动态描述的核心要义:

077643bf7446b1ed1d6c67c560ebe690.png

62b6e43d496f308c4a43daba6261957a.png 薛定谔方程是用一个微分方程组来描述系统

这种通过微分方程来描述现实世界的方式,其特征是无记忆的。给定系统的初始状态,再利用时间演化算子对系统进行完整的描述(即哈密顿量),系统的时间演化过程都是已知的(甚至是时间的对称反转,不会发生信息丢失)。因此,没有必要记忆信息:在描述确实是完整的前提下,从柯尔莫戈罗夫复杂度的角度,可以完美进行压缩。

在动力系统重构领域,机器学习更加关注如何从时间序列中再现出一个动力系统,带有记忆的模型实际上有百害而无一利,在找到无记忆体最优解的同时,泛化往往会加大失败的风险,通过记住训练数据的各种模式会引发过拟合。对于复杂(动态)系统的学习模型来说,这是一个旷日持久的挑战,比如在描述大脑或气候时,如何泛化系统的正确描述,捕获系统的长期行为特征,有着诸多重要的实际意义。例如在预测动态系统的爆发点时,这些数据在预测极端天气事件或气候变化的长期影响方面发挥了重要作用。然而,大多数真实世界的系统都是有噪声的、混沌的,而且只能观察到部分环节,所以如何从噪声中分离出信号仍然是一个巨大的挑战。

在许多实际应用中,往往无法观察到周边世界的完整描述和认知。利用记忆,特别是在无法获取到现实描述的压缩数据的情况之下,记忆已然成为了构建现实智能系统的一个关键因素,也成为了人类自身智能的一个明确特征。笔者认为:通过从这个角度来思考泛化和记忆的相互作用关系,有助于设计出更好的泛化算法。

原文标题:

Memory and Generalization in Artificial Intelligence

原文链接:

https://towardsdatascience.com/memory-and-generalization-in-artificial-intelligence-35e006ca0a9a

编辑:王菁

校对:林亦霖

译者简介

a65de661c5a4134549a5fb9855ee77a0.jpeg

陈之炎,北京交通大学通信与控制工程专业毕业,获得工学硕士学位,历任长城计算机软件与系统公司工程师,大唐微电子公司工程师,现任北京吾译超群科技有限公司技术支持。目前从事智能化翻译教学系统的运营和维护,在人工智能深度学习和自然语言处理(NLP)方面积累有一定的经验。业余时间喜爱翻译创作,翻译作品主要有:IEC-ISO 7816、伊拉克石油工程项目、新财税主义宣言等等,其中中译英作品“新财税主义宣言”在GLOBAL TIMES正式发表。能够利用业余时间加入到THU 数据派平台的翻译志愿者小组,希望能和大家一起交流分享,共同进步

翻译组招募信息

工作内容:需要一颗细致的心,将选取好的外文文章翻译成流畅的中文。如果你是数据科学/统计学/计算机类的留学生,或在海外从事相关工作,或对自己外语水平有信心的朋友欢迎加入翻译小组。

你能得到:定期的翻译培训提高志愿者的翻译水平,提高对于数据科学前沿的认知,海外的朋友可以和国内技术应用发展保持联系,THU数据派产学研的背景为志愿者带来好的发展机遇。

其他福利:来自于名企的数据科学工作者,北大清华以及海外等名校学生他们都将成为你在翻译小组的伙伴。

点击文末“阅读原文”加入数据派团队~

转载须知

如需转载,请在开篇显著位置注明作者和出处(转自:数据派ID:DatapiTHU),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。

发布后请将链接反馈至联系邮箱(见下方)。未经许可的转载以及改编者,我们将依法追究其法律责任。

016704272f5a1ef8440576b404fbb15b.png

点击“阅读原文”拥抱组织

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/36876.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

测试用例设计方法之场景设计法

基本流:采用直黑线表示,是经过用例的最简单的路径(无任何差错,程序从开始直接执行到结束) 备选流:采用不同颜色表示,一个备选流可能从基本流开始,在某个特定条件下执行,…

声明变量let和const

1.let的声明 JavaScript中用var关键字来声明变量,而在ES6中,还可以使用新增的let的关键字来声明变量。与var不同的是let声明的变量只能在代码块中有效。 {let a5;var b6;console.log(a);console.log(b);} 执行结果: 能正常输出,…

178:vue+openlayers 加载多种形式Esri地图

第178个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+openlayers中绘制自定义图形,利用Geojson的writeFeatures,来生成geojson格式的数据,然后使用file-saver来导出geojson。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果; 注意如果OpenStreetM…

【论文阅读】半监督时序动作检测 Semi-Supervised Action Detection

文章目录1. Learning Temporal Action Proposals With Fewer Labels (ICCV 2019)论文目的——拟解决问题贡献——创新实现流程详细方法2. Self-Supervised Learning for Semi-Supervised Temporal Action Proposal (CVPR 2021)论文目的——拟解决问题贡献——创新实现流程详细方…

微服务之间,最佳的调用方式是什么?

在微服务架构中,需要调用很多服务才能完成一项功能。服务之间如何互相调用就变成微服务架构中的一个关键问题。服务调用有两种方式,一种是RPC方式,另一种是事件驱动(Event-driven)方式,也就是发消息方式。消…

多模态实战视频生成文本:基于VGG与LSTM实现图像对应的描述文本生成任务

任务描述:本教程将帮助你利用深度学习的方法为照片等图像自动生成文字描述,图像描述是结合计算机视觉与自然语言处理的综合任务,输入一幅图像, 输出一段描述该图像的文字,这一任务要求模型可以识别图片中的物体、理解物体间的关系,并用一句自然语言表达出来。 运行环境:在…

体系结构30_同步性能问题

栅栏(barrier)同步 栅栏强制所有到达该栅栏的进程进行等待,直到全部的进程到达栅栏,然后释放全部的进程,从而形成同步。 栅栏的典型实现是要用两个旋转锁:一个用来记录到达栅栏的进程数,另一个用…

Java 对象拷贝原理剖析及最佳实践

1 前言 对象拷贝,是我们在开发过程中,绕不开的过程,既存在于 Po、Dto、Do、Vo 各个表现层数据的转换,也存在于系统交互如序列化、反序列化。 Java 对象拷贝分为深拷贝和浅拷贝,目前常用的属性拷贝工具,包…

【外卖项目实战开发二】

文章目录1、完善登录功能问题分析代码实现2、新增员工需求分析数据模型代码开发3、员工信息分页查询需求分析代码开发4、启用/禁用员工账号需求分析代码开发代码修复5、编辑员工信息需求分析代码开发1、完善登录功能 问题分析 前面我们已经完成了后台系统的员工登录功能开发&…

zabbix集群搭建分布式监控的操作步骤

作用: 分担server的集中式压力解决多机房之间的网络延迟问题环境准备: 服务器1:zabbix-server 服务器2:zabbix-proxy 服务器3:zabbix-agent 关系:zabbix-agent发送数据到代理,代理汇总数据发送…

Linux多核运行机制(SMP)

一、Linux内核兼容多处理器要求 有多个 CPU 处理器 的 系统中 , Linux 内核需要处理的问题 : 1、公平共享 : CPU 的负载 , 需要公平地共享 , 不能出现某个CPU空闲 , 造成资源浪费。 2、可设置进程 与 CPU 亲和性 : 可以为 某些类型的 进程 与 指定的 处理器设置亲和性 , 可以针…

QT:debug,打不开头文件以及qDebug和Q_CLASSINFO的使用

这个是因为链接器在给定路径上搜索不到对应的头文件,而大多数的Qt相关的头文件都集中在一个include文件夹里: 我电脑上的路径是:C:\Qt\Qt5.9.7\5.9.7\msvc2017_64\include 然后我们在项目设置里: 注意,这边要加上\*&…

【Java】Assert.assertEquals断言

Assert.assertEquals 1.概述 在开发中,我们需要测试时候,不可能把全部程序运行一次,在此我们就需要通过编写单元测试来对程序进行测试了。在 Assert 类里面有大量的静态方法,本篇的主角就是 Assert.assertEquals 这个静态方法。该…

day12_类中成员之方法

成员变量是用来存储对象的数据信息的,那么如何表示对象的行为功能呢?就要通过方法来实现 方法 概念: 方法也叫函数,是一个独立功能的定义,是一个类中最基本的功能单元。把一个功能封装为方法的目的是,可…

【知识网络分析】 一模网络(one node)

一模网络(one node) 1 本地文献读取并构建一模网络数据集2 网络数据集精简3 网络数据集中节点信息大小写转化4 获取一模网络中可使用的mode标签5 网络数据集清洗(以武汉大学信息管理学院为例)5.1 创建映射5.2 求解节点中count属性数值5.3 处理网络数据中的连线信息5.4 处理…

中文版:Spread .NET 16.0 -Winform-WPF-ASP.NET

Spread .NET 是一个功能、布局与 Excel 高度类似的 .NET表格控件,可全面满足 WinForm、ASP.NET、XAML 和 WinRT 等平台下表格数据处理、数据可视化开发需求。Spread .NET 支持 462 种 Excel 公式,提供可嵌入系统的类Excel设计器和全面开放的 API&#xf…

使用Python进行交易策略和投资组合分析

我们将在本文中衡量交易策略的表现。并将开发一个简单的动量交易策略,它将使用四种资产类别:债券、股票和房地产。这些资产类别的相关性很低,这使得它们成为了极佳的风险平衡选择。 动量交易策略 这个策略是基于动量的的,因为交易者和投资者…

美食杰项目 -- 编辑个人资料(六)

目录前言:具体实现思路:步骤:1. 展示美食杰编辑个人资料效果2. 引入element-ui3. 代码总结:前言: 本文给大家讲解,美食杰项目中 实现编辑个人资料页的效果,和具体代码。 具体实现思路&#xff…

【Java面经】阿里三面被挂、幸获内推,历经5轮终于拿到口碑offer

每一个互联网人心中都有一个大厂梦,百度、阿里巴巴、腾讯是很多互联网人梦寐以求的地方,而我也不例外。但是,BAT等一线互联网大厂并不是想进就能够进的,它对人才的技术能力和学历都是有一定要求的,所以除了学历以外&am…

面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了

由于现在大多计算机都是多核CPU,多线程往往会比单线程更快,更能够提高并发,但提高并发并不意味着启动更多的线程来执行。更多的线程意味着线程创建销毁开销加大、上下文非常频繁,你的程序反而不能支持更高的TPS。 时间片 多任务…