diff --git a/assets/fig_guidance/experiments.png b/assets/fig_guidance/experiments.png new file mode 100644 index 0000000..e960635 Binary files /dev/null and b/assets/fig_guidance/experiments.png differ diff --git a/src/blog_graduate_guidance.html b/src/blog_graduate_guidance.html index 31ac4c7..213bd98 100644 --- a/src/blog_graduate_guidance.html +++ b/src/blog_graduate_guidance.html @@ -334,7 +334,210 @@

培养科研能力 Research Capability

博士生应该具有的能力、如何锻炼这些能力、如何做科研项目:参考1[1],参考2[1]。

-

未完待续...

+

博士生应该具有的能力

+ +

[回到目录]


四、论文撰写 Paper Writing

diff --git a/src/blog_graduate_guidance.md b/src/blog_graduate_guidance.md index 08649ce..be401cc 100644 --- a/src/blog_graduate_guidance.md +++ b/src/blog_graduate_guidance.md @@ -21,6 +21,7 @@ - [5. 英语](#5-英语) - [\[回到目录\]](#回到目录-1) - [培养科研能力 Research Capability](#培养科研能力-research-capability) + - [博士生应该具有的能力](#博士生应该具有的能力) - [\[回到目录\]](#回到目录-2) - [论文撰写 Paper Writing](#论文撰写-paper-writing) - [参考文档 Reference](#参考文档-reference) @@ -168,9 +169,88 @@ --- ### 培养科研能力 Research Capability -博士生应该具有的能力、如何锻炼这些能力、如何做科研项目:[参考1](https://github.com/pengsida/learning_research/blob/master/getting_advanced_in_research.md)[1],[参考2](https://pengsida.notion.site/research-project-b43507ef26d044bd888ac29f4736e116)[1]。 +博士生应该具有的能力、如何锻炼这些能力、如何做科研项目:[[参考1]](https://github.com/pengsida/learning_research/blob/master/getting_advanced_in_research.md)[1],[[参考2]](https://pengsida.notion.site/research-project-b43507ef26d044bd888ac29f4736e116)[1]。 + + +#### 博士生应该具有的能力 +- **阅读**:阅读大量论文、进行文献综述、构建文献树、追踪积累最新论文/技术 [[参考]](https://pengsida.notion.site/literature-tree-literature-review-novelty-tree-challenge-insight-tree-f8b36e484b344a2893a94e4608b72ec2) + - 建立对这个领域的视野,知道大家在解决什么问题,培养对重要问题的认知,知道什么是好的论文。 + - 积累解决问题的动机和技术。 + - 用[[文献树]](https://pengsida.notion.site/d192db870bc64436ae4a4a590b36772a)(novelty tree和challenge-insight tree)锻炼和积累想创新点的能力。 +- **创新**:想创新点的能力、检索发现新事物的能力、目标驱动的科研能力、提出新技术的能力 [[参考]](https://pengsida.notion.site/idea-da6ce171c13846b7a7ffaa7473ffa6ea) + - **做研究要先懂得检索**。不管自己想到什么事,都先检索看看有没有相关的解法或内容以作为参考,这样能给自己省很多功夫,并且拓宽很多思路。 + - **目标驱动的科研**(goal-driven research)让自己的研究更有规划、有连续性,让自己的研究更容易出类拔萃。 + - 实时关注相关领域的进展,**其他领域的方法或者思路能够带来关注领域内新的灵感**。从而提出新的技术来解决本领域的问题。 + - 具体来说: + - 1. 规划科研方向的愿景(general goal),制定达到这个愿景的路线图(roadmap)。一般而言,愿景容易定义,但制定路线图需要对领域有深刻的理解,一般由导师或者高年级博士来思考和制定。 + - 2. 根据novelty-tree列出的路线图,选择有研究空间的任务,调研这个任务有没有重要的技术难题。**选题是对一个科研项目影响最大的一步**,而不是后面的想方法。 + - 去思考这个任务长远的目标,一个最终形态是怎样的。为什么当前工作只在这些数据上做,而不在其他数据上做。 + - 应该尝试更多通用场景(general cases)。追求发现新的失败例子(failure cases),**从新的失败例子入手改进原有的技术**。 + - (1)在新的任务设定或者新的数据上容易发现新的失败例子。(2)在新的数据上探索方法的可能性,让大家看到新的实验结论,这是很大的贡献。 + - 3. 从技术层面上分析现在的技术路线(pipelines)在某个任务上不工作的原因,在技术模块(pipeline module)层面思考可能的原因,然后在技术路线上或高层次(high-level)理解上思考可能的原因。 + - 4. 上升到高层次理解和想法、技术路线、技术模块层面进行创新,想出一些技术贡献。怎么提升改进技术路线的能力? + - 首先要知道有哪些技术,这些技术在解决什么问题。然后组合其中的某些技术。 + - (1)构建challenge-insight tree。(2)选择challenge-insight tree中的某些技术,通过创新性的组合来解决当前任务的技术难题。(3)**把可能的pipeline都列出来,然后对比优劣势,选择一个pipeline。** + - 一个高水平科研工作者认为:技术的本质就是对方法做组合,把小的技术组合成大的技术,把老的技术组合成新的技术。**组合已有的技术并挖掘其在新的任务、新的数据上的性质,是一个很大的贡献。**组合不能是```input->A-> intermediate output->B->output```这种完全A + B的组合(完全拼接式的组合)。组合需要是具有创新性的组合。正常情况下直接拼接两个方法也无法解决问题,否则这个问题就没啥技术挑战。 + - 5. 在一些数据上验证这个技术贡献,调效果。不能期望论文故事线好听、应用有意思,审稿人就会放过我们的技术贡献。 + - 6. 当出现新锤子的时候,非常值得拿新锤子来做自己路线图上的某一个里程碑任务(milestone task),这样容易做出有影响力的工作。注意,不是在新锤子原有任务设定上做改进(比如在NeRF的task setting上调它所用数据集的view synthesis的效果),而是**拿新锤子来解决自己在做的里程碑任务的问题**(仍然是目标驱动的研究方式)。 + - 7. 想idea时需要注意的点(什么样的project不值得做) + - 提出idea并做一篇论文是为了给领域做出实际的贡献,不是为了论文本身。 + - 如果一篇论文对领域没有贡献,那么做这篇论文就是在浪费自己的时间,因为我们不会通过这篇论文收获领域的respect,甚至可能收获负面评价。 + - 做这种论文的好处:(1)熟悉投稿流程。(2)有几率收获一篇论文(但概率较小)。 + - 做这种论文的坏处:(1)浪费时间。做这个project的时间可以用来做更有意义的事情。(2)可能被人负面评价。 + - 特别需要注意的点:不要形成依赖导师的心理,要锻炼自己独立自主做科研的习惯和能力。(某种角度上可以说比发论文本身还重要。而且其实自己要有这个能力才能大概率做出论文,不然这个项目基本无疾而终) +- **实践**:代码能力、实验能力、分析实验不工作的原因的能力 + - 实现自己的想法。 + - 在实验中改进自己的想法。 + - 在实验中积累对技术方法的认知,通过实验发现一些技术能解决的问题和不能解决的问题。 + - 在实验中发现一个科研方向存在什么不足之处、存在什么难以解决的问题。 + - 具体来说: + - 1. 如何设计探索性实验,保持清楚的实验思路,提升改进Idea的效率。 + - 现在的实验是否同时包含了几个**探索方向(exploration points)**?怎么修改实验来减少要同时探索的点? + - 现在的实验是否同时包含了几个**技术挑战(technical challenges)**?怎么修改实验来减少其中的技术挑战? + - 我们目前重点想先搞清楚的探索点是什么,最想解决的技术挑战是哪个? + - 2. 把复杂的事情拆解成一组简单的事情,从简单到复杂。 + - **拆解复杂的实验**:从简单的设定开始探索,慢慢加大难度,然后做实际的设定。能够有效降低实验和时间成本。 + - **拆解创新的想法**:把自己的想法分解成各个部分,从可控的想法开始做起,再加探索性、创新性的框架/模块。 + - 3. 在简单任务上做实验(toy experiment) + - **简化实验设定**,保留想解决的技术挑战。 + - **简化数据**,保留想解决的技术挑战。 + - 验证自己写的模型训练代码是否工作,先过拟合一个样本,然后再过拟合一个非常小的数据集上(比如20个训练样本)。 + - 4. 实验结果分析 + - [结果] 失败案例(Failure case)的可视化长什么样?可能是什么导致的?相应的可能原因也可视化看看。3D可视化工具: + - [https://github.com/zju3dv/Wis3D](https://github.com/zju3dv/Wis3D) + - [https://github.com/koide3/iridescence](https://github.com/koide3/iridescence) + - [https://github.com/nerfstudio-project/viser](https://github.com/nerfstudio-project/viser) + - [结果] 失败案例有没有什么规律,有没有什么固定的pattern?这些规律可能引出背后的技术原因。 + - [代码] 各个模块代码的中间输出是否符合预期? + - [训练] 现在方法在测试集上效果不好,那训练集能效果怎样?能过拟合吗? + - [训练] 在其他简单的数据上效果怎样? + - [结果] 记得我们在数据A上效果还不错,为啥数据B上不行?两个数据的区别是啥? + - [方法] 我记得算法A在这个数据上效果没这么差。为啥我们的方法这么差?需要ablation看看哪个模块有问题?也可能是代码写bug了。 + - [方法] 如果是把方法简化,能工作吗?效果怎样? + - [方法] 有可视化过某个模块的输出吗?看看是否符合预期,或者是否存在什么奇怪的现象? + - 5. 实验结果不理想 + - 请注意,快速迭代建立在有效实验的基础上。盲目的做实验可能让事情变得更糟。 + - 要经常性地确认自己在正确的方向上:当前的算法思路真的对吗。要避免陷入local minima。建议经常找同学交流讨论。 + - alt text +- **展示**:写作能力、展示能力、把一篇论文做得漂亮的能力、做演示(demo)的能力 + - 做一篇有影响力、阅读量高的论文,发表在高水平会议、期刊上。 + - 把自己的研究故事、提出的技术清晰地展示给同行。 + - 用演示来吸引读者,提高论文的阅读量和关注度,从而提升论文的影响力。 + - 具体内容见“论文撰写 Paper Writing”。 +- **交流**:和导师、同学交流讨论的能力 + - 让大家帮助自己做科研。 + - 交流讨论对于科研的重要性(解决自己的疑问、验证自己的想法、启发思路、促进同学之间的关系)。 + - 具体来说 + - 1. 如何高效地讨论 + - **讨论的目的:让大家帮助自己project的推进。不要把“讨论”当作工作汇报。** + - 讨论的时候,一些同学害怕“讨论”时间过短,而显得自己没做事情,而可能被导师责怪。所以,通过分享论文、分享繁琐细节的实验现象来凑时长(可能因为遇到一些问题而导致没什么进展才想着凑时长,也可能出于其他考虑才这么做)。 + - 如果真的没啥问题,请直接skip讨论,简单同步一下进展和接下来的规划。如果遇到了问题,就列出要讨论的问题,把“讨论”的重心放在“自己遇到的问题”上。讨论结束地很快也没事,效率越高越好。 + - “讨论”不要分享论文、不要分享繁琐细节的实验现象。什么内容可以体现自己的思考:“智慧有深度的提问”、“对project的规划”、“对技术创新性的思考”。 + - 需要预先做一个简单的ppt。ppt内容可以这么组织:(1)列出需要讨论的问题,和大家一起讨论解决。先抛出问题,然后带着问题去看细节,讲一些自己的思考。看细节的时候,列一些重要的实验现象在ppt里.(2)列出有意思的实验现象和结论。(3)对于科研项目的讨论,**有必要每次讨论的时候review一遍technical contribution**(因为已经受够了review里被reviewer喷contribution不够,或者project做了几个月以后发现没contribution而导致几个月白费)。(4)列出自己下一周的计划。 + - 实验室讨论原则:(1)充分的沟通交流。交流的时候不要害怕老师、高年级同学,不要因此而不敢问问题。有问题请及时问。实验室的老师、学长都非常友好,乐于解答问题。讨论交流的唯一目的是: 正确、高效,能解决你对project的疑问。(2)平等的交流,不是汇报与被汇报的关系。如果科研上有自己的想法,请表达出来。如果觉得老师、学长有说错的地方,请有礼有节地质疑和讨论。不要一味地听信老师、学长的话,但更不要表面服从而底下做自己的想法,这样会浪费很多交流时间和实验成本。实验室的讨论追求高效真诚的沟通。 -未完待续... #### [[回到目录]](#目录)