给研究生的一些建议
这里有一些给刚开始研究的研究生的建议。 虽然主要面向计算机科学专业的学生, 但其他工程专业的学生也能从中受益。
📚 学会如何学习
如果你问我研究生教育与之前的教育最大的区别是什么, 我会说是培养学习能力 (有趣的是,这个概念在机器学习中被称为元学习)。
在你之前的教育中,老师会按照结构化的课程表一步步带领你学习, 规定学什么、什么时候学,所有人都遵循相似的进度。
然而,在研究生阶段,你要研究的可能是前人从未探索过的课题, 没有人知道正确答案。 你必须独立寻找资源,试图找到可能并不存在的答案。
研究生教育的价值在于寻找答案的过程,而不是答案本身。 通过这个过程,你学会如何批判性思考、搜索资源和解决问题。
🚴 工作与生活的平衡:避免持续忙碌
研究工作可能很有挑战性——你的大多数想法可能行不通, 很多投稿可能会被拒绝。 所以,要做好心理准备面对这些起起落落。 需要时要记得休息,保持健康的工作生活平衡。
如果你总是忙得不可开交,可能就没有时间进行创造性和创新性的工作。
⏱️ 定期阅读论文
论文是知识和灵感的重要来源。 养成定期阅读的习惯,思考它们的贡献和创新点。
📖 理解一篇论文
在阅读论文时, 记住要关注这些关键点。
- 问题或任务
首先要思考的是论文要解决的问题或任务, 尤其是当你刚接触这个领域时。 一篇论文通常要么是提出解决现有问题的新方法, 要么是提出一个全新的问题。
当试图理解问题时, 要确保关注输入和输出。 例如,在图像分类任务中,输入是一张图片, 输出是预测该图片属于的类别。 所以,输入是图片,输出是其对应的类别。
仅仅理解到这个层面是不够的。 你需要对输入和输出有更
具体 的理解。 当你说输入是"图片"时,具体是什么意思? 计算机如何表示一张图片? 而"类别"具体又是什么意思? 计算机如何表示这个"类别"?
计算机总是使用(数字化的)数字来处理输入和输出。 理解这些数字是如何组织的很重要。 在图像分类中, 深入理解意味着认识到输入是一个 M x N x 3 的矩阵, 而输出是一个向量,表示输入图片属于每个类别的概率。
- 方法
下一步是理解提出的方法。 要真正"理解"它, 你应该能清晰地想象出该方法是如何一步步处理输入直到产生输出的。 这包括知道每一步的输入和输出是什么。
如果你是初级工程师,在实践中应用论文中的方法, 现阶段这样做很好。 但如果你想深入研究并开发自己的方法, 你需要理解为什么这些方法有效——特别是为什么旧方法不够好——以及 是什么启发作者创造新方法。
- 动机和直觉
一旦你理解了方法是如何工作的, 更深层次的是理解为什么这个方法有效: 为什么作者提出它,是什么激发他们开发它。
一篇好论文会让你既感到惊讶又感到满意。 当你第一次看这篇论文时, 你可能会对新方法或想法感到惊讶,想着: "哇,这是解决这个问题的一个不同方式!" 然而,当你继续阅读并理解论文背后的推理和方法论时, 你会发现这些想法是合乎逻辑和有根据的, 使你同意这种方法确实能有效解决问题。
用一句中国话来形容这种感觉:意料之外情理之中。
- 写作
最后,如果你是博士生或者想在学术界工作, 你需要关注论文的写作。
大的方面,关注论文的结构,思考作者是怎么组织论文的, 怎么讲故事,怎么从已有方法过度到所提出的新方法。 这里有一个很受用的方法:
- 先思考如果你是作者,你会如何组织论文和讲这个故事;
- 然后看看作者是如何组织的,是否有不同之处;
这个不同之处,就是你需要学习的地方。
小的方面,论文中的描述、句式的运用,有哪些可以借鉴的。
作为非英语母语者, 非常有必要收集一些你认为写的比较好的论文, 形成一个知识库, 然后在自己写作时参考和模仿他们。
👨💻动手实践能力
对于计算机科学专业的学生来说, 动手能力基本等于编程能力。
课程和材料
这里强烈推荐 MIT 的 CS教育中缺失的一课。
工具和设置
这是我在AI编程和实验中个人使用的设置和工具。