科研论文如何想到不错的 idea?
点击上方“程序员大白”,选择“星标”公众号
重磅干货,第一时间送达
来自 | 知乎
作者 | 王嘉平
地址 | https://www.zhihu.com/question/300967426/answer/2026222287
编辑 | 机器学习算法与自然语言处理公众号
本文仅作学术分享,若侵权,请联系后台删文处理
本篇回顾我的10篇ACM SIGGRAPH Paper背后的故事,这些idea是怎么来的。大部分的思维方式和方法论是领域无关的,欢迎复制,祝大家早日发顶会,顺利毕业。(之前的回答在另一个地方,现在搬到这里来吧,后续更新在这里继续 ....)
论文基本都是我在MSRA图形组的工作(2003年-2012年),MSRA当年有非常宽松的工作环境,但是其实内部有着以项目为导向的激烈竞争,每年9月附近(Paper deadline通常在次年1月)有项目立项的评审,科研资源(主要是实习生)会根据survive下来的项目重新分配。据我观察,连续两年没有SIGGRAPH Paper的研究员都离开了。此为背景,当然项目的proposal 不仅研究员可以,实习生也是可以的,这就是我这里故事的起点。 这里会依次回顾这10篇SIGGRAPH的idea背后的故事,开追更,分几次更新吧。
其他答主都提到多读论文,读再多论文也不会让你有高质量的idea,充其量会给你找到一些小修小补的increamental idea,发发水会。不要抱着捡idea的目的去读论文,真正有料的东西大家是不会写在future work章节的。但是读论文是必须的,这是你有idea基础,他体现在几个方向上。1. 读论文了解特定领域的进展,知道大家都在做什么问题,研究什么对象,这是有idea的起点。2. 读论文了解特定领域的评价体系,知道"敌人是谁"(existing work),如何正确地去做对比试验(evaluation). 3. 读论文了解特性领域的学术价值观,知道什么样的idea能发什么级别的会,大家value什么东西,小打小闹的东西别去浪费时间了。真有好的Idea也别浪费在烂会上。
在进入一个课题一两年的时候,对这个领域基本都了解,很多人成长的瓶颈期也在这个时候。读论文最重要是在这个阶段帮助你评价idea,过滤平日各种思维火花,发现哪些值得深究一下,哪些可以抛诸脑后。很多时候 读读高质量的论文,并且不要局限于本学科,上位学科,相关的学科里面高质量的论文都要读一读。其实后者,会是发现idea的一个短期捷径。就图形学(Rendering方向)而言,上位科学是比如光学,非监督机器学习,优化算法,信号处理,数据压缩等那些,相关学科可以是视觉,图像处理那些。任何课题都有类似的结构,别老是只读自己学科的论文。
好了,废话不多说,let's go ~~
背景
对图形学本身不感兴趣的同学可以跳过。我主要工作在高真实感实时绘制领域里面的一个子课题,叫做表观建模(Appearance Modeling)。要解的问题是如何在计算机中呈现真实世界中的物体的质感,本质上是建模光线如何在物体表面、次表面以及场景中如何传播,并且能够在渲染中实时重现这些光学现象所导致的视觉效果。是一个 真实数据->模型->模型求值的范式,这一点和现在的机器学习范式有很多相似的地方。数据来自于对真实世界样本的采样,但是光线的反射、散射、扩散是一个高维函数,不是一张图片可以表达的,所以首先数据如何有效采集就是个大课题,然后建模以及建模的求值也是大课题,数据不能太大,求值需要实时,这边也有很多研究课题。所以基本的研究内容就是,设计机械、光电装置以及相机系统采集数据,然后设计模型以及相应的建模算法,最后是渲染算法(模型求值)并且在GPU上实现。最后,图形学的顶会只有一个,ACM SIGGRAPH,论文收录在Transaction on Graphics (ToG),CCF A类。每年收百余篇论文。
启蒙阶段
Shell Texture Functions (ACM SIGGRAPH 2004)
这篇是做非均匀半透明材质的绘制,论文是组里前一年投稿被拒的论文,伤在了最后的对比试验里面把敌人的算法实现错了,当然结果也就不大多了。那个时代没有github,没有开源的风气,要和existing work比较是要自己去写代码实现人家的算法的。(是不是现在已经幸福很多了?) 好在SIGGRAPH论文,尤其是渲染领域的论文可复现率几乎是100%的。我也是因为这个项目,入坑Appearance Modeling。那个时候,没什么idea,老板说做啥,就做啥呗。看看项目需要什么,然后我想想就做个体纹理的编辑器吧,有点类似一个小小的Photoshop。不过编辑的内容是个离散的3D场,里面每个像素(体素)是分RGB通道的反照率、吸收率以及密度(7维)。上图中的玉镯材质数据就是用这个编辑器做的。这个工具(LumiShop)并没有出现在论文里面,只有她产生的数据为论文增加了很多漂亮的Demo。
这个项目基本的认知是,在前人工作的基础上,进一步扩展问题的普适性,从均匀材质扩展到非均匀材质,因为半透明本身就是一个比较难的问题,所以这个工作足够SIGGRAPH的门槛。然后漂亮并convincing的结果,非常,非常,非常的重要,至少对于图形学来说。明显这个工作不是我的idea,但是LumiShop功不可没,虽然论文里面只字未提,当然确实也没必要提。最后就是,实现前人的工作一定要搞明白了,做正确了,否则文章妥妥被杀。这篇论文,从上一年被拒到次年被高分接收,算法和模型部分基本无变化,成事的是对Demo的大幅改进以及修正对前人工作的错误比较,这个很忌讳。LumiShop的idea不能算学术层面,但是对论文的质量至关重要,初入科研的同学们做任何对项目有帮助的事情都是成长,都是对组里的贡献,会被师哥师姐们appreciate的。不过也希望大家的一腔热血不会被辜负,去到一个值得自己的地方。练功嘛,先从挑水开始。话说Windows的兼容性还是杠杠的,10多年前的MFC Multi-Doc程序在Win 10上照样运行得很好,包括里面的3D渲染部分。 Modeling and Rendering of Quasi-Homogeneous Materials (ACMSIGGRAPH 2005)
这篇论文算是我的idea,或者也可以说不算,大家都能想到去做这个事情。原因很简单,这个是上一篇论文非常自然的延续。上一篇的Shell texture function只提到了如何建模和渲染,而数据是编辑合成得到的,不是从真实世界的样本采集到的。如何采集这个模型的数据就是这篇论文的贡献。但实时上,任意的非均质材质的仍旧非常困难,所以这篇论文只做到了大尺度均质小尺度异质,所谓的 Quasi-Homogeneous。而干的活集中在数据采集的光电系统设计以及相应的数据处理和建模算法上面。干了一个下面这样的设备
是的你没看错,上面是LEGO,做了一个小角度的线激光扫描设备,用于采集光线在次表面散射变化的空间分布,用来刻画小尺度上的非均质材质。同年,还是用类似的设备,做了另外一篇文章Capturing and Rendering Geometry Details for BTF-mapped Surfaces,利用线激光在不透明的凹凸表面产生的投影扭曲来获得其表面的一个基于图像表达的隐式几何描述,并应用于实时渲染。就是看上去几何很复杂,但是渲染的Mesh其实很简单。算法原理上不复杂,大量工作在于GPU上的实现和优化。但是这篇论文没中,次年转投了Pacific Graphics(CCF B类)。
在这个阶段,论文层面自己还没有idea, 只是在实现和试验上积极进取,在老板的指挥下前进。这个阶段,也读不少论文,更多是科研的实践,了解全世界的各个Lab都在做什么事情,了解什么样的idea够发顶会的论文,了解科研的全流程,了解各个事项的工作量,了解Reviewer的价值取向以及工业界实际应用的价值要素。形成初步的概念,什么样的idea能做,什么样的idea不够格,什么样的idea别去浪费时间。 这些都是未来自己有idea的关键基础,idea需要有创新性,也需要有可操作性和执行的步骤和时间,你需要赶在deadline之前把所有事情做完,把paper投出去。还需要对工业界有实际的应用价值。天马行空不着边际的想法,这不是paper idea。计算机科学不是自然科学,必须要对工业界的实际应用才有价值,可以是眼下的,也可以是三五年之后的,但是不能没有。
要自己来,哪怕idea再小
Appearance Manifolds for Modeling Time-Variant Appearance of Materials (ACM SIGGRAPH 2006)
这个课题是采集时变材质过程(Weathering过程或者叫风化过程,例如 铁皮发锈随时间的变化),建模并绘制。难点是数据采集,因为实际自然界的Weathering过程非常非常的慢。一开始不觉得这是一个大方向,不过idea足够innovative,其实也是可以的。这个课题Naive的做法就是Timelapse拍摄,每隔一段时间拍摄一下实际物体的样貌,记录成时间序列。这个方法极其耗时(几周甚至几个月),而实际上也极难操作,因为实验中你很难保证这么长的时间里面,相机或者物体或者光照完全纹丝不动。只要中间动了,整个序列接废了。知道CV那边可以图像对准,可以重采样对吧,但是这些操作对图形学来说是不可接受的,哪怕是次像素级的退化。 这篇论文足够的创新在于,摒弃了Timelapse的多帧拍摄方式,而只要拍一帧即可。利用物体表明不同位置上不同的Weathering程度的样本,来构造其随时间变化的序列。这使得数据获取的成本极大减低,耗时几乎可以忽略不计。很巧的是,当年全球同时有三个Lab(另外是耶鲁大学和哥伦比亚大学)也在做这个课题,而只有这篇被高分接收。多年之后,偶尔看到刻画恒星生命周期的赫罗图,这篇论文底层思路是同赫罗图完全一样的。人类从来不可能有机会去沿着时间观测一颗恒星的从诞生到毁灭的过程,因为这个过程花费的时间远超人类文明现存的时间尺度。但是天文学家,利用现在星空中处于各个不同发展阶段的恒星数据收集起来,用来推演恒星的完整发展周期。
为什么说这个idea不算大呢?因为并没有提出新的研究对象/研究范式,也没有发现新的研究问题,而仅仅是对现存的问题给出了一个更好的解法。所以不大。但是这个解法足够的新,足够巧思,并且为实际应用带来的巨大的效率提升,所以SIGGRAPH妥了。是自己第一篇一作的SIGGRAPH论文。
重点来了,这idea咋来的。首先是上位学科的涉猎,这篇论文有个核心的算法,要能够从不同位置上的样本去反推其Weathering的程度。论文采用了非监督学习来做,本质是一个非线性降维算法。因为很久之前读过两篇经典的远古非线性降维,Isomap和LLE,可以从高维样本集中发现其低维的本征子空间。在论文中的Weathering过程可以看成是个一维的子空间。其次是对本领域的了解,之前已经有几篇论文研究Weathering的效果,组里的Yanyun在前一年做了一篇合成Weathering效果的SIGGRAPH论文。知道这个是个被大家认可的题目。再次是对相关领域的了解,这里的相关领域是纹理合成。当时隔壁VC组Sunjian,Wenfeng都有做这个方向。知道对于Weathering所造成的Chaotic Pattern的合成已经可以做得很完美了。 然后是一个午后,记得是出差的时候,和Tongxin捧着咖啡对坐。前面聊什么不记得了,只记得下巴漏了,咖啡流了一些在纸巾上。上面呈现了一片从咖啡的褐色渐变到纸巾的米色。我当时指着纸巾说,这个可以做Weathering的Capture,我可以从这个颜色上反推纸巾上面渗透的程度,也就是Weathering的程度。就是那个瞬间,Dots connected。最初步的idea有了,但是到最后的论文,期间还有无数的小idea。虽然由Isomap启发,但是由于降到1维其实就不需要他的核心算法MDS了;直接在Neighborhood-Graph上算Geodesic Distance会不稳定尤其是样本稀疏的部分;纹理合成是个受控的体纹理而不是常规的二维纹理等等。
是那个午后特别幸运吗? 我想也不是,你需要之前就有很多Dots,包括之前读过的论文,涉猎到的上位学科的工具,各个相关领域前沿的进展,本领域的科研实践以及实操中踩过的各种坑。然后有一天,他们突然被连起来了,并且你敏锐地发现,这个事情有搞头。
下一个idea是什么?
有了第一次之后,后面会很顺利了吗?其实并不是 ..... 大家一定看到各位科研大佬,可以持续不断的出研究成果,接连不断地发表高质量的论文。要做到这一点不容易,但也不是完全没有章法。这件事情叫做研究方向。如果细看各位大佬的历年来的论文,你会发现他能够抓住一点,一个有价值点,持续不断地深究下去,不断输出。在这一个点上,全世界没有几个人真正懂这个具体的方向。 所以进一步的成长是要找到自己的研究方向。这个地方也是一个坎,很多人就是卡在阶段,然后东水一篇论文,西水一篇论文,始终没有找到可以深扎的方向。但是要找到可以深扎的方向非常不容易,也是很多博士生拉开距离的地方。记得那个时候,自己也苦苦挣扎了一年多的时间,一直在想,下一篇做什么 ..... 期间也是追热点,比如追PRT做了一篇Spherical Harmonics Scaling发了PG (CCF B类),做了一篇Image-based Material Weathering,发了CGF (CCF B类),做了一篇硬件的论文An LED-only BRDF Measurement Device,发了CVPR。但始终没有找到可以深扎的方向。
Modeling and Rendering Heterogeneous Translucent Materials using Diffusion Equation (ACM SIGGRAPH 2008)
这边论文是继承前面非均质半透明物体建模的论文,这里要能够采样和建模任意异质的半透明材料,突破上一篇论文的那个大尺度同质小尺度异质的假设。这个也不能太算我的idea,因为要做这个工作也是非常显而易见的。这篇就是在找不到方向的阶段做的,过程非常痛苦。文章并没有太多巧思,就是硬杠,非常不符合我的风格。核心算法基于类似Tomograph的做法,从不同角度的光照情况下的散射图像来反算物体内部的光学材质分布。这是一个典型的invese problem,ill-defined,反解Diffuse Equation是个很困难的优化问题。文中公式巨多,篇幅也很长,以至于第一次投稿的其中一个被拒的理由是文章太长,建议投稿期刊,而不是会议,Orz 。期间各种算法调优,尝试收敛策略,跑结果无数试错,并且必须赶上1月的deadline。记得那年感到前所未有的压力,常常偷偷躲在Lab里反复烧蜡烛块(准备数据采样的物体样本)。比较开心的部分还是做UI,几乎篇论文我都回做个Demo用的editor。这里这个是为了演示我们的建模表达可以支持实时的材质修改和渲染。
做显而易见的延续性工作,是比较容易出Paper的,这里的idea主要来自于科研实践,很多课题你从头到尾实现过了,跑过数据了,做过试验了,你一定会发现里面有各种问题。而现在很多代码开源,反而使得很多人忽视了这个机会。在当年,从头实现别人的论文是家常便饭,也是很多实习生已经来的第一项任务。很多时候我们看到了别人的解法,却不知道是如果在各种探索之后收敛到这个解法的。而往往后者才是找到idea,进一步延续课题研究的关键所在。 这篇论文在渲染部分需要将物体做立方体化,这是一个非常麻烦的几何处理过程,并且要求物体不能有太多的亏格(洞),也不能有纤细的部件。所以这边就是一个显而易见的后续工作。后来我们用四面体化解了这个问题,将空间的6连接Laplace,用4连接来近似,效果也很好。并且可以支持很大程度的物体形变。这样就做了一篇实时渲染的论文Real-time Rendering of Heterogeneous Translucent Objects with Arbitrary Shapes 发了CGF (CCF B类)。这篇论文我把idea给了Yajun,我几乎都没什么指导,他就搞定了。渲染结果非常漂亮,是我自己很满意的一篇论文,虽然是个小idea。
上位学科工具背后的上位学科工具
半透明材质这个事情基本上到这里就没有再继续了。大体上我们所能看到的大的问题都解了。很遗憾到了这里还是没找到有价值的自己的方向。不过期间Xiaofei He来MSRA访问,带来了一篇非监督学习的介绍(还是个Word文档)是讲Landmark MDS的。满屏的矩阵论和高维几何差点直接把我劝退了,反正是比Isomap和LLE难读。当时也是多亏了Zhou Kun积(wei)极(bi)鼓(li)励(you),我还是仔细啃下来了。让我学习到这个很有意思的上位学科工具。这个东西可以看成是Isomap的一个近似加速。Isomap要求获得完整的pairwise的测地距离矩阵,但是如果数据点的个数n太大,这个矩阵就会很大,使得其中SVD求解的步骤非常耗时( O(n^3)的时间复杂度)。然后Landmark MDS提出了一个方法,可以在其中选取k个数据点(Landmark点),通常k << n,先根据这k个点的pairwise矩阵,求解他们的embedding坐标,然后就可以以O(kn)的复杂度求解剩下的所有数据点的完整embedding坐标。只要k比这个embedding的本征维度来的高,这个近似误差就会非常小。
Landmark MDS本质上解了一个这样的问题,如上图的(a),对于一个对称阵,只要获取其中的少量的行 [ A C ] 或 少量的列就可以近似重建整个矩阵。这个特性对Isomap来说是一个加速,而对真实感图形学来说却具有更大的意义。这个对称阵可以用来描述一个半透明物体上任意两点光线传输的衰减,这个在图形学中被称为光线传输矩阵(light transport matrix)。为了获得一个真实物体的光线传输矩阵,我们需要测量每一个点入射的光线在其他物体表面点的出射量,也就是获得这个矩阵的一行(或者一列)。这样为了获得完整的矩阵,我们需要在物体表面一个点一个点地打激光点来做遍历采样,这是一个非常耗时的过程。而这个方法则允许我们打少量的点,拍少量的照片就可以重建整个矩阵,这将极大提高非均质半透明物体的数据采样效率。明显,这可以做一篇还可以的论文。
需要注意的是,这个矩阵(a)并不是距离矩阵,而是由距离矩阵转换过来的相关性矩阵。这个定义和最初Isomap的定义是一样的。MDS算法是将距离矩阵先转成相关性矩阵再求解SVD最终重建embedding的。但在图形学中的光线传输,通常是距离越大,这个传输矩阵的值就越小(衰减越大)。我一开始把Landmark MDS当成一个黑盒子来用,所以做了一步额外的操作把传输矩阵的值做了倒数映射成距离,作为Landmark MDS的输入,否则效果极其糟糕。这里并没有去细究为什么是用倒数,而不是别的什么函数。这种做法叫做Hack,就是用了一个方法或者手段,取得还不错的效果,但是讲不出道理来。这种事情是要尽量避免的,但是你还是会发现不少论文有这种东西,其实蛮忌讳的,所以大家还是会努力给出一些解释,有的时候叫做empirical,有时候用结果比较来说明,总之比较牵强。 但是对于SIGGRPAH来说,这样的idea是不够的。半透明材质的建模之前已经有不少了,包括我们自己的Diffusion Equation那篇,这个改进不够大。对于上位学科工具的直接采用,又讲不清楚其背后的道理也是不会被Reviewer认可的(按顶会的标准)。对于后者,我还是不大甘心,试图从embedding的几何解释角度去套用,认为半透明物体的内部光线矩阵可以映射成某个高维空间中的欧氏距离。虽然这个从数学上看是可以自洽的,但是和其背后的光线散射过程的物理机制毫无关系。这样的生搬硬套的Hack是站不住脚的,一度陷入僵局。
Kernel Nyström Method for Light Transport (ACM SIGGRAPH 2009)
直接从Landmark MDS的embedding视角出发,发现他只能处理对称阵,对应的是半透明物体的light transport问题。事实上,light transport不仅仅可以建模半透明物体,更为有用的是建模场景中的light transport,可以实现场景的重新光照(relighting),经常应用于电影特效中。场景Relighting通常也是用light transport martix来刻画,但是这是一个从光源位置到场景表面位置的传输,既不是个方阵也不对称。光源的输入位置和输出位置定义在不同的域,不像半透明物体中的传输出入是定义在同一个域上(物体的几何表面)。Landmark MDS这个工具就不适用了。 至此,我开始调转枪头,往下看,打开Landmark MDS这个黑盒,去搜寻这个工具背后的机制。最后在这个非监督学习的上位学科中找到了矩阵论中的算法,Nyström Approximation。原理上是当一个矩阵Rank比较低的时候,可以采样其少量的行和列,来近似重构这个矩阵。MDS利用了这个特定来建立embedding但是他只需要处理对称阵。而事实上Nyström方法本身是可以处理任意矩阵的,不需要是方的,也不需要对称。本质上这里是利用矩阵压缩的可能性,任何Low Rank的矩阵都可以应用这个方法,无论这个矩阵背后的物理含义是什么。 这样两个问题迎刃而解。首先场景relight的light transport matrix就可以被处理了,只不过矩阵的行和列都需要采样一些。其次,不再需要引入transport ratio 到 distance 的那个倒数函数,那是个hack,也不需要MDS里面的那一步距离矩阵到相关性矩阵的变换。Nyström求解的直接就是原始的light transport matrix。到这里,这篇论文就基本成型了,有理论又有实际应用的效果。
当然,如果你看论文的标题,Nyström 前面还有一个Kernel。这是一个小小的不甘心而来的idea。Nyström 是一个线性方法,利用的是矩阵的行和列中的线性相关性。但是light transport matrix背后的物理过程所导致的出射光强分布变化并不是一个线性过程。引入一个Kernel函数是有可能降低矩阵的非线性程度,使得矩阵重建更为精准或者需要数量更少的行和列。论文里面讨论了这个kernel function 最简单的形式,一个一维的连续单调函数。但这个函数不能拍拍脑袋随便Hack一个,然后就有了文中的一个章节讨论如果基于采样到的数据优化出这么一个kernel。
最后,Demo里面末尾一个展现了对称阵的例子,一块半透明大理石板。论文的方法非常精准地刻画了各向异性散射特性。谁会曾想这个部分其实是整片论文idea 的起点。这篇论文虽然最终摒弃了高维空间Embedding的这个思路,但是Embedding的这个思路对我有深的影响,其后另有几篇论文的核心算法是基于这个思路达成的。
推荐阅读
关于程序员大白
程序员大白是一群哈工大,东北大学,西湖大学和上海交通大学的硕士博士运营维护的号,大家乐于分享高质量文章,喜欢总结知识,欢迎关注[程序员大白],大家一起学习进步!