当前位置: 首页 > news >正文

人工智能模型组合学习的理论和实验实践

        组合学习,即掌握将基本概念结合起来构建更复杂概念的能力,对人类认知至关重要,特别是在人类语言理解和视觉感知方面。这一概念与在未观察到的情况下推广的能力紧密相关。尽管它在智能中扮演着核心角色,但缺乏系统化的理论及实验研究方法,使得分析计算模型的组合学习能力变得困难。

        本文将对组合学习的各个方面进行全面的调查,包括:

  • 认知方面:探讨认知科学和语言学中定义的组合学习任务,并将其与现有数据集联系起来。
  • 计算模型:概述旨在解决组合学习问题的各种计算模型,包括基本神经网络模型、大型语言模型和定制架构(包括神经符号模型)。
  • 评估范式:介绍理论和实验两种评估方法,以评估模型的组合学习能力。

1 组合学习五个主要的组合性度量标准

组合性是整体泛化能力的一个重要方面。认知科学和语言学文献已经确定了定义组合性的任务的广泛分类,这些任务可以用来评估模型的组合推理能力。人类自然语言的基础在于组合性。一个常用的任务分类,定义了五个主要的组合性度量标准:系统性(Systematicity)、生成性(Productivity)、替代性(Substitutivity)、局部性(Localism)和过度泛化(Overgeneralization)

1.1 系统性组合 (Systematicity Composition)

系统性是评估架构性能时最常用的组合性概念之一。它被定义为系统地重新组合已知部分和规则的能力。在评估模型的组合推理能力时,将已知元素句法组合成新的或“未见过”的表达式的能力是一个重要的测试。这也被称为基于分布的组合性评估,其中定义了两个原则:一是确保原子的分布在训练集和测试集中相似,另一个是确保复合物的分布在训练集和测试集中不同。

1.1.1 任务示例

  • 将不同的形容词和名词组合成新的名词短语,例如,将“高”和“大”组合成“高大”。
  • 将不同的动词和名词组合成新的动词短语,例如,将“吃”和“苹果”组合成“吃苹果”。

1.1.2 数据集:CREPE, SCAN, gSCAN, PCFG SET, COGS

1.2  生成性/长度泛化 (Productivity/Length Generalization)

另一种常用的组合性测试是长度泛化或生成性,模型在比训练数据更长的表达式或序列上的性能被测试

1.2.1 任务示例

  • 理解并操作包含多个嵌套条件的逻辑表达式,例如,“如果A且B,则C;否则,D”。
  • 理解并操作包含多个步骤的程序,例如,编写一个程序来计算阶乘。

1.2.2 数据集:CREPE, PCFG SET, CFQ, COGS

1.3 替代性/同义性 (Substitutivity/Synonymity)

性是评估能够理解并操作表达式中同义词的使用

1.3.1 任务示例

  • 将包含同义词的表达式翻译成其他语言,例如,将“我喜欢吃水果”翻译成“我喜欢吃苹果”。
  • 理解并操作包含同义词的句子,例如,“我喜欢吃水果,尤其是苹果”。

1.3.2 数据集:PCFG SET

1.4 局部性 (Localism)

组合性的另一个细微差别是全局与局部组合的概念根据组合性原则,组合运算符的局部性可以变化。复杂表达式的含义可以仅依赖于其直接部分的含义(局部组合),或依赖于上下文的全局结构。局部性可以通过分析模型赋予独立复合物的含义与当该复合物是更大表达式的一部分时的含义来测试。

1.4.1 任务示例

  • 理解并操作包含局部和全局组合关系的句子,例如,“我喜欢吃水果,尤其是苹果”。
  • 理解并操作包含指代关系的句子,例如,“他喜欢吃水果,尤其是苹果”。

1.4.2 数据集:PCFG SET

1.5 泛化过度 (Overgeneralization)

过度泛化,评估模型更倾向于选择例外而非规则的程度。

1.5.1 任务示例

理解并操作包含规则例外情况的句子,例如,“狗是动物,但不是所有动物都是狗”。

理解并操作包含反例的句子,例如,“苹果是水果,但不是所有水果都是苹果”。

1.5.2 数据集:PCFG SET

2 抽象任务和数据集

2.1 系统性组合

  • CREPE:这是一个合成数据集,用于评估模型在描述图像方面的组合学习能力。主要任务设置是,给定一张图片,模型需要从多个给定选项中识别出合适的文本标题。这种系统性挑战测试了模型是否能够在训练期间系统地生成新的组合,这些组合在训练期间未曾观察到,例如“在平底锅上的可丽饼”(Crepe on a skillet),尽管在不同的上下文中分别观察到了可丽饼和平底锅。
  • SCAN:这是一个导航任务数据集,用于评估模型在理解自然语言指令方面的组合学习能力。模型需要根据指令在二维网格世界中导航。
  • gSCAN:这是一个基于SCAN的地面数据集,用于评估模型在理解自然语言指令方面的组合学习能力。模型需要根据指令在二维网格世界中导航,并理解指令中的新颖组合。
  • PCFG SET:这是一个基于概率上下文无关语法的数据集,用于评估模型在翻译语法表达式方面的组合学习能力。模型需要将语法表达式翻译成表示其意义的序列。
  • COGS:这是一个语义解析数据集,用于评估模型在理解英语句子方面的组合学习能力。模型需要确定输入句子的形式意义表示。

2.2 生产力/长度泛化

  • CREPE:除了系统性任务,CREPE还包含生产力任务,用于评估模型处理长序列的能力。
  • PCFG SET:PCFG SET包含多个子数据集,其中一些子数据集用于评估模型处理长序列的能力。
  • CFQ:这是一个基于知识图谱的自然语言问答数据集,用于评估模型在理解自然语言问题方面的组合学习能力。CFQ包含多个子数据集,其中一些子数据集用于评估模型处理长序列的能力。
  • COGS:COGS包含多个子数据集,其中一些子数据集用于评估模型处理长序列的能力。

2.3 其他泛化标准

PCFG SET:唯一一个评估其他三个额外标准的基准。PCFG SET还包含其他三个子数据集,分别用于评估模型的可替换性、局部性和泛化过度能力。

3 组合学习模型

3.1 经典神经网络模型

对不同的神经模型进行了组合学习任务的测试评估了长短期记忆网络(LSTM)、卷积神经网络(CNN)和变换器(Transformers)在序列到序列语言处理任务上的表现,这些任务是PCFG SET任务。平均来看,变换器(Transformers)在这些任务上的表现优于其他两种模型,但在两种经典神经模型中,卷积模型比LSTM表现得更好

3.2 基于Transformer架构模型

大型语言模型的组合能力目前是一个有争议的话题。它们已经在本质上是组合一般任务上进行了评估,例如算术、逻辑和动态规划。GPT系列变换器通过将问题简化为线性子图匹配来解决这些任务,而没有发展出真正的组合推理能力。

变换器在组合任务上表现的具体架构因素, 1)位置编码的类型,2)使用复制解码器,3)模型大小,4)权重共享,5)使用中间表示进行预测-在几个不同的数据集和基准上。所采用的任务包括加法、加法负数、反转、复制、笛卡尔积、交集、SCAN长度和SCAN加跳、PCFG生成性和系统性、COGS和CFQ-mcd1。

结论如下:

  • 相对位置编码通常有帮助,但使用嵌入是必要的,仅仅使用相对位置偏见是不够的。
  • SCAN和CFQ这样的任务没有受到位置嵌入的影响。
  • 复制或PCFG这样的任务从复制解码器中受益,因为它可以学习一种像学习输入的某个位置一样的对称性。
  • 就模型大小而言,发现对于算法任务,大型模型并没有帮助。
  • 对于PCFG,大型模型优于它们的小型变体。

3.3 神经符号架构模型

在对智能系统建模的尖端研究中,神经符号建模是一个日益增长的趋势。随着对通用人工智能模型的需求不断增长,需要高度组合的模型,这些模型可以根据以前训练的更简单任务进行推理,以完成新颖和复杂的任务。

一种方法是使用自然语言解释来生成正式规范,这些规范明确地以所需更简单步骤的形式列出组合任务。然后,将正式规范传递给适当的引擎来解决问题。遵循这种方法的著名视觉理解模型是VisProg。VisProg是一个模块化的神经符号模型,可以在给定自然语言指令的情况下,仅依赖于大型语言模型的上下文学习,解决各种组合视觉推理任务。它生成Python模块程序以获得解决方案。这种方法为模型如何推导出解决方案提供了可解释的推理。这些模块程序使用VisProg支持的内置模块,例如现成的神经计算机视觉模型、图像预处理模块或Python子程序,并在没有特定任务训练的情况下解决复杂任务。

另一个方法是从未加语言解释中生成问题的正式逻辑规范,并将逻辑形式传递给逻辑推理引擎。这项工作使用像GPT-3或GPT-3.5 Turbo这样的大型语言模型,通过将复杂组合任务分解为基于推理链的更小步骤,为解决复杂组合任务提供“指南”。类似于此,许多最近的工作集中在可以使用的不同的提示策略上,这些策略可以通过模块化方法解决复杂组合任务。

4 理论发现

4.1 经典神经网络模型

  • 循环神经网络 (RNN): RNN 模型在组合泛化方面表现出一定的能力,能够生成具有特定嵌套深度的自然语言句子。然而,RNN 的泛化能力受到其内存和计算复杂度的限制。
  • 卷积神经网络 (CNN): CNN 模型在组合泛化方面也展现出潜力,能够处理视觉任务中的组合结构。然而,CNN 的组合泛化能力仍需进一步研究和提升。

4.2 基于Transformer架构模型

  • 精度限制: Transformer 模型在处理长输入序列时存在精度限制,这限制了其在解决高度复杂的组合任务方面的能力。
  • 注意力机制: 硬注意力机制导致 Transformer 忽略大部分输入信息,而软注意力机制难以处理长输入序列。这些局限性限制了 Transformer 在组合泛化方面的表现。
  • 潜在突破: 通过引入中间表示、改进位置编码、使用复制解码器等技术,可以提升 Transformer 模型的组合泛化能力。

4.3 大型语言模型 (LLM)

  • 涌现能力: LLM 在组合泛化方面展现出涌现能力,能够在特定任务上表现出超越其参数规模的性能。然而,这种涌现能力的存在性和本质仍存在争议。
  • 数据污染: LLM 的训练数据规模庞大,存在数据污染问题,这影响了其在组合泛化方面的评估。
  • 认知动机: LLM 在组合泛化方面的能力与人类认知存在差异,需要进一步研究和改进。

5 未来方向

已经有大量研究从认知角度探讨了人类的组合学习能力。语言学和形式语言研究人员自从语言具有固有的组合结构以来就对组合性概念进行了形式化。然而,从人工智能和机器学习的角度来看,想法是从认知和语言学中借鉴的,计算任务和模型的设计集中在组合性的少数几个方面

  • 设计更具组合泛化能力的神经网络架构,例如神经模块网络、Pushdown Layers 等。
  • 开发新的学习算法,例如基于认知科学原理的学习算法,以提升 AI 模型的组合泛化能力。
  • 建立更完善的评估体系,以准确评估 AI 模型的组合泛化能力。
  • 探索神经符号模型和神经组合计算在组合泛化方面的潜力。

相关文章:

人工智能模型组合学习的理论和实验实践

组合学习,即掌握将基本概念结合起来构建更复杂概念的能力,对人类认知至关重要,特别是在人类语言理解和视觉感知方面。这一概念与在未观察到的情况下推广的能力紧密相关。尽管它在智能中扮演着核心角色,但缺乏系统化的理论及实验研…...

MySQL备份与恢复:确保数据的安全与可靠性

引言: 数据的安全性和可靠性的重要性 在现代企业和组织中,数据已经成为了最重要的资产之一。数据的安全性和可靠性对于企业的运营至关重要。首先,数据的安全性保证了敏感信息不会落入错误的手中,防止了潜在的经济损失和法律风险。其次,数据的可靠性则确保了企业能够准确…...

Noisee AI – AI音乐影片MV在线生成工具,专门为Suno的好搭子来了~

导读 现在很多各大平台,抖音、快手、微视,还不能直接发布音频文件,如果有一个好听的音乐想做成MV,怎么办呢? 这时候就是Noisee AI的主场,上传一段音乐加上简单的描述就可以在3-5分钟内生成一个可以发布到…...

实战计算机网络02——物理层

实战计算机网络02——物理层 1、物理层实现的功能2、数据与信号2.1 数据通信模型2.2 通信领域常用术语2.3 模拟信号和数字信号 3、信道和调制3.1 信道3.2 单工通信、半双工通信、全双工通信3.3 调制3.4 奈式准则3.5 香农定律 4、传输媒体4.1 导向传输媒体4.2 非导向传输媒体 5、…...

Doris:冷热分层

目录 一、冷热分层介绍 二、存储策略(Storage policy) 2.1 创建存储资源 2.2 创建存储策略 2.3 使用存储策略 三、使用限制 一、冷热分层介绍 冷热分层支持所有 Doris 功能,只是把部分数据放到对象存储上,以节省成本&am…...

28.启动与暂停程序

上一个内容:27.设计注入功能界面 以它 27.设计注入功能界面 的代码为基础进行修改 点击添加游戏按钮之后就把游戏启动了 CWndINJ.cpp文件中修改: void CWndINJ::OnBnClickedButton1() {// TODO: 在此添加控件通知处理程序代码/*ExeLst.InsertItem(0, L…...

404 页面代码

<template> <div class"container"><h1>404</h1> <div ><p class"text-center">当前页面无法访问,可能没有权限或已删除</p><p class"text-center"> 去别处看看吧</p> </div> <…...

java设计模式和面向对象编程思想

Java设计模式和面向对象编程思想是软件开发中的核心概念&#xff0c;对于构建可维护、可扩展的软件系统至关重要。下面是对这两个主题的知识点总结&#xff1a; 面向对象编程&#xff08;OOP&#xff09;思想 封装&#xff1a;将数据&#xff08;属性&#xff09;和操作这些数据…...

超万卡训练集群网络互联技术解读

超万卡训练集群互联关键技术 大模型迈向万亿参数的多模态升级&#xff0c;万卡集群计算能力亟需飞跃。关键在于增强单芯片性能、提升超节点算力、融合DPU多计算能力&#xff0c;并追求算力能效比极致。这一系列提升将强有力支撑更大规模模型训练和推理&#xff0c;快速响应业务…...

AtomicInteger类介绍

文章目录 一、AtomicInteger的定义二、AtomicInteger的使用场景和作用1.使用场景2.作用 三、AtomicInteger的常用方法四、AtomicInteger的底层原理五、AtomicInteger和Integer的区别1.数据类型与线程安全性2.默认值与初始化3.常用方法与操作&#xff1a;4.内存模型与可见性5.使…...

Es 索引查询排序分析

文章目录 概要一、Es数据存储1.1、_source1.2、stored fields 二、Doc values2.1、FieldCache2.2、DocValues 三、Fielddata四、Index sorting五、小结六、参考 概要 倒排索引 优势在于快速的查找到包含特定关键词的所有文档&#xff0c;但是排序&#xff0c;过滤、聚合等操作…...

【C语言】解决C语言报错:Format String Vulnerability

文章目录 简介什么是Format String VulnerabilityFormat String Vulnerability的常见原因如何检测和调试Format String Vulnerability解决Format String Vulnerability的最佳实践详细实例解析示例1&#xff1a;直接使用不受信任的输入作为格式化字符串示例2&#xff1a;未验证格…...

Python深度学习:Bi-LSTM和LSTM在网络上有什么区别,对比来看

文章目录 LSTM代码解释类定义和构造函数前向传播方法 (`forward`)总结Bi-LSTMLSTM 代码 class BaseLSTMModel(nn.Module):def __init__(self, input_dim, hidden_dim, layer_dim, class_num):super().__init__...

Keepalived LVS群集

一、Keepalived案例分析 企业应用中&#xff0c;单台服务器承担应用存在单点故障的危险 单点故障一旦发生&#xff0c;企业服务将发生中断&#xff0c;造成极大的危害 二、Keepalived工具介绍 专为LVS和HA设计的一款健康检查工具 支持故障自动切换&#xff08;Failover&#…...

harbor问题总结

1. http协议的仓库docker login不上&#xff0c;更改/etc/docker/daemon.json&#xff0c;加一个镜像仓库地址 http: server gave HTTP response to HTTPS client 分析一下这个问题如何解决中文告诉我详细的解决方案-CSDN博客 2. Error response from daemon: login attempt t…...

windows系统,家庭自用NAS。本地局域网 Docker安装nextcloud

windows系统&#xff0c;家庭自用NAS。本地局域网 Docker安装nextcloud 1、docker安装 太简单了&#xff0c;直接去搜一搜。 docker-compose 相关命令 docker-compose down docker compose up -d2、还是使用老的 在你需要挂载的目录下&#xff0c;新建一个文件&#xff0c;…...

迅狐跨境商城系统|全平台兼容|前端采用uni-app跨端框架,后端采用ThinkPHP5框架

高效实现全平台兼容的迅狐跨境商城系统 迅狐跨境商城系统是一款专为跨境电商企业设计的全平台兼容系统。其前端采用uni-app跨端框架&#xff0c;后端采用ThinkPHP5框架&#xff0c;旨在实现高效的开发和运营管理。 1. 全平台兼容的前端设计 迅狐跨境商城系统的前端采用uni-a…...

Elixir学习笔记——进程(Processes)

在 Elixir 中&#xff0c;所有代码都在进程内运行。进程彼此隔离&#xff0c;彼此并发运行并通过消息传递进行通信。进程不仅是 Elixir 中并发的基础&#xff0c;而且还提供了构建分布式和容错程序的方法。 Elixir 的进程不应与操作系统进程混淆。Elixir 中的进程在内存和 CPU…...

困惑度作为nlp指标的理解示例

为了更清晰地说明困惑度的计算过程以及如何通过困惑度判断模型的优劣&#xff0c;我们可以通过一个简单的例子来演示。假设我们有一个非常简单的文本语料库和两个基础的语言模型进行比较。 示例文本 假设我们的文本数据包括以下两个句子&#xff1a; “cat sits on the mat”…...

01 Pytorch 基础

paddle不需要放数据到gpu&#xff01; 区别&#xff1a;1.batch_norlization 不同 2. 1.数据处理 1.取一个数据&#xff0c;以及计算大小 &#xff08;剩下的工作&#xff0c;取batch&#xff0c;pytorch会自动做好了&#xff09; 2.模型相关 如何得到结果 3.模型训练/模型…...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持&#xff0c;不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

CSS设置元素的宽度根据其内容自动调整

width: fit-content 是 CSS 中的一个属性值&#xff0c;用于设置元素的宽度根据其内容自动调整&#xff0c;确保宽度刚好容纳内容而不会超出。 效果对比 默认情况&#xff08;width: auto&#xff09;&#xff1a; 块级元素&#xff08;如 <div>&#xff09;会占满父容器…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局&#xff1a;刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断"&#xff0c;医生需通过显微镜观察组织切片&#xff0c;在细胞迷宫中捕捉癌变信号。某省病理质控报告显示&#xff0c;基层医院误诊率达12%-15%&#xff0c;专家会诊…...

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问&#xff08;基础概念问题&#xff09; 1. 请解释Spring框架的核心容器是什么&#xff1f;它在Spring中起到什么作用&#xff1f; Spring框架的核心容器是IoC容器&#…...

Docker 本地安装 mysql 数据库

Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker &#xff1b;并安装。 基础操作不再赘述。 打开 macOS 终端&#xff0c;开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...

springboot整合VUE之在线教育管理系统简介

可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生&#xff0c;小白用户&#xff0c;想学习知识的 有点基础&#xff0c;想要通过项…...

LLMs 系列实操科普(1)

写在前面&#xff1a; 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容&#xff0c;原视频时长 ~130 分钟&#xff0c;以实操演示主流的一些 LLMs 的使用&#xff0c;由于涉及到实操&#xff0c;实际上并不适合以文字整理&#xff0c;但还是决定尽量整理一份笔…...

DingDing机器人群消息推送

文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人&#xff0c;点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置&#xff0c;详见说明文档 成功后&#xff0c;记录Webhook 2 API文档说明 点击设置说明 查看自…...

华为OD机考-机房布局

import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...

通过MicroSip配置自己的freeswitch服务器进行调试记录

之前用docker安装的freeswitch的&#xff0c;启动是正常的&#xff0c; 但用下面的Microsip连接不上 主要原因有可能一下几个 1、通过下面命令可以看 [rootlocalhost default]# docker exec -it freeswitch fs_cli -x "sofia status profile internal"Name …...