论文的实验部分应该怎么写?读者需要我们给他们展示什么试验结果?
到今天为止,我已经介绍了论文的abstract,Introduction,design这三大部分的写作了,一篇文章中最后一块主要内容就是实验结果了。当我把实验部分的写作给大家介绍完以后,大家应该就可以看出来一篇文章写作的一个大致的思路了。
很多同学,尤其是一个科研的新手,都觉得我现在在介绍的写作思路对他们来说,一点用也没有。其实,这是大错特错的。我之所以给大家讲写作,我的目的不光是告诉大家应该怎么把论文写得通俗易懂,更希望通过写作技巧的介绍,让大家明白一篇论文是怎么写出来的。这样一来,大家在阅读论文的时候,就会按照写作的思路去找论文中的insight。而这一点对于一个新手来说是至关重要的!!!
所以,不论你是刚开始读论文的科研新手,还是正在为写论文而烦恼的同学,请耐心地看完我关于写作的几篇文章。这几篇文章虽然不能涵盖所有问题,但是这几篇文章已经把一个很好的写作思路给大家呈现出来了。以后我会针对各种具体的写作问题(包括逻辑跳跃等常见问题),再写一些文章。如果你只是想了解一些论文是怎么写出来的,然后带着这些思路去阅读论文,那么读一读我之前这几篇文章就足够了。
回归正题,我们到底应该怎么向读者介绍实验结果?总地来说,我们给读者展示实验结果的时候,我们的原则是:我们只给读者看他们想要知道实验,我们不需要把我们做科研的过程中的每一个步骤的实验都给读者展示一遍。
下面我给大家解释一下这个原则。大家千万别误以为,我在告诉大家要把试验结果修饰地好看一些。我不是这个意思。我的意思是,我们要从读者的角度去思考,一个读者想知道我们做了哪些测试,而不是从我们做科研的角度去,把每一步验证的实验都给读者看。
举个例子。我们的论文讲的是,我们现在制造了一台iphone手机。那么作为发明iphone的科学家,我们在研制这款手机的时候,我们做了大量的实验。比如说,我们为了测试其wifi的性能,我们首先需要把wifi芯片整合到我们的手机主板上。然后我们需要测试一下,这个芯片是否和主板能够正常通信。这时候,我们可能发送一些控制信号给wifi芯片,用来判断它有没有反应。如果wifi芯片有反应了,那么我们的wifi芯片就已经成功连接到我们的主板了。然后我们需要测试wifi的性能。这些性能测试包括,我们需要测试在看视频的时候,wifi能否支持高清视频的传输。打游戏的时候,延迟高不高,以及在家里手机数量多的时候,信号干扰强烈的时候是否可以正常工作。为了做这些测试,我们会设置各种流媒体的服务器,调整传输的视频的编码率,以及编码格式,然后看看我们的wifi芯片的比特错误率,然后再看看视频的信噪比等数据。为了测试打游戏的延迟,我们会人为地引入一些延迟,然后看看我们的wifi芯片会把这个延迟增加多少。最后,我们在一个可控的实验环境里,人为地制造出各种无线噪声来干扰我们的wifi通讯,以此来测试我们iphone手机中的wifi模块的抗干扰能力。
写了这么多,如果你不是一个wifi专家,估计你都看睡着了。我想表达的意思是,这些信息,没必要让读者知道,因为读者不关心这些。读者只关心,我的wifi平均速度是100兆每秒,我的WiFi可以看4k视频。即使有二十个手机都连着家里的路由器,我的手机WiFi的传输速度依然保持在50兆每秒以上。这就够了。读者只想看到,你的设计的性能到底如何?至于你做的那些为了呈现整体性能,而铺垫的一些实验,读者不关心,也不想知道。
那么好,我们来看看,读者或者审稿人一般会想看到哪些实验结果呢?
一般来说,读者们会对4块地方很好奇:
1.你的方法的整体性能,以及和别人方法的对比。
一般来说,我们的论文都会提到一些前人的工作。同时我们的论文也会解决一个研究问题。那么,我们需要给读者展示的第一个实验结果,就应该是我们的方法的效果到底怎么样?跟别人对比一下,我们取得了多大的提升?
比如说,我们的手机WiFi的速度,跟三星,iPhone等品牌对比以后,我们的整体效果可以达到1G/s,比其他品牌高出了2000%。由于我们的手机设计里面采用了最新的Wifi技术,而其他品牌的手机采用的是上一代WiFi的技术,因此我们的速度就应该是其他品牌的好多倍。
请大家注意,这个实验结果,是我们在一个公认的理想条件下做的测试。这是什么意思呢?这个测试条件不一定特别符合实际,但是大家都在这种理想环境下做的测试,我们就可以跟随大家以前的做法来做同样的测试。还拿手机WiFi的这个例子来说,别的厂商测试的时候,是在一个法拉利笼里面做的,为的是屏蔽任何其他无线信号的干扰,同时手机和路由器的距离就5米,而且中间没有任何遮挡。我们知道这种场景和我们实际在家里或者办公室的场景下,使用手机的情况完全不同。但是没关系,这种测试场景是所有厂商都公认的,那么我们也可以这么做。同样道理,我们在做论文的时候只要是符合我们方向上的惯例的实验场景,就可以了。
但是,这不代表造假。造假是什么意思呢?就是说,我在一个完全不可能的条件下做的实验。刚才我们的测试环境虽然理想了一点,但是也有可能存在的。我们有的时间就是离路由器特别近,而且中间也没有格挡,周围也没有干扰。这种条件虽然苛刻,但是是有可能存在的。那么什么样的场景算是造假呢?还拿这个手机WiFi性能测试的例子来说,我们在测试我们的手机里面的WiFi性能的时候,我们并不是直接拿我们的手机来测试的,我们是把WiFi芯片单独拿了出来做的测试。这意味着,我们测试的WiFi性能的数据,并没有考虑到我们的手机对于WiFi性能的影响,因此这种测试的结果不是我们手机里面WiFi性能的结果。其实,很多文章就是利用了这一点,往往在实验的场景上动了一些小的手脚,很多时候审稿人并没有注意到,于是乎就让这些论文给录用了。而我们作为读者,最大的困难是无法复现前人的工作。可是这种无法复现,有可能是前人的工作里面的实验场景有问题而造成的。
2.你的方法中一些关键的参数,对于你的方法整体性能的影响。
我们提出的方法,一般都需要设定一些参数。而这些参数往往会影响整体的效果。比如说刚才那个手机WiFi的例子中,WiFi编码率的设定,与WiFi通讯的距离有一定关系。如果我们把编码率设置的比较高的话,那么相应的通讯距离就会变短。这时候,我们可以测试手机WiFi在不同距离下,调整不同编码率所得到的真正的传输速率。
这里我要强调一下,有时候一些参数和我们的设计可能不太相关,但是我们会误以为它们有关系,然后做了一些无意义的实验。比如说我们在研制手机的时候,我们会以为手机操作系统卡不卡会影响WiFi的性能。这个没错,手机如果本身cpu很卡的话,确实会让整体的性能下降。然而,手机卡不卡是cpu决定的,跟我们的WiFi无关。虽然手机卡的话,WiFi效果也受影响,但是在我们测试手机WiFi性能的时候,我们要把这个因素去除掉,从而专注于测试手机中WiFi的性能。
3.你的方法在不同的但常见的场景下的性能。
我们提出的方法,一般都可以适用于很多场景。比如在手机WiFi这个例子中,我们的WiFi实际性能,在不同的场景包括家中,办公室,商场,饭店,等地方,会有不同的表现。这时候我们可以在这些场景里面测试我们的手机WiFi。再比如,在一些机器学习的文章中,提出的方法要在不同的数据集上面测试,这也是在测试文中方法在不同场景中的表现。
当然了,这些场景的选择是有技巧的。一般来说,我们在Introduction中宣称,我们的方法可以解决xx场景下的xx问题。这时候我们一定要在实验里面进行测试。除了我们宣称的场景,我们还可以参考一下前人的工作都是在哪些场景下做的测试。为了展示我们的方法的普适性,我们可以在别人做过的场景中再测试测我们的方法。归根结底,场景的选择一定要符合实际,而且具有一定的普适性,千万别拿一些非常奇怪的场景来凑篇幅。
4.采用了你的方法以后,系统中的一些其他性能受到什么样的影响?
这一点其实也很关键,毕竟没有免费的午餐。任何方法都是有一定代价的。比如说手机里面的WiFi模块被大大增强了,那么人们可能会担心的耗电量会不会增加?于是乎,我们还需要测试一下我们设计的手机WiFi的耗电量的多少。最理想的情况下,我们的WiFi性能比别人好,同时耗电量并没有增大多少。
类似的,在很多机器学习的文章中,计算复杂度就是一个大问题。那么cpu和gpu的资源消耗,也可以作为实验的一部分。
我认为,这四点基本上可以涵盖一篇文章需要展示给读者的实验结果了。当然了,有的文章可能还会有更多的结果。比如说aircloud中,作者不光设计了整个pm2.5预测平台,还利用其提供的api设计了几款手机app。这都是可以在文章中展示出来,而且都会给这篇论文大大地加分。
到此为止,我已经完整地把一篇文章的写作思路都讲完了。一般来说,我们在写作的时候,先写design部分。因为这部分最难写,而且需要反复修改写作逻辑。当我们design的逻辑确定了以后,我们去补充试验结果。因为design部分不同的写作逻辑,可能会影响文章的定位,以及需要测试的实验。当我们有了design和实验结果以后,我们再去写Introduction。因为Introduction是整个文章的概括。没有一个清晰的定位和design,以及实验结果,Introduction部分的8条信息也就没法填满了。