当前位置: 首页 > 编程日记 > 正文

Meta AI 新研究,统一模态的自监督新里程碑

35ff04d18e7c0cbb8909c6e22af5ad4f.gif

作者 | 青苹果

来源 | 数据实战派

虽然 AI 领域不断涌现出新的突破和进展,却始终难以逃离单一领域的束缚——一种用于个性化语音合成的新颖方法,却并不能用于识别人脸的表情。

为了解决这个问题,不少研究人员正在致力于开发功能更强大、应用更广泛的 AI 工具:无论在口头、书面还是视觉材料上,都可以实现自主学习。

传统训练 AI 模型正确理解某些内容的方法是,提供大量(比如数百万个)有标记的例子。

试想一下,一幅标有猫的部分特征的图片,一段与演讲者的对话或摘录的文本,等等。但这种方法日趋淘汰,因为研究人员发现,手动创建训练下一代 AI 所需的数据库已不再可行。试想一下,谁想给 5000 万张猫的照片贴上标签呢?好吧,可能有几个人;但是谁又愿意给 5000 万张常见水果和蔬菜的照片贴上标签呢?答案明显是否定的。

目前,最有前景的一些 AI 系统采用的就是所谓的“自我监督”(self - supervision):模型可以在大量无标签数据(比如人们互动的书籍或视频)中运行,并建立自己对系统规则的结构化理解。例如,模型通过阅读 1000 本书,会自主学习语法结构,包括单词的相对位置,而无需任何人告诉它什么是宾语、冠词或逗号……这些完全可以从大量的例子中推理得出。

就在近日,基于上述理论,来自 Meta 的研究团队发表了一篇题为“data2vec: A General Framework for Self-supervised Learning in Speech, Vision and Language”的论文。

在这项研究中,开发人员构建了一个名为 data2vec 的框架,可以跨语音处理、NLP 和计算机视觉(CV, Computer Vision)使用相同的学习方法,极大地克服了单一开发模式的缺陷,提高了模型的通用性能。

其核心思想是,在使用标准 Transformer 体系结构的自蒸馏设置中,基于输入的掩码视图(masked view)预测完整输入数据的潜在表示。data2vec 并非是预测特定模式的目标,比如像单词、视觉 tokens 或语言单元等,而是预测包含来自整个输入信息的上下文潜在表示。通过在语音识别、图像分类和自然语言理解的主要基准上进行实验,有力证明了该方法的技术水平和优异性能。

从直觉上看,这更像是人们学习的方式,这也是研究人员喜欢它的原因之一。但是这些模型仍然趋向于单模态,也就是说,你为建立语音识别的半监督学习系统所做的所有工作根本不适用于图像分析,两者无疑是大相径庭。从而,这就更加突显出 Meta 这项最新研究的意义所在。

然而从本质上看,data2vec 的想法就是建立一个 AI 框架,然后以更抽象的方式学习。这便意味着一切从零开始,你可以准备一些可阅读的书籍、可扫描的图像或有声的读物供其训练,以使模型达到学习这些知识的目的。这有点像从一粒种子开始,给它不同植物的生存环境和营养条件,使其开出不同的花朵,如水仙、三色堇或郁金香。

总而言之,团队提出的方法就是将掩码预测与潜在目标表示的学习相结合,只不过是通过使用多个网络层作为目标,对后者进行推广,并表明该方法适用于多种模式。

0d698eeafb254e7f0e9acd08382353ac.png

具体来说,如 图 1 所示,团队成员需要训练一个现成的可以在教师模式和学生模式中使用的 Transformer 网络:首先需要构建完整的输入数据表示,其目的是充当学习任务中的目标(教师模式)。接下来,对输入样本的掩码版本进行编码,用它预测完整的数据表示(学生模式)。教师的权重是学生权重指数衰减的平均值。由于不同的模式有着截然不同的输入,例如,像素和单词,因此,团队采用了特定于模式的特征编码器和掩码策略。

在整体架构上,采用标准 Transformer 体系结构,并沿用先前的工作对输入数据进行特定模式的编码。

对于 CV,团队成员采用了 ViT 策略,将图像编码为一系列补丁序列,每个补丁跨越 16x16 像素,输入到线性变换之中。语音数据使用多层一维 CNN 进行编码,该网络将 16 kHz 波形映射为 50 Hz 表示。对文本进行预处理以获得子词单元,然后通过学习得到的嵌入向量将其嵌入到分布空间中。

在训练目标上,基于掩码样本的编码训练模型,以预测原始未掩码训练样本的模型表示。需要注意的是,团队仅针对掩码的时间步长预测模型表示。预测的表示是一种上下文的表示,不仅对特定的时间步长进行编码,还对来自样本的其他信息进行编码,这是由于在 Transformer 网络中使用了自注意力机制(Self-attention)。因此,相比于预测缺乏上下文信息目标的 BERT、wav2vec 2.0 或BEiT、MAE、SimMIM 和 MaskFeat 模型,这是一条重要的区别。

在实验设置上,研究团队采用了两种尺寸的模型:data2vec Base 和 data2vec Large,包含 H=768 或 1024 两个隐藏维度的 L=12 或 24 的 Transformer blocks。

在用各种数据语料库对 data2vec 进行训练后,测试的结果表明,在该模式上,相比于类似规模的专用模型,它具有一定的竞争力,甚至表现得更加出色。(也就是说,如果所有模型都被限制在 100 兆字节,data2vec 会做得更好——随着模型规模的增大,专用模型取胜的几率会更大。)

具体而言,为了评估该方法在 CV 领域的应用,团队成员在 ImageNet-1K 训练集的图像上预训练 data2vec,并使用相同基准的标记数据对图像分类的结果模型进行微调。结果如表 1 所示,data2vec 优于之前使用 ViT-B 和 ViT-L 的研究工作。与预测局部目标的方法相比,在掩码预测设置中预测上下文的潜在表示可以很好地执行。

0130e753e65d8e4b443ee08eddc94fbb.png

而在语音处理方面,团队成员使用 Librispeech (LS-960)的 960 小时语音音频数据对 data2vec 进行预训练。这个数据集包含了从英语有声读物中获取的相对清晰的语音音频,是语音社区的标准基准。

为了了解不同资源设置下的性能,团队使用不同数量的标记数据(从 10 分钟到 960 小时不等)对自动语音识别模型进行了微调。表 2 显示了所有标记数据设置的改进,很明显,标记数据为 10 分钟时,收益达到最大值。

05c12da5205aa7639e9c11512327542c.png

最后,为了了解 data2vec 在语言方面的表现,研究团队采用了与BERT相同的训练设置,通过对图书语料库和英语维基百科的数据进行预训练。结果如表 3 所示,data2vec 的性能优于 RoBERTa 基线。据团队所知,这是首个不使用离散单元(单词,子单词,字符或字节)作为训练目标而成功完成预训练的 NLP 模型。

db8c4114c03a8b58fde632399eef8d93.png

此外,研究团队还进行了一系列的消融实验,如图 2 所示,对于大多数模式来说,预测多个层的平均目标要比只预测最顶层(K = 1)更加稳健。使用所有层通常是一个不错的选择,并且仅比仔细调整的 K 值稍差一点。现代神经网络往往在多个层上构建特征,并在不同的层上提取不同类型的特征。显然,使用来自多个层的特征既丰富了自监督任务,又提高了准确性。

b2a08b432a978505a587058134426be9.png

在一篇博客文章中,该团队写道:“这种方法的核心思想是更广泛地学习。AI 应该能够学会做多种类型的任务,包括那些完全不熟悉的任务。

我们也殷切希望 data2vec 能够让我们更接近这样的一个世界,计算机只需要很少的标记数据即可完成任务。”

除此之外,首席执行官马克·扎克伯格(Mark Zuckerberg)在研究中评论道,“人们通过视觉、声音和文字的组合来体验世界,这样的系统有朝一日可能会像我们一样理解世界”。

显然,这仍然属于早期研究的范畴,所以不要期待传说中的“通用人工智能”(GAI, General Artificial Intelligence)会突然出现。

不过,相比于当下我们所使用的支离破碎的微智能(micro-intelligence),拥有一个具有通用学习结构的 AI,以胜任处理各种领域和数据类型,这似乎是一个更完美、更优雅的解决方案。

5df4c1d733adb1c714f77b8aac94f326.gif

c0226abbd988f7f7d57ab1a46352be5b.png

技术

Python中少为人知的10个安全陷阱

资讯

再一次输给AI,弯道急速超车

技术

用Python绘制谷爱凌卡通动漫形象

资讯

AlphaCode只是开发者的工具

34fe15c9542af96c91ef1d561a70fb58.png

分享

d37d20424eee38cbd8709ac36af1eb52.png

点收藏

9f41289237d35910e2ab41f4a4f39ed2.png

点点赞

918166e0ccf3ffc8aaa9e79ed6e3615e.png

点在看

相关文章:

细说Debug和Release区别

VC下Debug和Release区别 最近写代码过程中,发现 Debug 下运行正常,Release 下就会出现问题,百思不得其解,而Release 下又无法进行调试,于是只能采用printf方式逐步定位到问题所在处,才发现原来是给定的一个…

26期20180601目录管理

6月1日任务2.1/2.2 系统目录结构2.3 ls命令2.4 文件类型2.5 alias命令系统目录结构ls - list所有的用户在系统里都有自己的家目录,比如现在登陆的是root用户,登陆进去就是在root的家目录中,可以看到之前创建的公钥文件也是在这。但是如果是其…

thttpd安装与调试

http://www.acme.com/software/thttpd/ thttpd是一个非常小巧的轻量级web server,它非常非常简单,仅仅提供了HTTP/1.1和简单的CGI支持,在其官方网站上有一个与其他web server(如Apache, Zeus等)的对比图Benchmark&…

7 款可替代 top 命令的工具!(二)

作者 | JackTian来源 | 杰哥的IT之旅上一篇文章中给大家介绍了《11 款可替代 top 命令的工具!》,今天我再来给大家推荐 7 款可替代 top 命令的工具,看完这两篇替代品的文章相信能让你对 Linux 操作系统下一个小小的命令大开眼界。一、atopato…

Error:Execution failed for task ':app:dexDebug'. com.android.ide.common.process.ProcessException

异常Log: Error:Execution failed for task ‘:app:dexDebug’. > com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process ‘command ‘/Library/……/java” finished with non-zero exit value 2 错误原因&am…

# 学号 2017-2018-20172309 《程序设计与数据结构》第十一周学习总结

---恢复内容开始--- 学号 2017-2018-20172309 《程序设计与数据结构》第十一周学习总结 教材学习内容总结 第23章 初识Android操作系统:一个多用户的Linux系统,一个运用程序运行时与其他的运用运行是独立的。发展:在Android4.4之前所有的应用…

php扩展xdebug基本使用

官网&#xff1a;http://www.xdebug.org/ 使用&#xff1a;http://www.xdebug.org/docs/安装 http://blog.csdn.net/21aspnet/article/details/7036087使用1.获取文件名&#xff0c;行号&#xff0c;函数名 xdebug_call_class() <?php function fix_string($a) { …

基于 Opencv 实现眼睛控制鼠标

作者 | 小白来源 | 小白学视觉如何用眼睛来控制鼠标&#xff1f;一种基于单一前向视角的机器学习眼睛姿态估计方法。在此项目中&#xff0c;每次单击鼠标时&#xff0c;我们都会编写代码来裁剪你们的眼睛图像。使用这些数据&#xff0c;我们可以反向训练模型&#xff0c;从你们…

linux 安装安装rz/sz 和 ssh

安装rz&#xff0c;sz yum install lrzsz; 安装ssh yum install openssh-server 查看已安装包 rpm -qa | grep ssh 更新yum源 1、备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 2、下载新的CentOS-Base.repo 到/etc/yum.repos.d/ CentO…

css左固定右自适应常用方法

下面是几种方法的公用部分&#xff08;右自适应也是一样的&#xff0c;换一下方向&#xff09; html: <div class"demo"> <div class"sidebar">我是固定的</div> <div class"content">我是自适应的</div> </di…

nginx或httpd实现负载均衡tomcat(三)

接博客nginx或httpd实现反向代理tomcat并实现会话保持&#xff08;二&#xff09;实例四&#xff1a;使用httpd负载均衡后端tomcat服务第一步&#xff1a;准备两个tomcat服务器节172.16.240.203修改tomcat的server.xml配置文件&#xff0c;添加一个host。<Host name"to…

为 PHP 应用提速、提速、再提速

原文地址&#xff1a; http://www.ibm.com/developerworks/cn/opensource/os-php-fastapps1/ http://www.ibm.com/developerworks/cn/opensource/os-php-fastapps2/index.html为 PHP 应用提速、提速、再提速&#xff01;PHP 是一种脚本语言&#xff0c;常用于创建 Web 应用程序…

冬奥会夺金的背后杀手锏,竟是位 AI 虚拟教练

整理 | 禾木木 出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 近日&#xff0c;一则消息登上了热搜&#xff1a; 2月14日晚&#xff0c;在北京冬奥会自由式滑雪女子空中技巧决赛中&#xff0c;徐梦桃为中国代表团再添一金。她选择了难度系数4.293的动作&#xff0c…

Socket-实例

import socket,os,time server socket.socket() server.bind(("localhost",9999)) server.listen()while True:conn,addrserver.accept()print("new conn",addr)while True:print("等待新指令")data conn.recv(1024)if not data:print("客…

kcachegrind安装

http://kcachegrind.sourceforge.net/cgi-bin/show.cgi/KcacheGrindDownload http://hi.baidu.com/wangxinhui419/blog/item/4a7409c78c22b4c8d100608a.html http://wxiner.blog.sohu.com/156841393.html说明&#xff1a;linux下如果安装不上&#xff0c;直接下载windows版的吧…

Java【小考】

课上&#xff0c; 老师出了一个题: 考察&#xff1a;1、类的定义 2、类的属性 3、类的方法、重载、构造方法、代码块 题目是这样的&#xff1a; 设计 一个 类&#xff1a;Tree 要求&#xff1a; 1、包含main方法 2、属性&#xff1a;静态&#xff1a; String name ; double hei…

首个深度强化学习AI,能控制核聚变,成功登上《Nature》

编译 | 禾木木 出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 最近&#xff0c;DeepMind 开发出了世界上第一个深度强化学习 AI &#xff0c;可以在模拟环境和真正的核聚变装置中实现对等离子体的自主控制。 这项研究成果登上了《Nature》杂志。 托卡马克是一种用于…

windows下安装mysql8.0压缩版

下面总结下安装过程&#xff1a; 首先解压下载好的压缩版本。将解压后mysql的bin文件目录配置系统环境path变量中使用cmd打开命令窗口&#xff0c;输入mysqld --initialize命令初始化mysql的data数据目录&#xff0c;记住初始化完毕后&#xff0c;会在解压目录下生成一个data文…

Linux实时监控工具Nmon使用

官网&#xff1a;http://nmon.sourceforge.net/pmwiki.php?nMain.HomePage 下载&#xff1a;http://sourceforge.net/projects/nmon/files/nmon_linux_14g.tar.gz 解压&#xff1a; #chmod ux nmon_x86_64_sles11 #chmod 777 nmon_x86_64_sles11 版本不同&#xff0c;对应文件…

英特尔2022年投资者大会:公布技术路线图及重要节点

在英特尔2022年投资者大会上&#xff0c;英特尔CEO帕特基辛格和各业务部门负责人概述了公司发展战略及长期增长规划的主要内容。在半导体需求旺盛的时代&#xff0c;英特尔的多项长期规划将充分把握转型增长的机遇。在演讲中&#xff0c;英特尔公布了其主要业务部门的产品路线图…

20151102adonet2

实现增删改查 ExecuteNonQuery:执行增删改语句,返回值为该命令所影响的行数. ExecuteReader:执行查询,并返回 一个DataReader对象. ExecuteScalar:执行查询,返回查询数.(删除修改时判断记录是否存在) string strSql string.Format("select count(*) from RNews where New…

day07 -文件的基本操作

1、什么是文件&#xff1f; 文件是操作系统为用户或应用程序提供的一个读写硬盘的虚拟单位文件的操作核心就&#xff1a;读、写即我们只需要对于进行读写操作&#xff0c;就是对操作系统发起请求&#xff0c;然后由操作系统将用户或者应用程序对文件的读写操作转换成具体的硬盘…

淘宝Tengine服务器开源

http://tengine.taobao.org/index_cn.htmlTengine是由 淘宝核心系统部基于Nginx开发的Web服务器&#xff0c;它在 Nginx的基础上&#xff0c;针对大访问量网站的需求&#xff0c;添加了很多功能和特性。Tengine的性能和稳定性已经在大型的网站如 淘宝网&#xff0c; 淘宝商城等…

22个案例详解Pandas数据分析/预处理时的实用技巧,超简单

作者 | 俊欣来源 | 关于数据分析与可视化今天小编打算来讲一讲数据分析方面的内容&#xff0c;整理和总结一下Pandas在数据预处理和数据分析方面的硬核干货&#xff0c;我们大致会说Pandas计算交叉列表Pandas将字符串与数值转化成时间类型Pandas将字符串转化成数值类型Pandas当…

PL/SQL 中Returning Into的用法

ORACLE的DML语句中可以指定RETURNING INTO语句。RETURNING INTO语句的使用在很多情况下可以简化PL/SQL编程&#xff0c;少一次select into语句。DELETE操作&#xff1a;RETURNING返回的是DELETE之前的结果&#xff1b; INSERT操作&#xff1a;RETURNING返回的是INSERT之后的结果…

Java常用多线程辅助工具---countdownLatch

为什么80%的码农都做不了架构师&#xff1f;>>> 前言 上一篇博文说到semaphore&#xff0c;一个加强版的synchronized&#xff0c;该多线程辅助工具适用于控制对资源操作或者访问的场景。现在有一张场景是&#xff0c;需要等各个线程都都执行完了再进行下一步的操作…

听说,英特尔要对外开放 x86 授权?

整理 | 郑丽媛出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;同为主流芯片架构&#xff0c;相较于可申请授权的 ARM 和开源的 RISC-V&#xff0c;x86 一直以来都保持着“高高在上”的立场——唯有英特尔和 AMD 拥有 x86 授权。但目前看来&#xff0c;x86 的“高冷…

Linux下gedit显示行号

Gedit 编辑->视图

关于String数组的用法

android ContextWrapper.getResources(ContextWrapper.java:89) getResources()报错原因是在OnCreate方法外 无法完成Context的初始化 正确做法&#xff1a; String[] names;names new String[6];names[0] getResources().getString(R.string.a);names[1] getResources().g…

使用RabbitMQ做数据接收和处理时,自动关闭

场景&#xff1a;N个客户端向MQ里发送数据&#xff1b;服务器上有另一个控制台程序(假设叫ServerClient)来处理这里数据&#xff08;往数据库保存&#xff09;。方向为Client * n→MQSERVER→ServerClient 问题&#xff1a;ServerClient自动关闭&#xff0c;没有错误日志&#…