pengsida / learning_research Goto Github PK
View Code? Open in Web Editor NEW本人的科研经验
本人的科研经验
彭老师好。感谢您分享关于文献树构建的经验。 关于这个文章,我还有一个问题想问。
四类novelty应该如何划分?
比如拿图像分类任务来举例子。我的理解是:
第一类 (第一个工作): AlexNet。
第二类 (新的范式): ViT,Mamba。
第三类 (新的模块):VGG, ResNet,MobileNet, GoogleNet, Swin transformer, MLP-Mixer。
第四类(搞不懂和第三类的区别):DenseNet,ResNext , MobileNetv2,
其中,第三类和第四类的区别我个人不太明白,感觉第四类里的网络也可以放在第三类(新的模块),希望彭老师能指正。谢谢。
您好!首先非常感谢您的系统梳理和非常适用的方法论分享,让我们在实操如何做project, 如何开展研究,如何写小论文和有影响力的研究工作有了非常好的实操指南。
不过由于CS学科大多小论文为英语,反而很多研究生对于中文的学术写作语言表达能力可能有欠缺,比如硕博学位论文机翻痕迹偏重,如何将小论文系统性的串成大论文并且有紧密的逻辑关系,如何将自己的roadmap最后呈现为系统性的研究成果。希望后续若有经历能否将大论文写作方法也开一个系列~
此外,若有精力,非常希望能继续搜集推进,比如基金课题的写作技巧等系列,非常期待。
首先非常感谢您的分享,我感觉学习到了很多东西。您在《如何培养想idea的能力》中说“选题是对一个research project影响最大的一步,而不是后面的想方法。”,我非常赞同您的看法。所以关于“选择有研究空间的task”这一点能不能多分享一下您的看法呢?
比如,如何判断一个研究问题是否还有研究空间?该方向上目前的SOTA方法在某些数据集的指标已经快到极限了是否就说明它没有研究空间?或者近期的工作指标的提升都不大是否也能说明这方面没有研究空间了呢?是不是这些情况反过来就说明有研究空间?除了实验指标是否还有其他方面能判断一个问题是否有研究空间呢?
另外,如何判断一个问题是有价值的问题呢?如果一个研究问题在该领域的顶会上发表的数量很少,是否就说明这个研究问题不是很重要呢?反之在顶会上发表过很多论文的研究问题就很值得做?
希望能听听您的看法,谢谢!
@pengsida 思达博士你好,非常感谢你的经验分享,从中学到了很多3D视觉的研究经验,最大的帮助来源于科研节奏方面的经验,也很惊喜和你研究实验习惯高度对齐。一直以来都follow你的研究动态,很多工作给了我很大的启发,能作为你的后辈真的非常幸运。
此外,我还想借你所在CADCG实验室之便,寻求一份图形学研究,特别是传统图形学中渲染、仿真等相关的科研经验。
现在大多同学用的是深度学习这一套实验方法,且相关的模型代码、开源资源特别丰富,甚至坊间流传着对着某某库做修改就能毕业的传说。
然而图形学算法大多不做开源,实验的实现和对比需要花大量时间,结果的呈现上也非常精美,这一套工作流程我相信与深度学习的研究路线有非常大的差异,很多图形学研究者分享了他们的学习路线,但却从未告诉一个图形学研究者读完论文需要准备怎样的代码库来继续做下去,这对想在CAD&CG领域的作出贡献新同学来说无疑是巨大的打击。
因此,如果不介意的话,我希望能请求一份给这些想做图形学、不想做深度学习孩子的Top PhD Student经验,这将对他们非常有帮助。
正直毕业季,如果可能,也欢迎你邀请CADCG实验室图形学方向的top同行们来分享。
最后,祝你毕业快乐!工作顺心!:D
彭老师您好,非常感谢您的这份经验总结,我受益匪浅!
您在”怎么审论文“中写道论文被拒的原因时,一个常见的被拒的原因有contribution不够,比如想解决的failure cases很常见。我有一个疑问是,想解决的failure cases很常见不正是说明这个问题很重要吗,即大家都还没有解决好它,我们去解决这个常见的问题不是很有意义吗。是不是我理解有误呢?
期待彭老师回复!
感谢彭老师分享的如何培养想idea的能力 这篇文章。这篇文章提到了我们要从问题出发去做科研,而不是基于现有的方法去改进 ("methods-driven tinkering".)。
当然我们应该从问题的角度做科研,但是有时候,基于现有的方法改进,也能产生一个SOTA的metric。从功利的角度讲,不太想浪费这一篇文章。但是这类工作确实不太好想故事,因此想请教一下,"methods-driven tinkering"方式做科研,写故事的角度,有没有一个系统性的方法,类似一个算法一样,做了第一步,第二步,第三步,故事自然而然就会输出出来。
拿我自己举例子,我在跑一个baseline的时候,突发奇想把某个顶会文章提出的模块删除了,结果反而高了不少。因此,我也不想浪费这个点,想发出来,毕竟现在这么卷。于是在想文章的motivation,把该领域里面遇到的主要问题一个一个套到我的方法里,但是感觉motivation都有点瑕疵,不是很站住脚。
所以我的问题就是,对于基于方法的创新,如何想方法的motivation?假如何恺明有一天无意间加了一下 shortcut connection,发现效果很好,他有什么系统性的步骤得到 故事 ”shortcut connection可以解决网络退化问题“ ?
个人感觉学习nature等的配色还是有些丑
你好,我想问下能不能加一点关于实验结果分析的分享?就是当用别人模型跑新数据集、或自己设计新的方法时不 work,想要分析结果找找原因,那么一般可以从什么方面进行分析和思考呢?
比如说在做图像生成,生成结果不好,那么从这些不好的结果中可以如何分析出模型不 work 的 insight 呢?
我目前能想到的可能只有盯一下 loss 曲线:用别人模型在其文章的数据集上重新跑一次,画出 loss 曲线作为参考,看看自己的训练是否正常。除此之外就只能根据 training data、losses 这些瞎猜……
那么在你的研究中如果遇到这种不 work 的情况会观察什么结果、怎么思考和分析原因呢?我觉得可能得对问题有了大致的猜测之后,后续才好设计实验验证和改进。这方面有什么经验可以分享吗?
谢谢
彭老师好,谢谢您的分享。您在方法部分,推荐了四种方式:
版本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这种三段式的写法相比您推荐的四种写法,有什么优劣嘛?
您好, 非常感谢您详细细致的总结跟分享!感觉很实用!
想请问一下,关于发现新的 failure cases,有什么好的建议吗?只是关于已有的实验结果是不太容易发现的。发现 failure cases 的过程需要结合武器库这些吗?或者,您有什么好的实践经验吗?怎样才能知道自己发现的 failure cases 是具有较强创新性的呢?
彭老师,您好,读完您的科研分享经验收益匪浅。尤其是读到您的这句"不能期望论文story好听、application有意思,reviewer就会放过我们的技术贡献"更是感同身受,我最近正卡在一直被reviewer质疑技术贡献的阶段。
我目前对科研粗浅的理解是创造出新的知识,为所从事领域提供足够大的信息量,因此我最近做了一些论文也是基于这个准则,也就是重点为所从事的领域提供有意思的insight,比如提出以前方法没有关注到的一个新的维度。但是从技术角度,我的方法每次都是基于这个insight设计出来的比较直观粗暴的方法(由于insight带来的一些从理论上的优势,实验效果在所提出新的维度上自然会更好),这造成了我的工作总是会被一些审稿人质疑"虽然观点/视角有意思,但是方法trival,没有技术贡献" 。
最近饱受这方面的困扰,因此想向您请教一下提高自己工作的技术贡献呢。
非常感谢您的分享。读完这些对我的 Research 帮助很多
实际上写代码在 CS Research 里边仍然占据了一个很大的部分。好的代码风格和实验可复现性是保证 Research 效率的很重要的因素。
但是我遇到的一些 paper 的 codebase 存在代码风格极差,变量命名混乱,结果难以复现的问题
不知道您之后会考虑继续增加类似 “如何在 Research 迭代中保证代码质量” 以及“用哪些工具可以尽可能保证实验的可复现性” 类似的文字呢?
老师好:
感谢您的写作模板,想请教您一个问题。
关于标题和摘要,我发现目前题目有两种风格。一种是会把论文中提出的模块放在标题或者摘要中[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.
首先非常感谢思达博士的经验分享。作为一名图形小白,我想以nerf作为后续的研究方向,不知思达博士可否给出更丰富的资料和建议,在学习game101的过程中,感觉有些内容并未涉及,如三角面片的插值。
再次感谢思达博士的分享。
老师好,感谢您对于文献树的分享。
请教一下,我的这种文献树的构造方法有什么缺点嘛?
第一层(相当于您的general goal那一层):某个目标(比如说全监督条件下的图像分类,或者所有的)
第二层 (相当于您的milestone task 那一层):该任务使用的技术路线(CNN-based, Transformer-based,GNN-based)等
第三层(相当于您的sub task那一层):每类技术下的工作介绍。比如CNN-based技术路线就写上resnet,densenet等,每个工作写上解决的挑战,用的什么方法的大致描述。
彭老师你好,看到你的个人主页风格设计非常简洁大气( https://pengsida.net/ ),尤其是 Research Summary 部分很高级。可以请问一下是否是基于哪个开源主页模版设计的吗,还是自己搭建的哇?
您好,我们实验室是做基于视觉的机械臂抓取相关工作的,实验室师兄主要是做基于深度学习的方面的,老师现在希望可以从强化学习的角度去考虑机械臂抓取工作,师兄给我推荐了几篇相关的文章,包括深度强化学习的(有偏强化学习方面的也有偏深度学习方面的),也有纯强化学习的研究,但是总体上来说,这些都是比较大的分支,该如何去选择更加具体的研究目标呢?希望您能给点建议和思路
思达学长好~
在《如何培养想idea的能力》这一篇中有一个Notion链接好像不是可访问的:
https://www.notion.so/pengsida/434a6b3e34d0403ca178fb0db2338232
不知思达学长可否查看一下权限呢?或者需要我们这边申请呀~
感谢彭老师的分享。在 如何构建literature tree 这篇文章中的标题中,您提到“构建novelty tree和challenge-insight tree”。 但是正文中的标题是“如何创建literature tree:” 和 “如何创建challenge-insight tree:”,以及给出的示例图中 只有literature tree和challenge-insight tree。
请问您在这篇文章中提到的literature tree指的就是novelty tree嘛?
首先非常感谢彭老师的经验分享。因为最近的项目需要,加上学校开设三维视觉的课程较少,需要自己补三维计算机视觉的知识。网络上,包括彭老师也推荐了很多优秀的三维视觉课程,比如图宾根大学的视觉课程。但是这些课程大多为课程视频本身,缺少作业的部分以及测评代码。想请教一下彭老师在这种自学的情况下,如何寻找合适的代码练习让自己对课程的内容有更深的了解。多谢彭老师!
彭博士你好,我想问你是给如何自己的科研做每日计划的,来使自己的科研进度可以按部就班、稳定持续的进行,例如每周看多少篇论文这种。
因为我导比较放养,一点也不push,我自己又属于那种执行力很弱,不会做计划的人,我总是来感觉的时候热情爆发做一点,平时总是摆烂拖着,时光总是在不知不觉中溜走许多,导致我的科研进度很慢。
所以来问问你是怎么给自己安排每日日程的,又是如何做长期规划和短期规划的,希望博士能具体说说,如果能分享下自己日程表就更好啦。
非常感谢彭老师的科研经验分享,为像我一样对科研感兴趣但苦于无人引导的学生指明方向。
想问下彭老师,关于3D Vision的绘图
非常感谢彭博士分享的经验,收获颇丰。
关于”入门3D视觉”里的学习计划page没有权限访问,暂未开放,想请问您是否可以分享出来。想从中学习一些制定计划角度和想法。
非常感谢!
彭老师,感谢您分享出来这么好的科研经验,看完后受益匪浅。
不过在论文写作模板中,关于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 是如何确定的呢?
比如拿自然图像分类任务来说,我认为:
(1)general goal是 “预测一个自然图像的标签”(类似论文投稿的大track)
(2)milestone task就是“全监督图像分类”,"半监督图像分类等",(类似论文投稿的小track),
(3)subtask 我就不能确定是什么了。比如对于 milestone task 全监督图像分类任务,我想不出来有什么sub task,感觉就已经是最基础的task了。
(4)对于利用数据增强来增加训练样本的任务来说(如mixup),是应该另外开一个general goal,还是应该划分到一个milestone task里呢?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.