如何做出能被用到的工作?

于我来说,做出来的工作让人开心的一点,就是能够给别人带来益处,或者它本身足够有趣。似乎已经很久没有写过让自己开心的代码了。最近一两年也做了很多尝试,有不少比较细碎的工作,有的公布了出去,有的还尘封在某个目录中,但是都远不如我写DragonOnePiece时候开心。当然,这两个工作也并不见得有用(也没那么没用,据我了解,OnePiece还是帮助了个别的同学入门SLAM),但是最起码它们是比较有趣的,看着自己写出的代码运行后呈现出一些炫酷的结果,也是很开心的。

但是仅仅因为有趣而去做,仅适合于小孩,现在成年了,发现去做这样的工作的机会是越来越少了。并不是说现在的研究项目本身无趣,而是它并没有把我吸引。虽然说现在的工作发表出去,它一定是有点用的,最起码它可以为自己带来一篇论文,最起码它对自己的毕业或者申请奖学金时是加分的。但是它对我来说无趣,也不会帮到多少其他人。

现在想要做出让我开心的工作,突破点应该放在“有用”上了。大部分的文章,发出去之后便会石沉大海。当然,你可以argue自己的工作是被埋没,但是我自己的工作我认为是没什么出头之日。想要知道自己的工作会不会真正会被别人注意或者使用,很简单,只要想象一下这个工作不是自己做的,自己会去想要尝试,甚至是用到自己的项目中吗?

一个关于有用的最直观的指标其实是github的stars。在平时的网上冲浪中,有一些工作是我比较欣赏的。当然,例如DDPM(2.5k stars),这类神级的,咱就不多说了,一些稍微距离我们还比较近的,可以举几个例子:

  • dpm-solver(1.2k stars):一个可以加速DDPM的sample操作的工作。它可以让原本需要进行上百甚至上千的采样步数减少到10步左右,非常牛逼,这是最直观的有用
  • annotated-ai-paper:对应的github为annotated_deep_learning_paper_implementations(37.2k stars)。这是一个论文复现合集,集合了60+比较热门的模型,代码与注释一一对应。当然它的原创性也许没有那么高,但是它很有用,可以帮助其他的研究者更好地去阅读理解代码
  • MedSegDiff(0.7k stars):这是一个用diffusion model去做医疗图像分割的工作,其实它本身并不算突出,分割效果也就那样吧,但是它将diffusion model用到了医学的领域,所以在这个领域也算是一个比较领先的工作,所以有很多人去尝试。它可以帮到这些人了解到如何将diffusion model与自己的领域结合

上述提到的这几个工作,全部都是与diffusion模型相关的,也是为了给出一个比较好的例子,告诉我们怎么样去做有用的工作:

  • 最高级别的:你做出来了漂亮的原创性工作,理论优美,实际效果也惊艳,足以载入自己研究领域的史册!如果说何恺明大佬的一些工作是想法巧妙,但是我们觉得自己如果想到了也能做出来(当然我们并不能想到);那diffusion的论文便是你有一个模糊的概念,也推不出来,也做不出来的。这把剑放在你的面前,你拔不出来(我在说我)。因为超出了我们能力的范畴。想要做,先去心无旁骛地潜心修炼几年数学,可能还要学习物理,做出这样的工作,只能期望下辈子了。
  • 次高级别的:你的工作,很大地解决了上一个基础工作的缺陷。这样的工作,动机不难想。不管是谁去尝试diffusion model的时候,都会被它的采样时长所折磨。因此一定有很多的工作去尝试做这方面的改进。但是你要惊艳大家,你就要效果好,是真正的有用。只是提高一些百分点并不是真正的有用。而且代码要打包得好,能让人们真正容易地用到。比如上述的工作dpm-solver,其实是需要很强的数学能力和工程能力,而且他们的工具包也有很漂亮的说明,容易使用。
  • 其他级别的:在自己熟悉了那些工作的前提下,用自己的思维去把这些牛逼的工作重新整理一下。因为那些牛逼的基础工作不是正常人想出来的,他们也许以为自己讲清楚了,代码注释够好了,但是其实一般的人需要的是更加手把手的教学。这类工作难度相对来说不大,但是我要声明,我非常欣赏这类复现的工作。复现过程中自己本身会更理解作者表达的意思,很多想法可能也会在复现过程中出现,而且还能帮到很多人去了解原有的工作。这类工作也需要付出相当大的精力,而且一般会做成合集。如果我真的没有吃饭和延毕问题,我愿意把所有我欣赏的工作重新自己去实现一遍。
  • 其他级别的:在一个相对落后的领域引入较新的工作。难度与原本提出的工作不是一个级别的。这类工作最大的难度在于,坑位需要抢占。动作慢了,就没那么惊艳了。也许一样可以发表,但是也不会有多少人关注了,除非你的准确度拉满。

其他的,就是一些组合技了,比如我们可以将次高的引入到新领域之类的来提高performance,也可以有一些小改进,比如在最高级别的基础上魔改,这些工作相对来说就没有那么能打了,不过就像我说的,它们还是有用的,对本人有用。

作为一个在读的博士生,尽管愿意去复现各样的工作并且给别人提供一个介绍,但其实时间上是很困难的,甚至我们自己都没有足够时间和精力去详细了解并不相关领域的内容(除非在当助教)。因此要从其他的几个方向尝试突破。在想idea的时候,应该先想想,能不能把好的工作引入新的领域;如果已经没有机会,再去想魔改和缝合。但是也不要丧失理想,不要忘记去想想能不能有一些方法真正去解决一个广泛存在且被认可的问题,也要给自己的脑子一些时间去游离,看有没有机会与天才的idea像陨石般碰撞。

当然,没有做出有用的工作也不用灰心,因为这也是研究,甚至是人生的本来面目。