Giter Site home page Giter Site logo

learning_research's Introduction

Learning Research

Motivation of this repository

  1. 面向实验室研究生、本科生的科研教学。希望将科研经验进行书面总结,而不是以口口相传的方式传承,帮助实验室新人学习科研。
  2. 开源这样的科研经验,希望对实验室以外的同学有所帮助。
  3. 开源的形式可以接受大家的审阅,得到大家的建议,从而可以改进科研经验。

Postscript:

  1. 本文档内容可能无法完全反映本人想表达的意思,内容可能也不够完整。如果想深入学习科研,推荐在参考文档的情况下在实践与交流中学习。
  2. 本文档适用于本人本实验室的科研经历,但不一定适用于其他情况。
  3. 本文档将持续更新(更新可能会在notion文档中进行,因此不一定会反映在commit history中)。文档上次更新时间:2024年6月1日。

如何努力成为一个Top Ph.D. Student

核心的能力:个人认为,top Ph.D. student懂得设定一个长远的科研目标。这个科研目标具有重要的科学价值和实际价值 (在实际应用中寻找真正有价值的科学问题)。然后根据这个科研目标细化科研的roadmap。博士期间做的几篇论文都是围绕着解决这个科研目标,并且做的论文能够清晰地展示出自己沿roadmap的科研进展,论文demo要尽量很酷(例子:AI4AnimationAI绘画)。

在实际做科研过程中,Ph.D. student需要有五方面的能力:寻找重要的科研问题、提出解决方案、做实验、写论文、做presentation。下面是一些具体的建议。

  1. 如何入门3D Vision的科研
  2. 如何培养自己的科研能力 (寻找科研问题、想idea、做实验、与导师meet)
  3. 如何做research project(博士生应该具有的能力)
  4. 论文写作
  5. 怎么rebuttal
  6. 怎么做学术报告slides

这些建议的部分内容总结在了这个slides和相应的talk video中。

Citation

若该文档对您有所帮助,请在页面右上角点个Star⭐支持一下,谢谢!

如果转载该文档的内容,请注明出处:https://github.com/pengsida/learning_research

Acknowledgements

本文档内容主要是本人与导师、朋友、实验室同学日常交流讨论的总结。在此非常感谢以下人员对这份文档的启发:周晓巍老师孙佳明沈宇军帅青沈泽弘郭浩宇贺星毅林浩通徐震张上展皮怀瑾

learning_research's People

Contributors

pengsida avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

learning_research's Issues

关于发现 failure cases

您好, 非常感谢您详细细致的总结跟分享!感觉很实用!

想请问一下,关于发现新的 failure cases,有什么好的建议吗?只是关于已有的实验结果是不太容易发现的。发现 failure cases 的过程需要结合武器库这些吗?或者,您有什么好的实践经验吗?怎样才能知道自己发现的 failure cases 是具有较强创新性的呢?

关于 Research 代码和可复现性

非常感谢您的分享。读完这些对我的 Research 帮助很多

实际上写代码在 CS Research 里边仍然占据了一个很大的部分。好的代码风格和实验可复现性是保证 Research 效率的很重要的因素。
但是我遇到的一些 paper 的 codebase 存在代码风格极差,变量命名混乱,结果难以复现的问题

不知道您之后会考虑继续增加类似 “如何在 Research 迭代中保证代码质量” 以及“用哪些工具可以尽可能保证实验的可复现性” 类似的文字呢?

科研绘图工具

非常感谢彭老师的科研经验分享,为像我一样对科研感兴趣但苦于无人引导的学生指明方向。
想问下彭老师,关于3D Vision的绘图

  1. 除了PPT以外,有什么开源的容易上手的工具可以高效地画出好看的图呢?
  2. 呈现实验效果的图片是否有什么比较好用的工具?
    感激不尽!

一份祝福,也是一份请求

@pengsida 思达博士你好,非常感谢你的经验分享,从中学到了很多3D视觉的研究经验,最大的帮助来源于科研节奏方面的经验,也很惊喜和你研究实验习惯高度对齐。一直以来都follow你的研究动态,很多工作给了我很大的启发,能作为你的后辈真的非常幸运。

此外,我还想借你所在CADCG实验室之便,寻求一份图形学研究,特别是传统图形学中渲染、仿真等相关的科研经验。

现在大多同学用的是深度学习这一套实验方法,且相关的模型代码、开源资源特别丰富,甚至坊间流传着对着某某库做修改就能毕业的传说。
然而图形学算法大多不做开源,实验的实现和对比需要花大量时间,结果的呈现上也非常精美,这一套工作流程我相信与深度学习的研究路线有非常大的差异,很多图形学研究者分享了他们的学习路线,但却从未告诉一个图形学研究者读完论文需要准备怎样的代码库来继续做下去,这对想在CAD&CG领域的作出贡献新同学来说无疑是巨大的打击。

因此,如果不介意的话,我希望能请求一份给这些想做图形学、不想做深度学习孩子的Top PhD Student经验,这将对他们非常有帮助。
正直毕业季,如果可能,也欢迎你邀请CADCG实验室图形学方向的top同行们来分享。

最后,祝你毕业快乐!工作顺心!:D

请教老师关于论文写作模板中方法部分的问题。

彭老师好,谢谢您的分享。您在方法部分,推荐了四种方式:

版本1,先写module forward process,然后写module discussion。
版本2,先写module discussion,然后写module forward process。
版本3,先写module design,然后写module discussion。
版本4,先写module discussion,然后写module design。

您这四个版本里,通常是motivation或者advantage合并成一个部分,其余的方法描述是另一部分。这两部分顺序变换着写。

但是我个人的经验,先写motivation,然后写forward process,最后总结方法的advantage。
因为我感觉,如果我在最开始不介绍为啥要用方法A,会让读者有点突兀。
如果在介绍完方法A怎么做的之前就开始说advantage,也会让读者疑惑:为什么方法A可以做到这种advantage。

所以我想请教一下:motivation,然后写forward process,最后总结方法的advantage这种三段式的写法相比您推荐的四种写法,有什么优劣嘛?

后续可否有学位论文的中文写作技巧分享系列

您好!首先非常感谢您的系统梳理和非常适用的方法论分享,让我们在实操如何做project, 如何开展研究,如何写小论文和有影响力的研究工作有了非常好的实操指南。
不过由于CS学科大多小论文为英语,反而很多研究生对于中文的学术写作语言表达能力可能有欠缺,比如硕博学位论文机翻痕迹偏重,如何将小论文系统性的串成大论文并且有紧密的逻辑关系,如何将自己的roadmap最后呈现为系统性的研究成果。希望后续若有经历能否将大论文写作方法也开一个系列~

此外,若有精力,非常希望能继续搜集推进,比如基金课题的写作技巧等系列,非常期待。

about analysing results: principles, methods & experience

你好,我想问下能不能加一点关于实验结果分析的分享?就是当用别人模型跑新数据集、或自己设计新的方法时不 work,想要分析结果找找原因,那么一般可以从什么方面进行分析和思考呢?

比如说在做图像生成,生成结果不好,那么从这些不好的结果中可以如何分析出模型不 work 的 insight 呢?

我目前能想到的可能只有盯一下 loss 曲线:用别人模型在其文章的数据集上重新跑一次,画出 loss 曲线作为参考,看看自己的训练是否正常。除此之外就只能根据 training data、losses 这些瞎猜……

那么在你的研究中如果遇到这种不 work 的情况会观察什么结果、怎么思考和分析原因呢?我觉得可能得对问题有了大致的猜测之后,后续才好设计实验验证和改进。这方面有什么经验可以分享吗?

谢谢

请教一下关于论文动机的问题

老师好,感谢您分享的科研经验。 我最近对于论文动机部分,有一个问题想请教。就是我看到有一些论文的动机,会直接说 “然而,XXX放在A任务上还没有被探索过。”

请问这种动机,要在什么条件下写才合适呢?如果这样子的动机随便都能写,那么我可以把随便任何一个技术拿到某个领域去发文章,甚至不需要想动机,直接写“该类技术在XX任务上还未被探索过”就行了。

关于怎么审论文

彭老师您好,非常感谢您的这份经验总结,我受益匪浅!

您在”怎么审论文“中写道论文被拒的原因时,一个常见的被拒的原因有contribution不够,比如想解决的failure cases很常见。我有一个疑问是,想解决的failure cases很常见不正是说明这个问题很重要吗,即大家都还没有解决好它,我们去解决这个常见的问题不是很有意义吗。是不是我理解有误呢?

期待彭老师回复!

老师好,请问一下文献树的问题

老师好,感谢您对于文献树的分享。

请教一下,我的这种文献树的构造方法有什么缺点嘛?

第一层(相当于您的general goal那一层):某个目标(比如说全监督条件下的图像分类,或者所有的)
第二层 (相当于您的milestone task 那一层):该任务使用的技术路线(CNN-based, Transformer-based,GNN-based)等
第三层(相当于您的sub task那一层):每类技术下的工作介绍。比如CNN-based技术路线就写上resnet,densenet等,每个工作写上解决的挑战,用的什么方法的大致描述。

关于技术贡献

彭老师,您好,读完您的科研分享经验收益匪浅。尤其是读到您的这句"不能期望论文story好听、application有意思,reviewer就会放过我们的技术贡献"更是感同身受,我最近正卡在一直被reviewer质疑技术贡献的阶段。

我目前对科研粗浅的理解是创造出新的知识,为所从事领域提供足够大的信息量,因此我最近做了一些论文也是基于这个准则,也就是重点为所从事的领域提供有意思的insight,比如提出以前方法没有关注到的一个新的维度。但是从技术角度,我的方法每次都是基于这个insight设计出来的比较直观粗暴的方法(由于insight带来的一些从理论上的优势,实验效果在所提出新的维度上自然会更好),这造成了我的工作总是会被一些审稿人质疑"虽然观点/视角有意思,但是方法trival,没有技术贡献" 。

最近饱受这方面的困扰,因此想向您请教一下提高自己工作的技术贡献呢。

如何判断一个研究问题是否值得去做(是好的问题)呢?

首先非常感谢您的分享,我感觉学习到了很多东西。您在《如何培养想idea的能力》中说“选题是对一个research project影响最大的一步,而不是后面的想方法。”,我非常赞同您的看法。所以关于“选择有研究空间的task”这一点能不能多分享一下您的看法呢?

比如,如何判断一个研究问题是否还有研究空间?该方向上目前的SOTA方法在某些数据集的指标已经快到极限了是否就说明它没有研究空间?或者近期的工作指标的提升都不大是否也能说明这方面没有研究空间了呢?是不是这些情况反过来就说明有研究空间?除了实验指标是否还有其他方面能判断一个问题是否有研究空间呢?
另外,如何判断一个问题是有价值的问题呢?如果一个研究问题在该领域的顶会上发表的数量很少,是否就说明这个研究问题不是很重要呢?反之在顶会上发表过很多论文的研究问题就很值得做?
希望能听听您的看法,谢谢!

彭老师,请教关于Conclusion如何写的问题

彭老师,感谢您分享出来这么好的科研经验,看完后受益匪浅。
不过在论文写作模板中,关于Conclusion部分我有点不明白。

关于Conclusion,您是这么写的:Limitation一般写的是因为task goal或者task setting而导致的limitation(类似于讨论future work),不要写技术上存在的缺陷。
然后您举了一个例子如下:
Common videos are more than a few minutes. However, this work only deals with videos of 100 to 300 frames, which are relatively short, thus limiting the applications. How to model a long volumetric video remains an interesting problem.

对于您举的例子,在我看来,this work only deals with videos of 100 to 300 frames, 同样也算技术上的缺陷,即该方法无法处理长序列。
我想知道 技术上的缺陷因为task goal或者task setting而导致的limitation 之间的本质区别是什么?比如我提出的算法虽然显存消耗比当前方法更小,但是训练时间却更长,这个算技术上的缺陷还是task goal导致的缺陷呢?

请问文献树的general goal, milestone task, subtask 是如何确定的呢

感谢老师分享的文献树 示意图

关于文献树,请问general goal, milestone task, subtask 是如何确定的呢?

比如拿自然图像分类任务来说,我认为:
(1)general goal是 “预测一个自然图像的标签”(类似论文投稿的大track)
(2)milestone task就是“全监督图像分类”,"半监督图像分类等",(类似论文投稿的小track),
(3)subtask 我就不能确定是什么了。比如对于 milestone task 全监督图像分类任务,我想不出来有什么sub task,感觉就已经是最基础的task了。
(4)对于利用数据增强来增加训练样本的任务来说(如mixup),是应该另外开一个general goal,还是应该划分到一个milestone task里呢?

想请教一下关于标题和摘要取名的问题

老师好:
感谢您的写作模板,想请教您一个问题。
关于标题和摘要,我发现目前题目有两种风格。一种是会把论文中提出的模块放在标题或者摘要中[1], 另一种是尽量不放提出的方法的名字,而把要做的事情描述出来[2]。 摘要也差不多类似,看到有些工作会把自己提出的各种模块都在摘要里说出来,另一种风格就是不放具体模块的名字,而是描述一下这些模块都能做什么。
请教一下,这两种风格您认为都有哪些利弊呢?您更倾向于哪一种呢?

[1] Dynamic Graph Representation with Knowledge-aware Attention for Histopathology Whole Slide Image Analysis. CVPR 2024.
[2] Feature Re-Embedding: Towards Foundation Model-Level Performance in Computational Pathology. CVPR 2024.

如何做科研日程规划

彭博士你好,我想问你是给如何自己的科研做每日计划的,来使自己的科研进度可以按部就班、稳定持续的进行,例如每周看多少篇论文这种。
因为我导比较放养,一点也不push,我自己又属于那种执行力很弱,不会做计划的人,我总是来感觉的时候热情爆发做一点,平时总是摆烂拖着,时光总是在不知不觉中溜走许多,导致我的科研进度很慢。
所以来问问你是怎么给自己安排每日日程的,又是如何做长期规划和短期规划的,希望博士能具体说说,如果能分享下自己日程表就更好啦。

请问个人主页有模版吗?

彭老师你好,看到你的个人主页风格设计非常简洁大气( https://pengsida.net/ ),尤其是 Research Summary 部分很高级。可以请问一下是否是基于哪个开源主页模版设计的吗,还是自己搭建的哇?

请问一下,novelty tree指的是什么?

感谢彭老师的分享。在 如何构建literature tree 这篇文章中的标题中,您提到“构建novelty tree和challenge-insight tree”。 但是正文中的标题是“如何创建literature tree:” 和 “如何创建challenge-insight tree:”,以及给出的示例图中 只有literature tree和challenge-insight tree。

请问您在这篇文章中提到的literature tree指的就是novelty tree嘛?

关于NeRF

首先非常感谢思达博士的经验分享。作为一名图形小白,我想以nerf作为后续的研究方向,不知思达博士可否给出更丰富的资料和建议,在学习game101的过程中,感觉有些内容并未涉及,如三角面片的插值。
再次感谢思达博士的分享。

关于确定科研目标的一些疑惑

您好,我们实验室是做基于视觉的机械臂抓取相关工作的,实验室师兄主要是做基于深度学习的方面的,老师现在希望可以从强化学习的角度去考虑机械臂抓取工作,师兄给我推荐了几篇相关的文章,包括深度强化学习的(有偏强化学习方面的也有偏深度学习方面的),也有纯强化学习的研究,但是总体上来说,这些都是比较大的分支,该如何去选择更加具体的研究目标呢?希望您能给点建议和思路

关于链接的可访问性

彭老师您好,非常感谢您分享的科研经验文档。我学习后得到了很多启发!

在文档中有一个我非常感兴趣的题目,一直无法访问,想请老师帮忙解决:
1716804250072

谢谢老师🙏

请教老师关于论文写作模板中方法部分的问题。

老师好,感谢分享这么好的模板。

我想请教一下,您在论文写作模板中提到了两个概念。module design 和 Module forward process。这两个概念的核心区别是什么呢?您给的Neural Body 的例子中,我没有找到您的module design模块的具体写作规律。 Module forward process的写作规律倒是挺明确的, 从输入到输出。

关于文献树的构建问题

彭老师好。感谢您分享关于文献树构建的经验。 关于这个文章,我还有一个问题想问。

四类novelty应该如何划分?

比如拿图像分类任务来举例子。我的理解是:
第一类 (第一个工作): AlexNet。
第二类 (新的范式): ViT,Mamba。
第三类 (新的模块):VGG, ResNet,MobileNet, GoogleNet, Swin transformer, MLP-Mixer。
第四类(搞不懂和第三类的区别):DenseNet,ResNext , MobileNetv2,

其中,第三类和第四类的区别我个人不太明白,感觉第四类里的网络也可以放在第三类(新的模块),希望彭老师能指正。谢谢。

关于学习计划

非常感谢彭博士分享的经验,收获颇丰。
关于”入门3D视觉”里的学习计划page没有权限访问,暂未开放,想请问您是否可以分享出来。想从中学习一些制定计划角度和想法。

非常感谢!

关于三维计算机视觉的学习

首先非常感谢彭老师的经验分享。因为最近的项目需要,加上学校开设三维视觉的课程较少,需要自己补三维计算机视觉的知识。网络上,包括彭老师也推荐了很多优秀的三维视觉课程,比如图宾根大学的视觉课程。但是这些课程大多为课程视频本身,缺少作业的部分以及测评代码。想请教一下彭老师在这种自学的情况下,如何寻找合适的代码练习让自己对课程的内容有更深的了解。多谢彭老师!

关于方法驱动类的工作怎么想motivation。

感谢彭老师分享的如何培养想idea的能力 这篇文章。这篇文章提到了我们要从问题出发去做科研,而不是基于现有的方法去改进 ("methods-driven tinkering".)。

当然我们应该从问题的角度做科研,但是有时候,基于现有的方法改进,也能产生一个SOTA的metric。从功利的角度讲,不太想浪费这一篇文章。但是这类工作确实不太好想故事,因此想请教一下,"methods-driven tinkering"方式做科研,写故事的角度,有没有一个系统性的方法,类似一个算法一样,做了第一步,第二步,第三步,故事自然而然就会输出出来。

拿我自己举例子,我在跑一个baseline的时候,突发奇想把某个顶会文章提出的模块删除了,结果反而高了不少。因此,我也不想浪费这个点,想发出来,毕竟现在这么卷。于是在想文章的motivation,把该领域里面遇到的主要问题一个一个套到我的方法里,但是感觉motivation都有点瑕疵,不是很站住脚。

所以我的问题就是,对于基于方法的创新,如何想方法的motivation?假如何恺明有一天无意间加了一下 shortcut connection,发现效果很好,他有什么系统性的步骤得到 故事 ”shortcut connection可以解决网络退化问题“ ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.