百科问答小站 logo
百科问答小站 font logo



如何评价深度学习相关顶级期刊论文难复现的问题? 第1页

  

user avatar   cmmnk 网友的相关建议: 
      

相对而言,以深度学习为代表的信息学科的可复现性在理工科中是相对比较好的。

再说不可复现的问题,大致归结为这么几类:
1. 用了私有数据(很多大公司都有不能对外公开的私有数据),一般人没法访问这些数据,导致结果不可复现。

2. 用了超大公司才有的变态算力,普通研究者连论文中用到的1%的算力都很难达到。

3. 各种没有说清楚的bias导致的结果偏差。例如,某数据集特别小,原始作者没有划分train,val,test,导致不同作者不同的随机划分,对结果影响很大。

4. 故意造假。这里暂不评论为什么会有这种人。

纠结于论文复现难的人,很多是刚入门不久的学生。我很理解经过很多努力没法复现的失落,毕竟我也经历过。想提醒一点的是,相对而言,计算机学科的可复现性是比较好的。而且最近10年开源的风气越来越好。至少主流的问题,几乎都有很好的开源代码,可复现性不存在太大问题。

避免上述坑,我自己的做法就是,有那么多很好的开源项目都看不过来,我轻易不去follow那些很难复现的项目。另外,不同团队的风格不一样,有些团队的工作就非常容易复现。建议多用正能量去看问题。同时学会在不完美的世界中生存的很好的技巧,避开坑,多关注可复现性好的工作。

另外,己所不欲,勿施于人。建议被这个坑坑过的朋友们,自己发论文的时候不要再去坑别人。尽量在论文里说清楚,并且在不违反协议、隐私,规范、和法律的情况下,最大化的共享自己的代码和数据。这方面,我之前也写过一个倡议:


user avatar   wei-shi-cai 网友的相关建议: 
      

作为一个在复现论文中踩坑无数,好不容易走出来的人,简单说一下我的看法。


例子1:我是活体检测落地的,老师当时跟我说,旷视能做出来,你应该也可以做个差不多的吧(微笑)。然后我就开始的漫长的算法复现道路。后来很久以后发现了两件事。一是腾讯的一篇论文,做了两个测试,一个是用了公司内部的数据,一个是没用公司内部数据的结果,用了公司内部数据的高了10个点。另一个是前不久小视科技开源的活体检测项目,我去看了一下,,效果确实好,一细看怎么做的,好家伙,千万级的训练集......。

例子2:当初我大四四月份的时候来到教研室,做活体检测的项目,看了近几年的会议和arxiv,找到了一篇效果最好的文章,甚至还公开了代码和预训练模型,心想,这不是稳了吗。当时我想的是:讲道理,结合pytorch,或者tensorflow,感觉论文复现不应该难才对啊???。花了两个星期学习tensorflow把它跑通,我去换换其他数据集看看(活体检测不同于其他领域,目前追求的就是跨数据集测试的准确率),结果效果稀烂。我当时在想,不对啊,它跨数据集的测试效果不差,为什么在这上面就是不行?后来数据集申请了下来,在它论文说的那个数据集上面试了一下跨数据集的测试,确实和文章描述差不多。我就更好奇了,那么好像这个论文就是对的啊,可是为什么其他数据集效果就差这么多(应该没人比我这个情况更奇葩了,不做落地基本不会遇到这个问题)。后来机缘巧合之下打印了很多日志之后我发现,它的正类和负类偏向不一样,预测主要偏向负类。但是这样效果应该会很差,为什么还这么好,然后我继续细挖,然后重点来了!!!!!!!我发现它的数据加载里面,正负类的加载就是不对等的,负类是正类的两倍多(正常是对等的),所以偏向负类,但是效果还是很好。我?????。那天我发现论文造假的另一个至高境界,直接修改数据分布(刚刚去看了一下,这篇文章已经被某二区期刊收录)。并不是说这篇文章作者就是故意的,但是谁知道呢,而且后来我师兄也遇到了类似的情况,在dataloader里面对数据进行了修改...他是做图网络分类的,同一个数据集之前的测试准确率只有80出头,后来几篇文章就飙到了接近90,师兄怎么都复现不出来,后来开源了代码一看,好家伙,之前训练测试是二八分,新文章直接变成了三七分,就在dataloader里改的,但是作者文章完全没有提及,而且师兄把分布换成最开始的数据分布之后,那个新方法的效果还比不上原来的baseline…。

例子3:教研室有个同学做剪枝,复现CIFAR10的的baseline。CIFAR10这个数据集都说烂了,我复现一下还不是手到擒来?然后一个月过去了,还是复现不出来那个效果,后来发现原来大家都在用trick。不加余弦衰减,不加mixup,不训练200个epoch,基本就达不到目前大家说的那个SOTA效果,但是这些不会有人和你说的,他们只会说我在resnet50上训练到了多少多少的准确率。

例子4:教研室的师弟,结合GCN做few-shot learning。之前的测试准确率都是百分之五六十,去年AAAI突然出现了一篇准确率直接刷到80%多的文章还开源了代码,师弟惊为天人,感叹难道这个领域就这样做没了?然后拿作者的代码来加上自己之前的想法改了改又涨了几个点,在90%多,实现了大家默认要求的sota,觉得可以写文章了,文章写到一半,发现不对,代码好像有问题,github上有人提问,这个是不是好像过拟合了学习到了标签的顺序,然后师弟一看还真是,我把batch内多个任务之间测试样本顺序打乱,效果就又回到了普通的百分之五六十的水平,然后写完一半的文章就这样被废掉了。


从这些故事中,我发现了以下的结论:

绝大部分刚入门的人,都会迷信SOTA,我要复现就要复现那篇最好的,管它难不难,能不能复现,是不是真的有效。但是做过一年深度学习的人就知道,SOTA?一百篇文章一百个SOTA。

有源码就一定可靠?我被源码坑过不止这一次,刚刚例子是,另一个回答里说到的LBCNN也是一样的,给的源码和文章里面的结构就是两回事。

顶刊顶会大公司就一定可靠?顶会的可复现性问题存在也不是一两天了,那么顶刊也可见一番,每年三大顶会能复现出来的有一半就不错了,之前还有说90%都不能复现的...。

有效的也许不是方法,而是trick---同学复现的那篇论文。有效的也许不是方法,而是数据分布---我遇到的那篇文章的数据分布。有效的也许不是方法,而是数据---活体千万数据集。有效的确实是方法,但是这个方法有问题----师弟的小样本学习的例子。

这还是活体需要做跨数据集的交叉验证这种难的验证指标了,要是单纯刷一个数据集的指标的,能作弊的地方就更多了。

怎么办?

后来我想了很久,说,草,不追SOTA了,去选那些我理解了,而且直觉上我觉得可行的方法。就算是最后真的不行,我也能知道是哪里不行,也是我思维的完善。然后我开始去复现motion-based methods,检测眨眼和张嘴这些动作,确实可行,但是老师要做静默活体,然后又去试了rPPG,发现也可以,但是时间开销太大了,分析发现受采样定律的限制,10s左右的视频才能做出一个比较好的估计结果。然后去试了一下质量估计,也是有用,但是高质量的攻击也确实不能检测出来。于是慢慢又去做模型的分析,寻找其他的特征,我的目标慢慢从最近的18 19年,转向了12,13年那会,做理论分析的文章。虽然效果不好,但是有理有据,而且很多那时候的传统模型,结合现在的深度学习往往能爆发出强大的力量,于是就有了我现在的工作。

不要盲目的去追求SOTA,那些高大上的结构,网络,因为很多时候并不是那些结构有用,而是trick有用,或者是其他的地方有问题。更重要的是看文章的核心思想,你觉得这个思想是不是合理,你接不接受,如果你自己也觉得他这个思想很不错,那么就可以尝试去复现,就算是最后失败了,你也会不会很难受,你知道什地方有问题,而这会是你后面科研的创新来源之一。

现在深度学习的问题就是这个不到五岁的一个东西,直接盖过了一个领域过去10年甚至20年进化来的传统的模型和研究。但是它真的消失了吗?不,它不过换了一个方式去应用。我最开始做做活体发现近几年什么多模态,多光谱,深度图,时频分析,这些高大上的名词,觉得强的一批,他们是怎么想出来的,后来追溯到10多年前的文章之后才发现,原来这些东西在过去都研究过了,频率,反照率,3D结构,这些在过去都有分析,只不过过去的特征提取算法和数据没有现在这么多,所以没有很好的解决问题,现在被深度学习重新唤起了生机而已。正本清源,知道一个领域过去的研究你才能知道现在在什么地方,特别是各个领域都被深度学习冲击的今天。


user avatar   luson-86 网友的相关建议: 
      

我叫冈萨雷斯,是一个西班牙人,巴塞罗那工厂工人。

1936年,西班牙第二共和国成立的第5年,大选中人民阵线获得了胜利,可把我高兴坏了,他们说要保障工人权利实行社会主义,为此进行了一系列改革。但是军队似乎有自己的想法,政府也不信任军队,为此他们组建了无产阶级先锋队,我加入了,虽然我不知道为什么。几个月来我被派往阿拉贡山区,瓦伦西亚港口,安达卢西亚进行一次又一次的宣传。真是不知道乡下人怎么想的,他们似乎不欢迎我们。听说政府清洗了一个又一个的高级军官,但是内战还是在7月爆发了。我们的对手是一群叫长枪党的人,还有一些保皇派,他们疯了吗想把国王请回来?苦日子没过够吗?我在家乡投入投入了战斗。

我叫埃米利奥,是一个西班牙人,加利西亚的神父。

5年前一群疯子赶走了我们敬爱的国王,现在他们又开始不切实际的改革,什么国有化,什么无神论,这些该死的异教徒,以后要下地狱的。我不关心什么选举,那是城里人的事情,我只想国王能够回到这个国家,带来稳定。一天我的小儿子从军队回来,告诉我要打仗了,我不太相信。饶了我们吧,这世界已经够乱了!但是如果能把国王迎回来,一切都好说。7月的一天,战争开始了,儿子要返回部队了,他的长官也是保皇党,听说他们缺士兵,于是我和我儿子一起来到了前线。我只听我父亲说过他参加的第三次卡洛斯战争,这次轮到我为国王而战了!

我叫弗朗西斯,是一个西班牙人,梅利利亚的水兵。

愚蠢的城里人只知道一天到晚什么改革改革的,还削减我们的军饷。我们这些保家卫国的人凭什么被你们这些人左右,他们懂什么国家,还好军官们也这么想,所以政府指挥不动我们,哈哈!我只知道追随大名鼎鼎的弗朗哥将军,听说他加入了一个长枪党,里面都是些和我一样爱国的小伙子们,我也要为国家而战!虽然我是个水兵,但是听说将军需要更多步兵来和共和军扳手腕,海军马鹿也要上岸了!

我叫乔治,我不是一个西班牙人,我是一个英国人,一个记者。

我在英国接受了良好的教育,又在殖民地为陆军服役了几年,但是我早就厌恶了帝国的虚伪与剥削。我信仰起了马克思,也曾经到欧洲大陆支持过共产主义运动。但是我也反感俄国人,他们不自由,只知道控制自己的人民。他们不是真正的马克思主义。而西班牙人民的选择让我看到了不同的道路,于是我来到西班牙,想见证他们的革命。没想到才来了短短几个月,就爆发了内战,于是我加入到了国际纵队之中,为理想而战。

我叫威廉,我也不是西班牙人,我拒绝承认国家这个概念,是的,我是无政府主义者。

我叫何塞,我是葡萄牙人,里斯本港口工人。

我叫安东尼奥,我也是葡萄牙人,波尔图农民。

……

未完待续




  

相关话题

  当前(2020年)机器学习中有哪些研究方向特别的坑? 
  阿里巴巴达摩院发布 2022 十大科技趋势,今年的趋势预测有哪些亮点? 
  多模态训练,怎么解决不同模态之间差异的问题? 
  如何评价DeepMind新提出的MuZero算法? 
  如何评价浙江大学 FAST-Lab 团队在无人机集群和自主导航领域的研究成果? 
  如何评价南京市河西区环卫工配发智能手表,停留20分钟就自动报警喊“加油”? 
  为什么身边的人都想学计算机,计算机真的有那么好吗? 
  石头和塑料袋对于计算机传感器的差别在于什么?为什么无人驾驶系统会依然存在对周围环境的误判? 
  有人说「真正的人工智能至少还要几百年才能实现」,真的是这样吗? 
  国内外有哪些做小样本学习(Few-Shot Learning)的优秀团队? 

前一个讨论
现在骁龙888旗舰就 iqoo7 和小米 11 曝光了外观,谁的设计更好看?
下一个讨论
动物为什么要叫?





© 2024-05-15 - tinynew.org. All Rights Reserved.
© 2024-05-15 - tinynew.org. 保留所有权利