机器学习研究入门指南:阅读、实践与心态修行


本文以实践者的视角,探讨了机器学习研究入门和进阶的核心原则。
文章指出,研究的起步可以简化为阅读与动手的组合,二者相互促进形成正反馈循环。针对研究方向选择,建议初学者关注基础概念而非短期热点。
文章借鉴禅宗思想,讨论了研究中需要的心态:接受灵感的随机性、对实验结果保持平常心、警惕过度经验带来的思维固化、注重代码质量与实验反馈速度。
文章强调研究成功不仅依赖天赋,更需要适合的气质——好奇心、坚持、细致与健康的偏执。

机器学习研究的心态与修行

机器学习研究不是一个可以按部就班学会的技能,但它确实有迹可循。关键操作是阅读文献和动手写代码,这两件事不能分开做。把这两个动作持续做下去,研究者的身份就自然养成了。


1. 起步方法极其简单,但没人说得这么直白

想搞AI研究?没人真的教你怎么搞。学校课程教的是数学和编程基础,实验室导师给的是方向和资源,但那个“如何从零开始成为一个能独立产出成果的研究者”的路径,基本靠你自己摸索。

起步的配方只有两条。第一条是大量阅读论文,把近几年的顶会文章翻一翻,看看别人在解决什么问题、用了什么方法、怎么讲故事。第二条是大量动手造东西,从复现经典模型开始,到尝试改动某个模块,再到自己搭一个完整系统。这两条缺一不可。

只读论文不动手,你永远停留在“知道”阶段,看不懂代码里的细节陷阱,也不理解为什么某个看似简单的trick能带来巨大提升。只动手不读论文,你会重复发明轮子,花三天时间写出来的数据加载器,其实PyTorch已经帮你写好了。

这个组合拳打出去之后会发生什么?你会发现阅读论文时能更快抓住重点,因为你自己踩过坑,知道哪些部分真正关键。写代码时也能更有方向感,因为你见过别人怎么解决类似问题。两种能力互相促进,形成一个正反馈循环。

实际上这个循环跟学冥想很像。冥想老师会说:心情好的时候要打坐,心情不好的时候也要打坐。做研究也是这样——有灵感的时候坐在电脑前写代码,没灵感的时候也坐在电脑前写代码。科学发现看起来像是随机降临的,运气好时一连串好结果,运气不好时连着三周全是报错信息。

Noam Shazeer在SwiGLU论文里写过一句很好玩的话:“我们无法解释这些架构为何有效,将它们的成功归因于神的恩典。”这种态度很值得品味——有些好结果就是解释不清,承认这一点反而让人轻松。

还有一种常见病叫“过度阅读”。想解决一个具体问题时,最高效的路径是:先自己想一个解法,动手试试,碰到瓶颈,卡住,努力突破,实在走投无路了再去翻文献。这个过程迫使你动用已有知识进行创造性思考,而不是被动地接受别人的框架。如果你一开始就到处找论文看,很容易被别人的思路带偏,失去自己发现新东西的机会。


2. 选什么方向?我的答案是:没那么重要

刚入门的同学经常纠结“我应该做什么方向”,好像选错了就浪费一整年。说实话,对初学者而言具体选什么方向真的差别不大。关键是开始做,而不是做哪个。

但有一个坑要避开:别追那些火了不到六个月的概念。AI发展确实快,但真正的基础原理四十年没变过。2026年大家都在讨论的“harnesses”“agents”“context engineering”,过两年可能就换了一套说法。如果你把精力押在这些短期概念上,风险很大。

反过来,花时间去理解那些不变的东西,回报更稳。比如交叉熵损失函数,你能手算一个小分布的交叉熵吗?能说清楚它为什么比均方误差更适合分类问题吗?再比如奇异值分解,你能不能闭上眼睛在脑子里想象一个矩阵被分解成三个部分的样子?这些东西在深度学习里到处都在用,但真正理解透彻的人比想象中少。

强化学习也是一样。别只盯着“用RL写代码”这个应用场景,去理解策略梯度背后的核心思想——为什么要用概率而不是直接输出动作?为什么奖励要取对数?为什么这些想法几十年来一直有效?理解了这些,以后不管RL变成什么新形态,你都能快速上手。

说一个更扎心的判断标准:如果你的研究项目最好的结果只是“在现有基准上提高了零点几个点”,那你挖得不够深。现有数据集经常测不出真正的新能力。Jason Wei说过一句很到位的话:“在AI研究中,一个被低估但偶尔能决定成败的技能是——找到一个能真正锻炼你新方法的数据集。”十年前这个技能根本不存在,因为那时候数据集就那么几个,大家都用一样的。

具体做什么方向?我给不出答案,这个答案必须从你自己的阅读和实践中长出来。但方向可以给你:往深处走,盯住基础,别追着基准跑。泡在水里,想法自己会浮上来。


3. 专家心态可能是你的敌人

禅宗里有句话:初学者心里有无数种可能,专家心里只有少数几种。这句话在今天的AI研究里特别应景。

硅谷现在流行一个说法:在AI研究里,经验太多反而可能损害直觉。我近距离观察过这个现象——很多来自“前大模型时代”的研究者,依然在花大量精力设计那些在小规模上有效、但放大后明显会失效的方法。他们太习惯旧范式了,习惯到看不见新范式的可能性。

OpenAI有一个很有意思的数据点:公司里负责技术决策的人大部分不到35岁,ChatGPT背后很多重要决策者甚至不到30岁。这说明了什么?说明AI这个领域实在太新了——ChatGPT出现还不到四年——没有人有真正巨大的先发优势,因为所有人入行时间都差不多。

从这个角度看,一个刚入门的初学者和一个做了十年NLP的资深研究员,在“大模型直觉”这个维度上差距可能没有想象中那么大。老研究员熟悉的是RNN、LSTM、Seq2Seq时代的规律,那些规律在大规模Transformer时代未必成立。

关键在于保持开放心态,别让“我当年就是这样做的”这种想法固化你的判断。新方法出来的时候,别急着说“这不可能work”,试着理解它为什么可能work。如果实验结果跟你的直觉相反,优先怀疑直觉而不是实验。

放不下旧想法的人,会被时代放下来。


4. 灵感在你最不期待的时候出现

苯环的结构是怎么发现的?著名化学家凯库勒在梦里看到一条蛇咬住了自己的尾巴,醒来后意识到苯分子可能是环状结构。这个结构之前从来没人想到过,一个梦解决了困扰化学界多年的问题。

司美格鲁肽这个药怎么来的?基本上来自蜥蜴。它模拟的GLP-1激素最早是在吉拉毒蜥的毒液里发现的,这种沙漠蜥蜴一年只吃几顿饭。科学家居然从这个线索出发,做出了一款改变全球数亿人生活的药物。

这两个例子的共同点是:灵感都来自研究之外的地方。做AI研究也一样,我个人绝大多数“啊哈时刻”都发生在离开键盘之后,尤其是散步的时候。盯着屏幕三小时想不通的问题,出门走二十分钟突然就明白了。

达尔文有一条专门的“思考小径”,每天固定走几圈。特斯拉说他的很多发明想法是在散步时冒出来的。费曼喜欢在树林里边走边想问题。亚里士多德的学派干脆叫“逍遥学派”,因为大家边走边讨论哲学。

如果你不打算做研究,也应该多散步。如果你打算做研究,那散步就是工作的一部分。


5. 实验结果无论好坏,都是好消息

就算灵感来了、代码写对了、实验跑通了,结果依然可能让人失望——你的想法在某个基本层面上可能就不成立。或者它好像成立了,但效果微弱到没有实际意义。结果摆在你面前时,你怎么反应?

从禅宗里借一个原则过来:实验中的“平常心”。

实验跑出了好结果?太好了。
实验跑出了差结果?也太好了。

两种结果教给你的信息量一样多。事实上,一串负向结果往往比一个正向结果教你更多。负向结果告诉你边界在哪里、假设哪里出了问题、实验设计的漏洞在哪儿。如果你连续三次实验都失败了,每次失败都排除了一个可能性,你离正确答案其实更近了。

反向来看,你也别对好结果太兴奋。说实话,很多好结果是因为代码有bug——不是结果真的好,是你测错了然后说服了自己。每个人都希望自己的想法能成,这当然很好。但所有有经验的研究者都有一个共同特征:极度怀疑,尤其是面对那些好到不真实的结果时。可惜,那些结果绝大多数时候确实不真实。

下次实验失败的时候试着说一句:“哇,还不work,真有意思!”这听起来有点反人性,但确实是研究者的健康心态。


6. 别人发论文时,问自己一个问题

花不会想着跟旁边的花竞争,它只管自己开花。但研究者很难做到这一点,尤其在学校里,看着同组同学又中了一篇顶会,心里很难完全平静。

别人成功的原因各不相同。有人是运气好,投到了一个匹配的审稿人。有人是选题正好踩中了热点。学术评审这个过程本身既不稳定也不公平——同一篇论文投到两个不同会议可能得到截然相反的评审意见,这种事情每天都在发生。

当你看到自己领域里出了一篇让你佩服的新工作时,问自己一个问题:我现在的深度够不够,能不能自己也做出这个发现?

答案只有两个。如果答案是“能”——那很好,你的研究思路没问题,只是你没做出这个发现。你当时在忙别的事情,或者刚好在休假,但以你的能力水平,你是做得出来的。这其实是个好消息,说明你的研究能力已经到位了。

如果答案是“不能”——那这个问题就是一面镜子,照出你和那个发现之间的差距在哪里。可能是某个技术细节你没掌握,可能是一个思考角度你从来没试过,可能是一个文献领域你完全不了解。把这个“不能”拆开来看清楚,然后去补。


7. 觉悟之前和之后,干的活一样

禅宗公案里有一句特别出名的话:觉悟之前,砍柴挑水;觉悟之后,砍柴挑水。

做研究也是一回事。绝大多数成功的项目背后都是几百小时的脏活累活。Andrej Karpathy当年手动标注了ImageNet很大一部分数据——那个工作量放在今天看几乎不可想象。SWEBench的创建者花了数百小时手动筛选GitHub数据,就为了拿到一小批可用的、适合做评估的GitHub issue。

这些工作的共同点是枯燥、重复、不性感。标注数据、写配置文件、调参数、跑baseline,这些事情不会给你带来任何荣誉,但不做不行。

如果你去看那些顶级研究者的履历,会发现他们职业生涯的早期阶段大部分时间都在默默无闻中度过。可能发了几年论文都没什么人引用,可能做的方向一直不温不火。这个状态很正常,甚至应该习惯它。

一个想法的野心和前瞻性越大,它需要被彻底实现和评估的工作量就越大。这不是bug,这是feature。


8. 代码里的bug比坏想法更致命

Collin Raffel说过一句话我印象很深:很多想法失败不是因为想法本身不好,而是代码里有个bug但研究者一直没发现。

这是个特别棘手的问题,在大语言模型时代尤其严重。现代深度学习软件栈复杂到离谱——训练框架、推理引擎、评估工具、数据处理流水线,每一层都可能藏bug。一个显存溢出的报错可能被自动重试机制吞掉,一个数据打乱的随机种子设置错了可能导致结果完全不可复现,一个分词器版本不一致可能让两个模型的对比失去意义。

如果某个指标看起来不对劲,你不能跳过它。你应该记录大量指标,努力理解每一个。如果一个指标跟预期不符,你得找出原因,因为很可能有什么地方出错了。

我曾经发推说过:研究者最重要的特质之一是“健康的偏执”。拿到结果时默认怀疑它有bug,实验跑通时默认怀疑它只是个巧合,代码能运行时默认怀疑它其实没做对。这种偏执不是性格缺陷,是职业素养。

在AI研究里,看代码的时间应该比看结果的时间多。


9. 实验反馈速度决定一切

深度学习实验跑得太慢了。训练一个模型要几周甚至几个月,现在评估一个模型在单个任务上的表现可能就要好几天。

尤其是用代码智能体做实验的时候,直觉反应可能是同时启动很多实验并行跑,让它们以很慢的速度进行。并行化确实有帮助,但任务切换带来的认知损耗非常严重。

极其重要的是设计一个支持快速反馈的研究流程。缩短冷启动时间,做能快速返回结果的小规模评估。Keller Jordan的nanoGPT极速跑流程是一个很好的例子——它展示了一个人能从快速迭代中学到多少东西,有时候一天跑十几个小实验比一周跑一个大实验收获更多。

当然有些结果确实需要很长时间才能出来。这种情况下,跨天维护实验状态、理解上周启动的实验今天出结果意味着什么,就是一项非常宝贵的技能。

尽量让实验周期短到能在一杯咖啡的时间里跑完一轮。做不到的话,至少短到能在一天内跑完。


10. 代码智能体帮你加速,也让你变蠢

代码智能体(coding agents)能让你更快地写代码、跑实验,但它让两个问题变得更严重了:第一,我们更难理解底层细节了;第二,我们更容易在不同任务之间切换了。

一个智能体可以帮你写训练脚本,可以执行脚本,可以在运行期间照看它,可以解释结果,然后发邮件给你。但它可能遇到了一个报错,然后偷偷把系统提示词缩短了,没告诉你。它可能为了在合理时间内跑完评估,偷偷把序列长度改短了。它可能因为你没指定某个配置,就跑了另一套配置。

从工程角度看,这些都是小错误,修起来很快。但从科学角度看,它们很严重——这种小疏忽可能实质性改变论文的重要结果,因此不可接受。

即使代码不是你写的,如果你想理解结果,就必须理解产出结果的整个系统。这很难。把理解外包给机器很有诱惑力,对很多应用来说也更快。但做好的科学要求你学会整个系统如何运作,这样才能确保你对它的观察是真实的。

这条路没有捷径。你只能一关一关地过,一个bug一个bug地修,一个配置一个配置地检查。过程很笨,但结果是实的。


11. 总结:天赋之外的东西

成为成功的研究者,光有天赋远远不够。气质被严重低估了。

保持好奇和坚持,保持思考和细致,想法自己会来。反过来,如果你只是聪明但缺乏耐心、只是反应快但不够细心、只是创意多但不肯做脏活,那聪明本身帮不了你太多。

整个机器学习研究的底层逻辑其实就这两条:坐在电脑前,看论文,写代码;不在电脑前,散步,睡觉,等灵感。前者是体力活,后者是脑力活,但两者都需要纪律——当你想做的时候要做,当你不想做的时候更要做。

觉悟之前,砍柴挑水。觉悟之后,砍柴挑水。研究也是一样的,没有终点,只有过程。


作者

Jack Morris,独立研究者,曾在多家AI实验室从事研究,关注机器学习方法论与科研实践。