在测试集上训练,还能中CVPR?这篇IEEE批判论文是否合理?

简介: 今日,一篇论文帖子在 Reddit 的机器学习版块引起了大家的关注。该论文表示 Concetto Spampinato 等人 2017 年的 CVPR 论文存在错误。但从讨论来看,这篇批评论文同样引起了网友的质疑。

Reddit 讨论地址:https://www.reddit.com/r/MachineLearning/comments/a8p0l8/p_training_on_the_test_set_an_analysis_of/


该论文对 Concetto Spampinato 等人 2017 年的 CVPR 论文《Deep Learning Human Mind for Automated Visual Classification》进行了分析,得出结论:这篇论文以及该实验室随后的 7 篇论文的结果都有误。



在围观 Reddit 讨论之前,让我们先看看批评者们都怎么说:


微信图片_20211130165541.jpg


论文地址:https://arxiv.org/abs/1812.07697


以前 CVPR 2017 有一篇论文学习对受试者观察 ImageNet 图像时记录到的 EEG 数据进行分类,且使用学习到的分类器来训练一个纯粹的计算机视觉模型。在此论文中,ImageNet 中的图片做为刺激信号展示给接受 EEG 记录的受试者,然后训练一个结合全连接层和 ReLU 层的 LSTM 来预测记录到的 EEG 信号的图像刺激类别。其中 ReLU 的输出反映了人类对认知的神经编码。为了得到一种能产生同样认知编码的计算机视觉系统,这篇论文又把已有目标分类器的输出回归到论文声称的这种人类认知神经编码中。


那篇论文作出了三个声明:


  • 我们提出了一种能对图像激活脑电波的 EEG 数据进行分类的深度学习方法,这种方法在处理目标类别的数量与分类准确率上都超越了顶尖方法。
  • 我们提出首个由大脑信号驱动的计算机视觉方法,也就是首个利用视觉描述符进行自动分类的方法。这种视觉描述符直接提取自人类进行视觉场景分析时的神经处理过程。
  • 我们将会公开这一最大的视觉目标分析 EEG 数据集,且附上相关开源代码与训练模型。


特别是他们的论文近一步声明:


  • 相比于先前的研究,我们的方法能够分类大量(40)目标类别,特别是在 EEG 信号上。
  • 相比于先前分类 EEG 信号的研究,我们方法的分类准确率高的多(82.9%)。


此外,此论文更是用盛赞之词表达其声明的结果:


在本论文中,我们希望在经典 BCI 方面取得重大突破,即旨在探索一种新型和直接的人类参与形式,并用于自动视觉分类。这个方法潜在的观点是学习一种大脑信号对视觉类别的判别性流形,这可以通过分类 EEC 信号实现。也就是说读取大脑信号,并将图像映射到这样的流形上以允许机器执行自动视觉分类,这一过程可以说是将人类的视觉能力迁移到机器。


解码对象类别相关的 EEG 信号以用于计算机视觉方法,这种方法的影响是很巨大的。首先,识别基于 EEG 的判别性特征可能会提供一些关于人类视觉感知系统的洞见,其中这些判别性特征可用于视觉分类。因此,它将极大地提高基于 BCI 的应用性能,并实现新形式基于脑的图像标注。其次,将图像有效地投影到新的基于生物学的流形中将彻底改变对象分类器的开发方式(主要是在特征提取方面)。[31,§1pp.6809-6810]


我们做了很多实验与分析,且分析结果不禁让我们怀疑上面 CVPR 2017 原论文的声明。具体的,我们发现采用的分类器会让长期静态脑激活的使用会比独立刺激的时间长。由于前面那篇 CVPR 2017 论文采用了块设计(block design),所有给定类别图像的刺激都连续呈现给受试者,因此所采用的分类器倾向于在「块」期间内对大脑的活动进行分类,这似乎与刺激的图像类别很大程度上并不相关。


分类器对 EEG 信号中的 DC 和极低频(VLF)分量的依赖性加剧了这种情况,这些分量反映了「块」期间的任意长期静态心理状态,而不是动态的大脑活动。由于测试集中的试验与训练集样本试验都来自相同的「块」,这相当于在测试时获取了相同静态心理状态,从而「窃取」了训练信息。因此那篇 CVPR 2017 论文能获得极高的分类准确率,它隐性地在测试集上做训练!


当我们使用快速事件重新设计实验时,发现用不同图像刺激获得的信号完全是随机的,分类准确率下降到了随机选择。因此,这使得我们怀疑随后 7 篇论文的结果与声明(完整的名单读者可查阅原论文)。我们的实验最终表示潜在任务远远要比表面看起来难得多,并且远远超出现有的技术水平。同样,实验结果最终也表明了那 8 篇广泛发表的论文过于乐观了,它们的结果同样也是有误的。


Reddit 讨论


这篇帖子昨日发布之后,引起了多位研究者的讨论,有从标题开始批评论文《Training on the test set? An analysis of Spampinato et al. [31]》的,也有从技术层面对这两篇论文进行讨论的。机器之心编译介绍了部分评论,感兴趣的读者查看原帖。


网友 singularineet 表示:


怎么直观理解这篇论文要表达的意思呢?我们来打个比方。比如,你想训练一个分类器来分析 X 光片以检测癌症。这些 X 光片会显示其拍摄的时间(假设 X 射线机器会在早上进行校正,并在一天内随时间逐渐漂移,并且这种漂移效应会立刻出现在 X 光片中)。并且,有高度优先权的已知得了癌症的病人会在早上拍 X 光片,其他人安排在下午。那么,你的模型就能仅通过拍摄时间来准确地预测癌症。


同理,Spampinato 等人的研究中使用了 EEG 电极,导电霜是干燥的,电极接触不良等。因此,他们的实验引入了很多噪声,种种完全无关因素导致 EEG 的系统性漂移,并展示在图像中。此外还有外部噪声的干扰,比如空调温度等。


由于图像类是在同一类的块中呈现的,因此网络所要做的就是根据其他偶然要素进行预测,而不是寻找与图像类本身有关系的要素。


这些效应在脑成像领域中是众所周知的,这就是为什么实验方案总是平衡的,并且尝试通过消除有害信号来去除伪像。因此,批评论文中的所有注意力都集中在信号过滤问题上。


jande8778 更是直接批评《Training on the test set? An analysis of Spampinato et al. [31]》一文是他读过的最糟糕的论文。


我读过的最糟糕的论文。让我们从标题开始,其表明 [31] 的作者在测试集上训练,这是不对的。另一方面,[31] 的作者使用的 DL 技术是有意义的,如果他们证明使用不同数据集的那些方法的有效性,他们的研究应该没问题。


尽管如此,旨在发现 EEG 数据集偏差的批评部分还是有意义的。


jande8778 继续说这篇批判论文最浅显、最糟糕的部分是试图拒绝采用 DL 方法进行脑电波的分类与生成。他说:「评论他人的研究可能要比做研究更难,需要更严谨一些。」


其中,论文的一作 C. Spampinato 也对此帖作出了回复。他表示虽然批判论文的标题选了一个众所周知的禁忌,但他自己不是特别在乎,除了自己的名字出现在标题上。


此外,关于讨论中一些技术细节,Spampinato 也给出相应的解释。例如批判文章最大的质疑,即 CVPR 2017 的那篇论文采用块分析,连续地将相同类别的训练集与测试集给受试者,因此分类器学到的可能只是静态脑电波。Spampinato 表示这可能是一个假设,但是移除极低频和 DC 等可能影响的噪声后,分类器还是能实现很好的性能。此外,Spampinato 表示他们会做更多的研究与调查弄清楚这一假设。

相关文章
|
28天前
|
机器学习/深度学习 PyTorch 算法框架/工具
目标检测实战(一):CIFAR10结合神经网络加载、训练、测试完整步骤
这篇文章介绍了如何使用PyTorch框架,结合CIFAR-10数据集,通过定义神经网络、损失函数和优化器,进行模型的训练和测试。
74 2
目标检测实战(一):CIFAR10结合神经网络加载、训练、测试完整步骤
|
28天前
|
数据采集 机器学习/深度学习 大数据
行为检测代码(一):超详细介绍C3D架构训练+测试步骤
这篇文章详细介绍了C3D架构在行为检测领域的应用,包括训练和测试步骤,使用UCF101数据集进行演示。
29 1
行为检测代码(一):超详细介绍C3D架构训练+测试步骤
|
3月前
|
机器学习/深度学习
神经网络与深度学习---验证集(测试集)准确率高于训练集准确率的原因
本文分析了神经网络中验证集(测试集)准确率高于训练集准确率的四个可能原因,包括数据集大小和分布不均、模型正则化过度、批处理后准确率计算时机不同,以及训练集预处理过度导致分布变化。
|
27天前
|
机器学习/深度学习 编解码 监控
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
这篇文章详细介绍了如何使用YOLOv8进行目标检测任务,包括环境搭建、数据准备、模型训练、验证测试以及模型转换等完整流程。
745 1
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
28天前
|
PyTorch 算法框架/工具 计算机视觉
目标检测实战(二):YoloV4-Tiny训练、测试、评估完整步骤
本文介绍了使用YOLOv4-Tiny进行目标检测的完整流程,包括模型介绍、代码下载、数据集处理、网络训练、预测和评估。
80 2
目标检测实战(二):YoloV4-Tiny训练、测试、评估完整步骤
|
26天前
|
机器学习/深度学习 监控 计算机视觉
目标检测实战(八): 使用YOLOv7完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
本文介绍了如何使用YOLOv7进行目标检测,包括环境搭建、数据集准备、模型训练、验证、测试以及常见错误的解决方法。YOLOv7以其高效性能和准确率在目标检测领域受到关注,适用于自动驾驶、安防监控等场景。文中提供了源码和论文链接,以及详细的步骤说明,适合深度学习实践者参考。
223 0
目标检测实战(八): 使用YOLOv7完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
27天前
|
机器学习/深度学习 并行计算 数据可视化
目标分类笔记(二): 利用PaddleClas的框架来完成多标签分类任务(从数据准备到训练测试部署的完整流程)
这篇文章介绍了如何使用PaddleClas框架完成多标签分类任务,包括数据准备、环境搭建、模型训练、预测、评估等完整流程。
73 0
目标分类笔记(二): 利用PaddleClas的框架来完成多标签分类任务(从数据准备到训练测试部署的完整流程)
|
27天前
|
机器学习/深度学习 JSON 算法
语义分割笔记(二):DeepLab V3对图像进行分割(自定义数据集从零到一进行训练、验证和测试)
本文介绍了DeepLab V3在语义分割中的应用,包括数据集准备、模型训练、测试和评估,提供了代码和资源链接。
153 0
语义分割笔记(二):DeepLab V3对图像进行分割(自定义数据集从零到一进行训练、验证和测试)
|
27天前
|
机器学习/深度学习 数据采集 算法
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
这篇博客文章介绍了如何使用包含多个网络和多种训练策略的框架来完成多目标分类任务,涵盖了从数据准备到训练、测试和部署的完整流程,并提供了相关代码和配置文件。
42 0
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
|
27天前
|
机器学习/深度学习 XML 并行计算
目标检测实战(七): 使用YOLOX完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
这篇文章介绍了如何使用YOLOX完成图像目标检测任务的完整流程,包括数据准备、模型训练、验证和测试。
134 0
目标检测实战(七): 使用YOLOX完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
下一篇
无影云桌面