来源丨https://www.zhihu.com/question/265953178/answer/1621561490
编辑丨Smarter
作为一个在复现论文中踩坑无数,好不容易走出来的人,简单说一下我的看法。
例子1:我是活体检测落地的,老师当时跟我说,旷视能做出来,你应该也可以做个差不多的吧(微笑)。然后我就开始的漫长的算法复现道路。后来很久以后发现了两件事。一是腾讯的一篇论文,做了两个测试,一个是用了公司内部的数据,一个是没用公司内部数据的结果,用了公司内部数据的高了10个点。另一个是前不久小视科技开源的活体检测项目,我去看了一下,,效果确实好,一细看怎么做的,好家伙,千万级的训练集......。
例子2:当初我大四四月份的时候来到教研室,做活体检测的项目,看了近几年的会议和arxiv,找到了一篇效果最好的文章,甚至还公开了代码和预训练模型,心想,这不是稳了吗。当时我想的是:
讲道理,结合pytorch,或者tensorflow,感觉论文复现不应该难才对啊???。
花了两个星期学习tensorflow把它跑通,我去换换其他数据集看看(活体检测不同于其他领域,目前追求的就是跨数据集测试的准确率),结果效果稀烂。我当时在想,不对啊,它跨数据集的测试效果不差,为什么在这上面就是不行?后来数据集申请了下来,
在它论文说的那个数据集上面试了一下跨数据集的测试,确实和文章描述差不多。我就更好奇了,那么好像这个论文就是对的啊,可是为什么其他数据集效果就差这么多(应该没人比我这个情况更奇葩了,不做落地基本不会遇到这个问题)。
后来机缘巧合之下打印了很多日志之后我发现,它的正类和负类偏向不一样,预测主要偏向负类。但是这样效果应该会很差,为什么还这么好,然后我继续细挖,然后重点来了
!!!!!!!我发现它的数据加载里面,正负类的加载就是不对等的,负类是正类的两倍多(正常是对等的),所以偏向负类,但是效果还是很好
。我?????。那天我发现论文造假的另一个至高境界,直接修改数据分布。并不是说这篇文章作者就是故意的,但是谁知道呢,而且后来我师兄也遇到了类似的情况,在dataloader里面对数据进行了修改...。我刚刚又看了一下这篇文章被一个二区期刊收录了。
例子3:教研室有个同学做剪枝,复现CIFAR10的的baseline。CIFAR10这个数据集都说烂了,我浮现一下还不是手到擒来?然后一个月过去了,还是复现不出来那个效果,后来发现原来大家都在用trick。不加余弦衰减,不加mixup,不训练200个epoch,基本就达不到目前大家说的那个SOTA效果,但是这些不会有人和你说的,它们只会说我在resnet50上训练到了多少多少的准确率。
例子4:教研室的师弟,结合GCN做few-shot learning。之前的测试准确率都是百分之五六十,去年ECCV突然出现了一篇准确率直接刷到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结构,这些在过去都有分析,只不过过去的特征提取算法和数据没有现在这么多,所以没有很好的解决问题,现在被深度学习重新唤起了生机而已。
正本清源,知道一个领域过去的研究你才能知道现在在什么地方,特别是各个领域都被深度学习冲击的今天。
本文仅做学术分享,如有侵权,请联系删文。
在「计算机视觉工坊」公众号后台回复:
深度学习
,即可下载深度学习算法、3D深度学习、深度学习框架、目标检测、GAN等相关内容近30本pdf书籍。
在「计算机视觉工坊」公众号后台回复:
计算机视觉
,即可下载计算机视觉相关17本pdf书籍,包含计算机视觉算法、Python视觉实战、Opencv3.0学习等。
在「计算机视觉工坊」公众号后台回复:
SLAM
,即可下载独家SLAM相关视频课程,包含视觉SLAM、激光SLAM精品课程。
重磅!计算机视觉工坊
-学习
交流群
已成立
扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在
交流顶会、顶刊、SCI、EI等写作与投稿事宜。
同时
也可申请加入我们的细分方向交流群,目前主要有
ORB-SLAM系列源码学习、
3D视觉
、
CV&深度学习
、
SLAM
、
三维重建
、
点云后处理
、
自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、深度估计、
学术交流、
求职交流
等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。
原创投稿
也请联系。
▲长按加微信群或投稿
▲长按关注公众号
3D视觉从入门到精通知识星球
:针对3D视觉领域的
知识点汇总、入门进阶学习路线、最新paper分享、疑问解答
四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:
学习3D视觉核心技术,扫描查看介绍,3天内无条件退款
圈里有高质量教程资料、可答疑解惑、助你高效解决问题
觉得有用,麻烦给个赞和在看~
原文链接:
https://www.zhihu.com/question/265953178/answer/1621561490
吴恩达老师曾经说过,看一篇论文的关键,是
复现
作者的
算法
。然而,很多论文根本就
复现
不了,这是为什么呢?一、数据关系 因为作者使用的数据比较私密,一般人拿不到,这种情况下,即使作者提供了源代...
一、数据关系
因为作者使用的数据比较私密,一般人拿不到,这种情况下,即使作者提供了源代码,但是读者却拿不到数据,也就没法
复现
算法
。
这种情况在国内学术界很普遍,数据别人没有,这就好像一位奥数老师,自己出了一道奥数题,自己解答出来,然后把解题过程写了论文,这类论文往往说服力不够,故事性不够强。
二、硬件原因
深度学习
的很多
算法
,是靠大力出奇迹的方法做出来的。比如谷歌、facebook的一些
算法
,依靠强大.
我想把一个TensorFlow代码转为pytorch代码,
深度学习
的代码。经过一个月的调试。。。。。自己好垃圾啊。。。
将这个阴影去除的tensorflow代码转pytorch。
阅读需要
复现
的原文
很快啊,就一天可能就把TensorFlow的网络结构照猫画虎的写成了pytorch
然后就进入了无限调bug阶段。。。持续两周左右
最后想要放弃的时候,打算搭建TensorFlow的环境跑作者提供的代码,这时灵光一现,发现了自己哪里写错了。。。
4.建议的过程
网络结构或许很
复现
论文实验一直是一大
难
题,或者说
复现
实验达到论文中精度是一大
难
题。绝大部分时候我们很
难
复现
到媲美原文的精度,这很大原因是神经网络的参数众多,优化技巧众多,参数初始化等一些列
问题
,一般论文中对不会对小细节的处理进行描述或者他们有着一些不为人知的“trick”,所以我们很多时候我们达不到他们的实验效果。
之前我曾尝试
复现
几篇论文的实验,花了很大力气总算搞出来的,但是结果实验结果与原文中精度总有2-3...
最近准备写一篇论文,发现写论文跟码代码完全不是一件事啊,写着写着就不想写了,于是想着去把之前看的论文整理一下吧,顺便看看别人的造句啥的。这个系列就是随便写写想法,粘贴一些句子,很多论文我也没看懂,一知半解的,如果有人看的话,大家也可以讨论讨论。
大概有个一百多篇的,暂时也没想好怎么去分类,看的很杂,主要还是雷达SLAM,还有一些UWB,视觉啥的。先这样吧,一个博客写个十篇文章,let’s go!
我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能
❝研究生想发篇论文混个毕业,
深度学习
方向的,创新点很小,但是做实验是有效果的。请问这样可以发篇水刊的sci吗?❞首先,当然可以发。不过即使你不提点,也可以发。然后,重点是如何发?给出一些讨论以供参考:刨根问底法此种方法最为直接,即知其然也要知其所以然。如果你提的小改进使得结果变好了,那结果变好的原因是什么?什么条件下结果能变好、什么条件下不能?提出的改进是否对领域内同类方...
1. 适用于大规模动态环境的鲁棒稠密地图
Robust Dense Mapping for Large-Scale Dynamic Environments
文章发表时间:2018年5月
文章下载链接:Robust Dense Mapping for Large-Scale Dynamic Environments
开源链接:http://andr
ei
barsan.github.io/dynslam
一种针对大型动态城市环境的基于立体声的稠密地图
算法
。研究了两种不同的最新实时立体..