Facebook爆锤深度度量学习:该领域13年来并无进展!网友:沧海横流,方显英雄本色...

来源:AI科技评论

近日,Facebook AI和Cornell Tech的研究人员近期发表研究论文预览文稿,声称近十三年深度度量学习(deep metric learning) 领域的目前研究进展和十三年前的基线方法(Contrastive, Triplet) 比较并无实质提高,近期发表论文中的性能提高主要来自于不公平的实验比较, 泄露测试集标签,以及不合理的评价指标。

也就是说:新出的ArcFace, SoftTriple, CosFace等十种算法与十三年前的依赖成对或成三元组的损失函数并没有本质上的区别。

FB和康奈尔科技此论无疑是对深度度量学习过去十三年研究成果盖棺定论,斩钉截铁表示,虽然深度度量学习非常重要,但是学界这些年一直在灌水。

1

损失函数对度量学习很重要

论文下载地址:https://arxiv.org/pdf/2003.08505.pdf

在综述论文开头,FB和康奈尔先肯定了深度度量学习的重要性,他们表示:深度度量学习已成为近年来机器学习最具吸引力的研究领域之一,如何有效的度量物体间的相似性成为问题的关键。

度量学习试图将数据映射到一个嵌入空间,在这个空间中,相似的数据靠得很近,类型不同的数据离的很远。而映射的方式可以通过嵌入损失和分类损失实现,这两种方式各有特点,嵌入损失是根据一批样本之间的关系来操作,而分类损失包括一个权重矩阵,将嵌入空间转化为类logits向量。

在一些适用分类损失的任务下,当任务是信息检索的某个变体时,通常使用嵌入方法,目标是返回与查询最相似的数据。例如图像搜索:输入是查询图像,输出是数据库中视觉上最相似的图像。

然后,在某些情况下无法使用分类损失。例如,在构建数据集时,为每个样本分配类别标签可能很困难或成本很高,并且可能更容易以配对或三元组关系的形式指定样本之间的相对相似性。另外,样本对( pair ) 或者样本三元组(triplets)还可以为现有数据集提供额外的训练信号。所以在这两种情况下都没有显式标注,因此嵌入损失成为合适的选择。

换句话说损失函数在度量学习中起到了非常重要的作用。很多深度度量学习的损失函数构建在样本对( pair ) 或者样本三元组 ( triplet ) 之上。随着深度学习在众多领域出色表现,逐渐这种方法对度量学习产生了影响,于是度量学习将深度学习方法结合了起来,产生了一个新的领域,即深度度量学习。

最新的论文也都采用了神经网络技术,例如构建生成网络,用生成器作为建模类中心和类内方差的框架的一部分(Lin et al);使用自适应插值方法,根据模型的强度,产生不同难度的负值(Zheng et al)。除此之外,还有基于注意力的技术、基于聚类和编码器组合的技术等等。

2

领域的进展实际并不存在

在列举了一系列技术方法之后,研究员开始针对各种损失函数进行实验,研究结果表明:通过交叉验证对超参数进行适当调整时,大多数方法的性能相似。

研究员一共指出了现有文献中的三个缺陷:不公平的比较、通过测试集反馈进行训练、不合理的评价指标

不公平的比较:一般大家声明一个算法性能优于另一个算法,通常需要确保尽可能多的参数不变,而在度量学习的论文中不是如此。另外,一些论文中所提到的精度提高其实只是所选神经网络带来的,并不是他们提出的“创新”方法。例如2017年的一篇论文声称使用ResNet50 获得了巨大的性能提升,而实际上他的对比对象是精度较低的GoogleNet。

通过测试集反馈进行训练:不仅是度量学习领域,大多数论文都有这一通病:将数据集一半拆分为测试集,一半拆分为训练集,不设验证集。在具体训练的过程中,定期检查模型的测试集精度,并报告最佳测试集精度,也就是说模型选择和超参数调优是通过来自测试集的直接反馈来完成的,这显然会有过拟合的风险。

不合理的评价指标:为了体现准确性,大多数度量学习论文都会报告Recall@K、归一化相互信息(NMI)和F1分数。但这些一定是最好的衡量标准吗?如下图三个嵌入空间,每一个recall@1指标评价都接近满分,而事实上,他们之间的特征并不相同。此外,F1和NMI分数也接近,这在一定程度上说明,其实,这几个指标并没带来啥信息。


三个 toy示例:不同的精确指标如何评分

在指出问题的同时,FB和康奈尔的研究员自然也指出了改进建议,针对上述三个缺点建议进行公平比较和重复性实验、通过交叉验证进行超参数搜索、采用更加准确的信息性、准确性度量。

公平比较和重复性实验:实验使用PyTorch;设置相同的输出嵌入进行预训练;批次大小设置为32;在训练期间,使用随机调整大小的裁剪策略来增强图像;设置固定的学习率;公开配置文件。

通过交叉验证进行超参数搜索:多用交叉验证;优化超参数,并以最大程度地提高平均验证准确性;多使用最佳超参数进行训练,然后报告运行的平均值以及置信区间。

调整度量指标:建议用MAP@R来做平均精度,因为它结合了MAP(Mean Average Precision)和R精度( R-precision)。

3

劝退?不,沧海横流,方显英雄本色!

深度度量学习,是否有用?是否还值得入坑?!!

在知乎上迅速激起诸多网友的热烈讨论。

一位曾在Deep Metric Learning中单枪匹马、摸爬滚打过的网友(MS Loss 一作)直言:DML领域大部分方法并无宣称的那么大,其“进步”往往来源于:调参、方法本身以及大的Batch Size。

该领域确实水文比例挺大的,有些文章为了中,确实会用特别低的baseline, 用resnet甚至densenet和别人googlenet的结果去比,或者用2048维特征去比过去方法的128维的结果。

一位网友提到,度量学习在数学上优雅,在可视化上炫酷,在论文结果上漂亮,但在实际应用中却毫无效果。

Metric learning在数学上推得很优雅,在可视化上很酷炫,在论文结果上表现得很漂亮,但实际应用上却毫无效果。asoftmax am amm等在某些数据集上确实拟合很好,适合刷指标,但实际在跨数据开集上,还是最简单的softmax更香。

或者用另一位网友的说法:

公式超级多,论文看起来就专业

可视化好看,类间离散图很优雅

当然也有网友认为还是有进展的,就是李飞飞用超大规模数据集,告诉大家堆数据要比算法提升更优秀!

基本认同。唯一的进展是李飞飞的超大规模数据集,告诉大家堆数据带来的提升效果比算法创新还要大。然而这基本只算一个工程经验,根本也谈不上一个'进展'。

不过也有网友认为,发展还是有的,那就是正则化。

那么metirc learning有没有发展呢,我认为最主要的发展还是近几年的normalization,这个东西明确了几何空间的定义,使得研究人员能够更好的在几何层面设计metric,最后无论是训练的收敛速度还是最后的准确率都有了极大的提升。

最后,我们引用一下知名博主「王晋东不在家」的话(编者注:有删减)——

其实大可不必心潮澎湃、攻击别人、对该领域前途失望。每当一个研究领域出现一些retlinking、revisiting、comprehensive analysis等类型的文章时,往往都说明了几个现象:

1、这个领域发展的还可以,出现了很多相关的工作可以参考;

2、这个领域的文章同质化太严重,到了传说中的“瓶颈期”;

3、研究人员思考为什么已经有这么多好工作,却好像觉得还差点意思,还“不够用”、“不好用”、“没法用”。

其实这对于研究而言是个好事。我们在一条路上走了太久,却常常忘记了为什么出发。此时需要有些人敢于“冒天下之大不睫”,出来给大家头上浇盆冷水,重新思考一下这个领域出现了什么问题。哲学上也有“否定之否定”规律。 

回到metric learning的问题上来。其实想想看,机器学习的核心问题之一便是距离。Metric learning这种可以自适应地学习度量的思想,真的是没用吗?还是说它只是被目前的方法、实验手段、评测数据集等等束缚了手脚,阴差阳错地导致了不好的结果这也是这个问题的提出者原文作者质疑的问题。

不能经受得住质疑和时间的洗礼的工作,不是好工作。事实上此类事情并不是第一次发生。

不信你看,作为当下ICML、ICLR、NIPS等顶会的“宠儿”,meta-learning可谓风头一时无两。然而,大家都清楚,meta-learning的一大部分工作都是在few-shot的任务上进行算法开发和评测的。从18年开始到今年的ICLR,就已经不断地有人“质疑”其有效性了。“质疑”的核心问题之一是:用简单的pretrain network去学习feature embedding,然后再加上简单的分类器就可以在few-shot那几个通用任务上,打败很多“著名”的meta-learning方法。所以到底是meta-learning的这种“学会学习”的思想没用,还是它只是被不恰当地使用了?或者说,meta-learning的正确用法是什么?我认为这也是要思考的。我个人是非常喜欢meta的思想的。

其实在transfer learning领域。我之前也有一篇看似“打脸”的paper:Easy Transfer Learning by Exploiting Intra-domain Structures。我们的实验同样证明了仅需简单pretrain过的ResNet50提取源域和目标域的feature embedding,然后加上简单的线性规划分类器,甚至是nearest centroid,就能取得当时(2018年底)几乎最好的分类结果。但是你能说transfer learning没用吗?显然这并不能掩盖transfer learning方法的光芒。所以我一直都在质疑自己:肯定是这些数据集不完善、精度不能作为唯一指标、其他方法需要再调参数,等等。

我觉得这可能是个实验科学的误区:我们实验设定本来就需要完善,并不能因此否定一类方法的有效性。深度学习大部分都是建立在实验科学的基础上,因此实验很关键。

有了广泛的质疑,才会有更广泛的讨论,于是会有更广泛的反质疑、新范式、新思想。从整个领域的发展来看,这无疑是好事。

所以这应该是“沧海横流,方显英雄本色”的时候了。加油吧!

未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”

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

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

相关文章

不可不看的干货——机器人自主系统的技术构建:感知、决策和执行

来源:机器人大讲堂近年来,随着工业 4.0 标准的不断推进和人工智能、物联网、大数据等技术的快速发展,机器人产业迎来新一轮浪潮,正逐步向系统化、模块化、智能化的方向发展。除了传统的工业机器人外,在特种机器人和服务…

php伪数组转换为数组,JavaScript伪数组用法实例

在Javascript中什么是伪数组?伪数组(类数组):无法直接调用数组方法或期望length属性有什么特殊的行为,但仍可以对真正数组遍历方法来遍历它们。本文实例讲述了JavaScript伪数组用法,希望能帮助到大家。1.典型的是函数的 argument参…

前沿科技 | 中科院科学家研究揭示奥陶纪末生命大灭绝新机制

来源:中国科学院火山活动是全球气候变化和海洋化学组成巨变的主要驱动力之一,其中“平流层火山喷发”(即火山物质喷发至平流层-大约离地表20公里)对全球气候有直接的影响。在过去5.4亿年的地质历史中,发生了数次大规模…

空地通信传输详解——飞机是这样和地面通信的

来源:电子万花筒飞机在空中飞行时是如何与地面联络的呢?飞机在飞行中的数据如何进行空地传输呢?那些部件的数据可以被传输呢?飞机的导航、通信、识别系统主要就是保证飞行的,保障在天上、空对空、空对地、地对空、空对…

​IBM人工智能芯片的新进展

来源:内容由半导体行业观察(ID:icbank)编译自「Venturebeat」,谢谢。IBM苏黎世实验室的研究人员本周在Nature Communications上发表了一篇论文。在文中他们声称,基于相变存储器的技术,他们已经开…

php程序员写bug,程序员的修炼-我们为什么会编写BUG

在最近的一周,我维护的业务系统出现了很多坏毛病,一周七天crash掉了4次,每次都需要都是因为一点很小的问题,触发了蝴蝶效应,导致整个系统全盘崩溃,于是产生除了叙述本篇的想法,当然这并不是为了掩盖我在Coding上的一些细节处理和职责疏忽,只是为了从根本的细节上去分…

强人工智能和弱人工智能

来源:人机与认知实验室人工智能的一个比较流行的定义,也是该领域较早的定义,是由当时麻省理工学院的约翰麦卡锡在1956年的达特矛斯会议上提出的(对此有争议):人工智能就是要让机器的行为看起来就像是人所表…

张亚勤2020寄语哥伦比亚大学毕业生:引领未知时代

(哥伦比亚大学巴特勒图书馆)2020年5月18日,人工智能和数字视频的世界级科学家和企业家,美国艺术与科学院院士、百度前总裁、清华大学智能科学讲席教授张亚勤博士,在哥伦比亚大学工程学院的毕业典礼上发表了主题演讲。张亚勤说:“面…

科技部部长:基础研究是科技创新“总开关”

来源:中国新闻网中新社北京5月19日电 (记者 孙自法)“基础研究是科技创新的‘总开关’!”言及基础研究在中国科技发展、增强原始创新能力中的地位与作用,中国科学技术部部长王志刚这样概括道。国务院新闻办公室19日下午在北京举行加快建设创新…

从通用到专用,5G时代IP核的新故事

来源:半导体行业观察如同芯片在不断迭代,IP核也在不断进步。集成电路技术60年来基本遵循摩尔定律的演进规律。随着进入后摩尔时代,即两年一代技术更换的节奏开始放缓,设计和制造企业开始更加重视产品的多样化发展,而不…

连续信号与系统频域分析的matlab实现,实验十三 连续信号与系统频域分析的MATLB实现...

实验十三 连续信号与系统频域分析的MATLB实现 实验十三 连续信号与系统频域分析的 MATLAB 实现70实验十三 连续信号与系统频域分析的 MATLAB 实现一、实验目的 1. 掌握连续时间信号频谱特性的 MATLAB 分析方法;2.掌握连续系统的频率响应 MATLAB 分析方法方法。二、实…

[机器学习] Apriori算法

适用场合 Apriori算法包含两部分内容:1,发现频繁项集 2,挖掘关联规则。 通俗地解释一下,就是这个意思:1.发现哪些项目常常同时出现 2.挖掘这些常常出现的项目是否存在“如果A那么B”的关系。 举个例子:网店…

华为发布《自动驾驶网络解决方案白皮书》

来源:华为近日,全球分析师大会HAS 2020期间,华为面向全球发布《自动驾驶网络解决方案白皮书》,系统阐述未来网络架构、运维架构和其关键技术,通过网元、网络和云端的三层AI能力协同,使能网络走向极简超宽、…

linux服务器运维操作命令,Windows和Linux系统服务器运维基本操作指令

原标题:Windows和Linux系统服务器运维基本操作指令服务器总归是机械化设备,在运行过程中难免会出现一些问题,遇到这些问题怎么办?请运维人员代维修?即使请也会造成,运维人员维护不及时和成本太高的问题&…

百度大脑城市白皮书

来源 | 百度智能云(转载请注明来源)编辑 | 蒲蒲5月18日,百度智能云在大会上正式发布《百度城市大脑白皮书》。白皮书结合未来我国智慧城市发展重点,深入分析研究了我国智慧城市发展的背景和发展中的机遇,重点阐述了百度…

Python开发基础--- 进程间通信、进程池、协程

进程间通信 进程彼此之间互相隔离,要实现进程间通信(IPC),multiprocessing模块支持两种形式:队列和管道,这两种方式都是使用消息传递的。 进程队列queue 不同于线程queue,进程queue的生成是用mu…

linux中sed命令用例,Linux中使用sed命令或awk命令修改常规配置文件

一、方案:Linux中使用sed命令或awk命令修改常规配置文件二、步骤:1、假设有一个a.txt,内容如下:#!/bin/bashaabbbccc#ddd2、如果想要把里面的内容bbb23输出成bbb55,可以这样做:sed s/bbb23/bbb55/g a.txt说…

python数据分析笔记中panda(2)

1 将手机号码分开为运营商,地区和号码段 1 from pandas import read_csv;2 3 df read_csv("H:\\pythonCode\\4.6\\data.csv");4 5 6 #转换成字符数据 方便用slice7 df[tel] df[tel].astype(str);8 9 #字符的抽取:根据已知列数…

刘忠范院士:新型研发机构建设成了口号

来源:科学网作者 | 郑金武编辑 | 宗华排版 | 华园● 刘忠范认为,如果只是单纯地再建一两所研究机构,在机制、理念上与现有的高校和研究院所没有差别,那就是在“1000”的基础上再加“1”,对现有的科研格局不会带来任何改…

linux属性表示的文件,Linux基础入门:文件和目录属性的含义

比如 :[rootistester isTester]# lltotal 12drwxr-xr-x 2 root root 4096 May 21 17:58 21Day-rw-r-xr-- 1 root root 6 May 14 16:04 idoxu.ini-rw-r--r-- 1 root root 0 May 21 17:12 istester.ini-rw-r--r-- 1 root root 10 May 14 16:02 README.md解释&…