实验是用来证明猜想正确与否的关键方法,做好实验对提升论文发表效率至关重要。本篇博客结合自身经历总结做实验的方法论,希望能对读者有用。本篇不会从技术实现角度来介绍做实验的方法,而会从指导思想角度入手。如果你是一个科研工作者的话,相信本篇博客可以帮助到你。
结合自身做实验的经历将实验分成两类:试探实验与成熟实验。
在实验初期,我们其实并不知道实验的目的是什么,甚至连实验所用的工具也并不是十分清楚。这时进行实验的目标并不是十分明确,可以考虑退而求其次,选择以“试探”为主的实验。在“试探”中,出现实验结果要第一时间记录在表格中,并且第一时间与之前的实验结果进行对比,以便产生对实验对象的一个初步印象,并方便设计后续的实验。
实验初期将充满不确定性,这将极大地打击实验积极性。请定时休息不要贪活,并且将思考提到最优先的工作。在“试探”实验中,更多的实验轮次不意味着更快地出结果,思考实验方向才是更加重要的工作。
“试探实验”结束后,需要与其他人讨论实验结果的意义,以及后续是否要沿着实验方向进行。实验方向是实验中最最最重要的内容,选对一个方向比下苦力多做实验要更为关键。对于复杂的科研而言,“试探实验”要进行不止一回,这段时间会比较消耗思考能力。
在做成熟实验之前,首先要保证试探实验已经做得充分,完全讨论了实验主题的内容,并且确认实验方向是无误的。(ps:确认实验方向无误构成了科研最主要的工作部分,同时也导致了科研人的焦虑)
成熟实验比试探实验要“轻松”一些,但这不意味着这部分的工作少。轻松是因为成熟实验中已经有了一个明确的实验方向,并且实验设计已经明确。只需要按照实验设计进行下去,重复实验即可。但为了写一篇论文,这里要进行的实验一般比较大量并且往往需要控制变量和进行对比。
在试探实验中,容易犯的错误是遗漏实验结果。实验结果不仅是实验指标这一方面,还包括实验的设置。例如:在一场提升coverage的实验中,我们关注的是什么导致coverage的提升,因此一场实验的实验设置才是我们实际关注的重点,而coverage结果其实就是一个衡量实验设置重要性的指标。因而实验结果必然包含两部分内容:实验设计+实验指标。
将实验结果存储在表格里是比较常用的手段。这个表格一开始并非就有确定的结构,在实验过程中可以动态更新这个表格。
存储实验结果的位置也值得思考,实验结果过多会导致遗忘实验结果,这会导致实验效率降低。考虑代码写作套路【4】项目文件夹构建中的设计,将实验结果存储在项目文件夹中本身是一个很好的设计。
我曾经尝试过一段时间将实验结果记录在集中化的文件夹中,发现使用这种方法将消耗大量时间把实验结果放在一起,但并非所有实验结果都是有意义的,比较浪费时间。一个解决方案是:按照时间戳构建result文件夹,例如result_20230419
。将实验初始结果存储在result_20230419
文件夹中,并在这个文件夹里构建result.txt
文件,按照表格形式组织实验结果。
总结实验结果,并将实验结果可视化出来,展示出来是实验做完后需要考虑的事情。这个环节应该遵循“少就是多”的原则,不要把数据一股脑地展示在一起,要关注结论,并且用数字展示结论。让人一眼就看出来实验结论是什么,并且相信是实验数据证明了实验结果。
简单原则:尽可能简单地设计实验项目文件夹,降低实验难度。
动态原则:实验不是一下做成的,动态更新策略,并且注意休息保持精力充沛。
一个案例:做实验时,首先创建一个文件夹用来存储结果文件。这里要注意文件夹的命名形式:result_20230419
是一个不错的例子。然后定期将实验结果从实验环境(可能是服务器)下载到本地,存储起来,进行实验数据的保存与备份。