田渊栋|田渊栋:业余做研究的经验
壹
这四个月以来 , 白天去公司干活 , 晚上在谷歌吃完晚饭后骑车半小时回来继续做自己的研究 , 一直到晚上十一二点睡觉为止 。 做的工作仍然是博士阶段的研究课题 。 这部分工作最近有幸在今年的 ICCV 拿了马尔荣誉奖 , 但是里面可供挖掘的东西仍然很多 , 这几个月把空闲时间拼凑起来 , 取得了不少令人满意的进展 。
下面说一说这四个月来一下利用业余时间做研究的经验 , 或者说做“民科”的经验 (笑) 。 说实话 , 我不知道自己能坚持这个模式多久 , 但先总结一下分享给大家 , 总是好事;另一方面 , 以后自己懈怠了 , 再拿出来看看也是不错的 。
在这里 , 我假定大家是有兴趣做自己喜欢的事情的 , 不然回家那么累 , 看个电视呼呼睡倒 , 还谈什么再做一个课题 , 更不用说成果 。 有了兴趣 , 心里能总是把想要做的事情放在第一位 , 才能继续 。
有了兴趣之后 , 研究的思路可以冒出很多来 , 我经常有这样的体验 , 看完了涯叔的帖子 , 突然对赤壁大战有兴趣了 , 然后就开始 YY 站在曹操的角度看应该如何做选择 , 如何调兵布将 , 等等 , 有时还会为自己的天才想法而沾沾自喜 。 但这些是否就能东拼西凑出一部有关赤壁大战的专著呢?答案当然是否定的 。
天下什么样的观点都有 , 但有用的思路并不多 。 做研究是要分析 , 哪些思路能拧成 一股绳 , 哪些其实本质上相互矛盾 , 哪些需要妥协甚至放弃 , 哪些则是毫不动摇的真理 。 把这些整理出来变成协调一致的理论 , 才能算是有了成果 。 要做到这个 , 是需要有长久的积累功夫的 。 思路要系统化理论化 , 把每天想到的都放在一个大背景和大框架下 , 时常拿出来反复思量推敲 , 慢慢地去粗存精 , 取本舍末 , 才能见别人所未见 。 发别人所未发 。
这个就是研究的大概目的 。 为了这个目标 , 业余做研究就要解决两个具体问题 , 一是时间少 , 二是任务难 。 解决方案很直接:时间少就要提高效率 , 任务难就要循序渐进 。
以我的经验 , 做任何工作 , 全神贯注是最好的选择 , 做完一件再做另一件 。 随意在不同任务间切换所需要的代价是非常大的 。 同时做两件事情所需的时间 , 是先后或者分别做两件事情所花时间的两倍不止 , 并且更麻烦的是工作质量不高 。 试想下花十五分钟的写的破烂程序 , 却要花几个小时去调试它 , 还不如花三十分钟精工细作来得有效 。 我见过有同时做很多任务 , 也做得很好的人 。 但我自己觉得不是那块材料 , 还是老老实实地一件一件做完 。
明白了这个道理 , 做主业时要全神贯注 , 做副业时也要全神贯注 , 这样才有高效率, 能在八个小时内把主业做得让同事和老板都满意 , 除去吃喝拉撒睡还有陪老婆的时间 , 每天余下的三四个小时才属于自己 。 这三四个小时 , 大概只能做一件主要和一件次要的事情 。 主要的事情比如说集中想一个问题 , 或是看两篇文章 , 或是整理思路 , 或是把自己的代码调通 , 或是把这一篇博客写完;次要的事情包括各种生活琐事 , 或是回几封长邮件随便聊天 , 或者给明天的研究起个头 。 如果想要一下完成太多事情 , 那一般只会带来挫败感 。
之后 , 就要解决做研究任务难的问题 。 世上的大部分任务 , 按“过程的难易”与“ 得到成就感的速度”这两个维度分类 , 可以分成四个级别 。 一级任务过程简单回报快 , 比如说杀怪升级或者按老虎机;二级任务过程简单但回报慢 , 比如说日常工作 ;三级任务过程复杂需要反复思考 , 但回报快 , 比如完成一个有趣的小程序小想法 ;四级任务 , 是方法没有现成的 , 需要自己从已有的工作里总结寻找;进度无法控制 , 有时就差一步到终点却一无所得 , 不得不推倒重来——这就是做研究 。
因此 , 做研究之类的四级任务 , 常常让人有绝望感 , 业余做研究 , 时间又受限制 ,更是难上加难 。 怎么办?找一个办法 , 把它的级数降下去 。
怎么降?以我这四个月的经验 , 最重要的一点是要做好笔记 。 笔记有两个作用 , 其 一是给自己一个工作进度的表示 , 想到哪里了 , 做到哪里了 , 哪些地方还没有思考过 , 哪些地方想过了但是还不周密 , 想过的情况越多 , 走过的错路越多 , 说明自己 较之前有所进步 , 这样人为地将成就感提前 , 四级任务就变成三级任务 。 第二个用处 , 是作为思考的路标 , 方便自己从之前中断的思路重新开始 , 节约本就珍贵的时间 , 集中火力攻克目前的重要问题 。 不然今天想这个 , 明天想那个 , 虽然天天都很辛苦 , 但是目标不明 , 攻击力度不够集中 , 做不到绳锯木断水滴石穿 , 到最后累死 累活 , 什么也没有 。
时间久了 , 笔记会越来越长 , 细节也会越来越多 。 因此每隔一阵子要推翻重写一次, 作为大的思路整理 , 把细节砍去 , 重新留一个主干出来 。 有很多细节在落笔的时候认为非常重要 , 但是在之后回顾的时候 , 却发现它其实是可以舍去的 。 每次出现 这种情况的时候 , 说明思路又向外扩展了一层 , 往目标又前进了一步 。
等到觉得这个框架靠谱的时候 , 就可以动手写代码 。 写代码本身是一种放松 , 因为许多部分不需要动脑 , 这样就能降四级任务为两级 , 心理压力能小很多 。 另一方面, 是能逼着自己把思路具体化 , 发现光凭思考发现不了的问题 。 有时候写着写着 ,又会回到思考的过程中去 , 再一次开始迭代的过程 。
做研究犹如逆水行舟 , 今天顺风顺水奋力向前划了一百米非常高兴 , 明天一个逆流 出现倒退两百米甚至翻船都是常有的事情 。 但是不能气馁 , 有耐心慢慢来 , 之前说 做项目不能死磕 , 但做研究就是要死磕 , 时间长了 , 摸清了水流的变化趋势 , 摸清 了所解问题的一般规律 , 终有一天 , 任你顺流逆流 , 都能来去自如 。
贰
那么 , 如何才能做到全神贯注呢?
话说某年某月某日 , 一位绝世大侠在酒楼与众兄弟把酒言欢 , 好不快活 。 突然间一声呼喝 , 仇家披麻戴孝拔刀上楼 , 众酒楼宾客见了这阵仗 , 无不体似筛糠 , 心惊胆战 。 大侠见了 , 一口烈酒入肚 , 神情肃穆 , 站起身来 , 厅堂的聒噪浑然不觉 , 周围的兄弟视若不见 , 眼里只有对手的一举一动 , 一招一式 。 然后对峙 , 猫腰 , 冲刺 ,拔剑 , 兔起鹘落间 , 剑芒暴起 , 人头落地——接着 , 小二还六神无主时 , 大侠早泰然自若 , 呼喝道:“牛肉两斤 , 拿酒来!”
小说家笔法虽然夸张 , 但所谓全神贯注 , 确实就是如此 。 不在乎何时何地 , 时间长短 , 但要目标明确 , 心无旁骛 。 所要解决的问题在心里不停重复 , 并赌上所有的脑力资源在短时间内反复思考 , 不达目的誓不罢休 。 要推公式?推完前不许聊天不许上厕所 , 要调程序?调完前不开网页不查邮件 。 等到看见问题关键所在——或许只 需要十五分钟半小时——之后 , 微博该刷就刷 , 论坛该逛就逛 , 帅哥美女该聊就聊 , 悉听尊便 。 因为今天又有进展了 , 奖励自己有啥不对的嘛 。
借通信的术语来说 , 大脑不擅长频分复用(同时干多件事) , 但很擅长时分复用( 每次干一件事) 。 大脑更像激光而不是日光 , 要么不打开 , 一打开就在纸上烧洞的 。 所以牛人们虽然平日里谈笑风生 , 但都有大脑周期性抽风的症状 , 这不是病 , 而是大脑集中力的体现 。 真要每天工作十几个小时 , 把战线无限延长 , 虽说没功劳也有苦劳 , 但效率如何很难讲 , 至少我是做不到高效率的 。
那如何训练这种技能呢?这个我觉得不是天赋 , 而是后天可以培养的 , 关键在于抽时间做一些需要费脑反复思考的工作 。 比如说看明白维基百科上一个抽象概念 , 看懂一个数学定理或者一篇技术文章 , 完成一个需要比较复杂算法的小程序 , 认真下一盘棋 , 看个长贴思考中心思想 , 或者写一篇思路清晰的长博客 , 都是可以的 。 确信做完一件事情之后 , 休息一下 , 作为奖励 。 像这篇博客 , 本来是没有的 , 但是早上起来突然有想法了 , 马上捧起电脑 , 花了两小时写完改完分享给大家 , 任务完成, 我爽 , 读者也爽 , 皆大欢喜 。
当然 , 所要解决的问题不能太复杂 。 今天突然心血来潮 , 要去弄懂张益唐大牛关于素数间距的证明 , 或者要写一个比谷歌更牛的搜索引擎 , 都是注定要失败的 , 并且这样的失败只会给自己负面的印象 , 影响继续向前的动力 。 比较好的办法 , 是根据自己的情况循序渐进 。 如果问题一时半会儿解决不了 , 就自问卡在哪里了 , 比如说忘记数学公式怎么推了 , 或者某个概念不太明白 , 那下一次解决问题的时候 , 就把目标定得低一点 , 把公式推完概念弄懂就好 。 完成了一个目标 , 再考虑下一个 。 做研究也是一样 , 只是对于问题定义和任务分解 , 需要更高段的技巧 , 和永不放弃的 耐心 。
时间久了 , 当思考成了习惯 , 做事自然就会专注 , 做事专注加上循序渐进 , 正反馈就来得快 , 看见了自己的点滴进步 , 自信也就渐渐上来了 。 然后就会明白 , 别人在做什么 , 别人如何成功 , 其实和自己的内心平衡没有关系 。 各人情况迥异 , 沉浸在比较的虚荣和痛苦中是没有意义的 , 把自己的事情做好就行 , 于是负面情绪就会变 少 , 人也就会活得更自在一点 。 这些 , 是全神贯注对于个人修养的长期效用 。
现在有些人帖子太长就不愿意看 , 分析事物只愿意付诸情感 , 时间长了 , 思考能力是一定会下降的 。 不去分析做事的哪步出了问题 , 只感叹自己老了不行了 , 结果该放弃的放弃 , 不该放弃的也放弃了 , 分明学了二三十年 , 终于有了学识和经验 , 精力能力还没有退化 , 却要做退休养老的打算了 , 岂不是太可惜了么?
叁
除了要专心之外 , 做研究 , 有两个坎要过 , 一个平衡要把握 。
其一 , 读别人文章是坎 。 读文章初时觉得文献浩如烟海不可胜计 , 每年又新增几百上千的文章 , 每篇艰深莫测 , 看也看不完 , 更不用说追踪研究领域的最新动态 , 很有挫败感 。 但看多了 , 就发现翻来覆去原来套路就这么些 , 新文章再出来 , 大概看个半小时或一小时就能领会其精神 , 这样 , 第一个坎就过了 。
这其中的要义 , 是要多思多想 , 积极地归纳总结 。 我见过同学每天熬夜看一箱一箱的文章 , 但却不善此道 , 叫他说出这些文章的主线是什么 , 他却被各种细节所迷惑 , 说不出个所以然来 。 这样辛苦是辛苦了 , 却事倍功半 , 要是处于这种状态 , 那就是要糟糕 , 得停止继续看下去 , 回头好好想想了 。
其二 , 做创新研究是坎 。 做研究一开始随意创新好像天地广阔 , 各种新思路层出不穷 , 一会一个想法 。 但是等到深入下去 , 就会发现自己做的和前人工作并无太大不同 , 这里走一步 , 做过了 , 那里走一步 , 也做过了 , 回头走一步好像没有前人工作 , 效果却不好 , 气急败坏之下贸然投文 , 篇篇被拒 , 就像是孙悟空自以为神通广大 , 却怎么样也逃不过如来的五指山 。 这时才知道自己渺小 , 同行们个个牛逼 , 挫败感顿生 。 借用《棋魂》里近藤光对佐为说的话:“以前看不到你的剑锋在哪 , 所以下棋时无知无畏;现在看到你的剑锋了 , 于是畏首畏尾 , 不敢出招 。 ”
要过这个坎 , 首先得做深入研究 , 看到自己思路的浅薄和渺小;然后得要迎着困难 , 不停思考不停尝试 , 在这个过程中一点一点深入总结前人工作 , 看到它们的本质 , 分析它们的弱点 , 寻找改进的方案 , 最后走出原地踏步的怪圈 , 磨出一篇好文来一剑封喉 。 第一个阶段没过的人 , 往往思路很多却从未实行;第二个阶段没过的人 , 往往放弃了读博 , 都是很可惜的 。
明白了这两个坎 , 心理上会有准备 , 做事就会有长远打算 , 耐心也能磨出来 。
接下来 , 要掌握“细节”和“主题”之间的平衡 。
大家都知道“细节决定成败”或是“一屋不扫 , 何以扫天下”这样的谚语 , 也知道“纲举目张”或是“提纲挈领”这样的成语 , 这两种观点初看起来是完全矛盾的— —到底“大节”或是“细节”哪个重要?其实 , 这个抽象的哲学命题没有意义 , 不自己去尝试具体问题 , 是不知道里面的“度”在哪里的 。 尝试多了 , 大脑自然知道哪些细节是可以忽略的 , 哪些细节是关键 , 差之毫厘谬以千里 。
读别人的文章 , 首先读到的是它的思路它的贡献 , 细节往往放在最后讲 , 这样显得条理清晰 , 逻辑清楚 , 论证有据 。 但真实做研究则截然不同 , 往往是先找到正确的细节 , 然后推广而成理论;先有乱七八糟但管用的方法 , 然后回头整理 , 扮一副堂皇的样子出来见人 。 事实上 , 就如同哲学理论不能解决任何具体问题一样 , 一个不为特定问题量身定做的理论 , 直接拿过来管用的概率是很小的 。 若是它真的管用( 比如说深度学习) , 那么一定是有未被发现的深刻逻辑隐藏其中 。 因此 , 读的时候 , 不要被文章中的各种卖点迷惑住 , 通过思考 , 通过重复别人的实验 , 想方设法找出其中真正重要的东西 , 才是明路 。
那自己做研究的时候要怎么办呢?作为贴着码工的标牌 , 其实骨子里是做数学证明的我 , 现在实践下来行之有效的办法 , 是主题和细节交替来 , 前者告诉自己“我想要达到的目标是什么” , 而后者告诉自己“我现在能做到什么” , 一边是文章满意度的上界 , 一边是下界 , 两边碰了头 , 文章就有了 。 具体来说 , 从正确的细节出发 , 可以为文章的主题定调 , 这样得到的往往是引理定理满天飞却不知所云的文章;另一方面 , 从自己想做的框架出发 , 可以确定什么样的细节是需要证明的 , 为将来的努力把准方向 , 许多小定理小结论虽然本身漂亮 , 但是于大节毫无关联 , 只好忍 痛放弃 。 如此往复 , 直到最后大部分细节都思考过了 , 再从一个合理有趣的框架开始 , 从头到尾地理一遍 , 终于把所有的部件都组装起来 , 成一个细节上正确无误 , 大节上又有出彩贡献的理论 , 这样就功德圆满 。
为此 , 需要写 , 不停地推倒重写 , 每次看似重复的劳动 , 其实都有新发现 。 或者只是某个符号错了 , 或者某个定义需要修改 , 或者突然发现其实整个逻辑都有漏洞 , 需要推倒重来 。 单纯的思考(表现为托腮发呆)往往又耗时 , 得到的结论还是错的 , 在单纯思考下很多问题粗想一想好像理所当然 , 不值得下笔 , 但真一下笔就发现问题所在 , 或是有隐含假设 , 或是有概念滥用 。 特别对刚开始做 PhD的同学而言 ,往往有雄心没技术 , 经常思路发飘 , 一思考就容易陷入混乱 , 为了让思路更精确 , 把所思所想写下来组织好是很重要的 , 时间长了 , 套路领会了 , 思考的效率就会提高 , 才能很快找到要点 。
实验科学要怎么办呢?以我这半年在谷歌的经验 , 虽然要解决的问题截然不同 , 但同样要遵循上述原则 。 一方面在已有解法上小修小补 , 找到能让效果更好的管用小设计 , 让自己至少出点活有绩效 , 这时 , 细节决定成败;另一方面则要推翻现在的解法 , 从大方向出发 , 思考现在手头做的是不是有长远意义 , 能否解决长远问题 , 如果答案是否定的 , 那么就应该尽早开始做正确的事情 。 后者传统上来说是项目经理要负责的 , 但是若是自己能提前想到 , 那效率会高很多 。
最后 , 如何检验自己的成果呢 , 如何证明自己已经跨过难关了?很多人觉得博士生或是研究员们神秘莫测 , 但其实文章真正接收发表的时候 , 至少是我 , 对自己不懈努力苦心经营 , 每一点都思考到想呕吐的模型往往是非常鄙夷的—— 不过如此嘛 , 这么简单的东西居然想了好久才弄出来 , 啊啊啊 , 我实在是太笨了!
有这样的想法 , 那发表出来的东西 , 基本靠谱 。
—版权声明—
来源:田渊栋 , 编辑:nhyilin
仅用于学术分享 , 版权属于原作者 。
若有侵权 , 请联系微信号:Eternalhui或nhyilin删除或修改!
—THE END—
? 10个最酷的数学成果 , 你妈叫你回家做数学!
? 方舟子:哥德巴赫猜想有什么用
? 从金庸的武侠到数学的江湖
? 人人都能读懂的编译器原理
? 张文宏给年轻人的一封信 , 请查收
【田渊栋|田渊栋:业余做研究的经验】? 吴军谈美国高等教育:为什么亚裔入学成绩高 , 但是在大学表现突出的并不多?
推荐阅读
- Flutter|Flutter稳定支持Windows,开发者做好准备了吗?
- 抽奖|盲盒全系列开发,各种盲盒商城抽奖系统小程序/H5/APP源码二开定制
- IT|国产压雪车显身手 在冬奥赛场做出“雪拉面”
- 核心|君盛投资廖梓君:前瞻性布局优势核心赛道,助推优秀企业做大做强
- 蒋昌俊|算法周刊·专访|新科院士蒋昌俊:在防控网络支付风险中做到“以不变应万变”
- 危害|手机电池发热这样做?
- 模式|便携手持云台——做直播、拍短视频轻松拿捏
- Europe|欧盟着手将核能和天然气能源算作"绿色能源"的做法遭遇强烈反对
- 元素|恋爱游戏是越来越“不做人”了
- 才会|2月3日:想用最少的钱临门一脚,促使用户果断购买,怎么做?