这四个月以来,白天去公司干活,晚上在谷歌吃完晚饭后骑车半小时回来继续做自己的研究,一直到晚上十一二点睡觉为止。做的工作仍然是博士阶段的研究课题。这部分工作最近有幸在今年的 ICCV 拿了马尔荣誉奖,但是里面可供挖掘的东西仍然很多,这几个月把空闲时间拼凑起来,取得了不少令人满意的进展。

下面说一说这四个月来一下利用业余时间做研究的经验,或者说做“民科”的经验 (笑)。说实话,我不知道自己能坚持这个模式多久,但先总结一下分享给大家,总是好事;另一方面,以后自己懈怠了,再拿出来看看也是不错的。

在这里,我假定大家是有兴趣做自己喜欢的事情的,不然回家那么累,看个电视呼呼睡倒,还谈什么再做一个课题,更不用说成果。有了兴趣,心里能总是把想要做的事情放在第一位,才能继续。

有了兴趣之后,研究的思路可以冒出很多来,我经常有这样的体验,看完了涯叔的帖子,突然对赤壁大战有兴趣了,然后就开始 YY 站在曹操的角度看应该如何做选择,如何调兵布将,等等,有时还会为自己的天才想法而沾沾自喜。但这些是否就能东拼西凑出一部有关赤壁大战的专著呢?答案当然是否定的。

天下什么样的观点都有,但有用的思路并不多。做研究是要分析,哪些思路能拧成 一股绳,哪些其实本质上相互矛盾,哪些需要妥协甚至放弃,哪些则是毫不动摇的真理。把这些整理出来变成协调一致的理论,才能算是有了成果。要做到这个,是需要有长久的积累功夫的。思路要系统化理论化,把每天想到的都放在一个大背景和大框架下,时常拿出来反复思量推敲,慢慢地去粗存精,取本舍末,才能见别人所未见。发别人所未发。

这个就是研究的大概目的。为了这个目标,业余做研究就要解决两个具体问题,一是时间少,二是任务难。解决方案很直接:时间少就要提高效率,任务难就要循序渐进。

以我的经验,做任何工作,全神贯注是最好的选择,做完一件再做另一件。随意在不同任务间切换所需要的代价是非常大的。同时做两件事情所需的时间,是先后或者分别做两件事情所花时间的两倍不止,并且更麻烦的是工作质量不高。试想下花十五分钟的写的破烂程序,却要花几个小时去调试它,还不如花三十分钟精工细作来得有效。我见过有同时做很多任务,也做得很好的人。但我自己觉得不是那块材料,还是老老实实地一件一件做完。

明白了这个道理,做主业时要全神贯注,做副业时也要全神贯注,这样才有高效率 ,能在八个小时内把主业做得让同事和老板都满意,除去吃喝拉撒睡还有陪老婆的时间,每天余下的三四个小时才属于自己。这三四个小时,大概只能做一件主要和一件次要的事情。主要的事情比如说集中想一个问题,或是看两篇文章,或是整理思路,或是把自己的代码调通,或是把这一篇博客写完;次要的事情包括各种生活琐事,或是回几封长邮件随便聊天,或者给明天的研究起个头。如果想要一下完成太多事情,那一般只会带来挫败感。

之后,就要解决做研究任务难的问题。世上的大部分任务,按“过程的难易”与“ 得到成就感的速度”这两个维度分类,可以分成四个级别。一级任务过程简单回报快,比如说杀怪升级或者按老虎机;二级任务过程简单但回报慢,比如说日常工作 ;三级任务过程复杂需要反复思考,但回报快,比如完成一个有趣的小程序小想法 ;四级任务,是方法没有现成的,需要自己从已有的工作里总结寻找;进度无法控制,有时就差一步到终点却一无所得,不得不推倒重来——这就是做研究。

因此,做研究之类的四级任务,常常让人有绝望感,业余做研究,时间又受限制, 更是难上加难。怎么办?找一个办法,把它的级数降下去。

怎么降?以我这四个月的经验,最重要的一点是要做好笔记。笔记有两个作用,其 一是给自己一个工作进度的表示,想到哪里了,做到哪里了,哪些地方还没有思考过,哪些地方想过了但是还不周密,想过的情况越多,走过的错路越多,说明自己 较之前有所进步,这样人为地将成就感提前,四级任务就变成三级任务。第二个用处,是作为思考的路标,方便自己从之前中断的思路重新开始,节约本就珍贵的时间,集中火力攻克目前的重要问题。不然今天想这个,明天想那个,虽然天天都很辛苦,但是目标不明,攻击力度不够集中,做不到绳锯木断水滴石穿,到最后累死 累活,什么也没有。

时间久了,笔记会越来越长,细节也会越来越多。因此每隔一阵子要推翻重写一次 ,作为大的思路整理,把细节砍去,重新留一个主干出来。有很多细节在落笔的时候认为非常重要,但是在之后回顾的时候,却发现它其实是可以舍去的。每次出现 这种情况的时候,说明思路又向外扩展了一层,往目标又前进了一步。

等到觉得这个框架靠谱的时候,就可以动手写代码。写代码本身是一种放松,因为许多部分不需要动脑,这样就能降四级任务为两级,心理压力能小很多。另一方面 ,是能逼着自己把思路具体化,发现光凭思考发现不了的问题。有时候写着写着, 又会回到思考的过程中去,再一次开始迭代的过程。

做研究犹如逆水行舟,今天顺风顺水奋力向前划了一百米非常高兴,明天一个逆流 出现倒退两百米甚至翻船都是常有的事情。但是不能气馁,有耐心慢慢来,之前说 做项目不能死磕,但做研究就是要死磕,时间长了,摸清了水流的变化趋势,摸清 了所解问题的一般规律,终有一天,任你顺流逆流,都能来去自如。

那么,如何才能做到全神贯注呢?

话说某年某月某日,一位绝世大侠在酒楼与众兄弟把酒言欢,好不快活。突然间一声呼喝,仇家披麻戴孝拔刀上楼,众酒楼宾客见了这阵仗,无不体似筛糠,心惊胆战。大侠见了,一口烈酒入肚,神情肃穆,站起身来,厅堂的聒噪浑然不觉,周围的兄弟视若不见,眼里只有对手的一举一动,一招一式。然后对峙,猫腰,冲刺, 拔剑,兔起鹘落间,剑芒暴起,人头落地——接着,小二还六神无主时,大侠早泰然自若,呼喝道:“牛肉两斤,拿酒来!”

小说家笔法虽然夸张,但所谓全神贯注,确实就是如此。不在乎何时何地,时间长短,但要目标明确,心无旁骛。所要解决的问题在心里不停重复,并赌上所有的脑力资源在短时间内反复思考,不达目的誓不罢休。要推公式?推完前不许聊天不许上厕所,要调程序?调完前不开网页不查邮件。等到看见问题关键所在——或许只 需要十五分钟半小时——之后,微博该刷就刷,论坛该逛就逛,帅哥美女该聊就聊,悉听尊便。因为今天又有进展了,奖励自己有啥不对的嘛。

借通信的术语来说,大脑不擅长频分复用(同时干多件事),但很擅长时分复用( 每次干一件事)。大脑更像激光而不是日光,要么不打开,一打开就在纸上烧洞的。所以牛人们虽然平日里谈笑风生,但都有大脑周期性抽风的症状,这不是病,而是大脑集中力的体现。真要每天工作十几个小时,把战线无限延长,虽说没功劳也有苦劳,但效率如何很难讲,至少我是做不到高效率的。

那如何训练这种技能呢?这个我觉得不是天赋,而是后天可以培养的,关键在于抽时间做一些需要费脑反复思考的工作。比如说看明白维基百科上一个抽象概念,看懂一个数学定理或者一篇技术文章,完成一个需要比较复杂算法的小程序,认真下一盘棋,看个长贴思考中心思想,或者写一篇思路清晰的长博客,都是可以的。确信做完一件事情之后,休息一下,作为奖励。像这篇博客,本来是没有的,但是早上起来突然有想法了,马上捧起电脑,花了两小时写完改完分享给大家,任务完成 ,我爽,读者也爽,皆大欢喜。

当然,所要解决的问题不能太复杂。今天突然心血来潮,要去弄懂张益唐大牛关于素数间距的证明,或者要写一个比谷歌更牛的搜索引擎,都是注定要失败的,并且这样的失败只会给自己负面的印象,影响继续向前的动力。比较好的办法,是根据自己的情况循序渐进。如果问题一时半会儿解决不了,就自问卡在哪里了,比如说忘记数学公式怎么推了,或者某个概念不太明白,那下一次解决问题的时候,就把目标定得低一点,把公式推完概念弄懂就好。完成了一个目标,再考虑下一个。做研究也是一样,只是对于问题定义和任务分解,需要更高段的技巧,和永不放弃的 耐心。

时间久了,当思考成了习惯,做事自然就会专注,做事专注加上循序渐进,正反馈就来得快,看见了自己的点滴进步,自信也就渐渐上来了。然后就会明白,别人在做什么,别人如何成功,其实和自己的内心平衡没有关系。各人情况迥异,沉浸在比较的虚荣和痛苦中是没有意义的,把自己的事情做好就行,于是负面情绪就会变 少,人也就会活得更自在一点。这些,是全神贯注对于个人修养的长期效用。

现在有些人帖子太长就不愿意看,分析事物只愿意付诸情感,时间长了,思考能力是一定会下降的。不去分析做事的哪步出了问题,只感叹自己老了不行了,结果该放弃的放弃,不该放弃的也放弃了,分明学了二三十年,终于有了学识和经验,精力能力还没有退化,却要做退休养老的打算了,岂不是太可惜了么?

除了要专心之外,做研究,有两个坎要过,一个平衡要把握。

其一,读别人文章是坎。读文章初时觉得文献浩如烟海不可胜计,每年又新增几百上千的文章,每篇艰深莫测,看也看不完,更不用说追踪研究领域的最新动态,很有挫败感。但看多了,就发现翻来覆去原来套路就这么些,新文章再出来,大概看个半小时或一小时就能领会其精神,这样,第一个坎就过了。

这其中的要义,是要多思多想,积极地归纳总结。我见过同学每天熬夜看一箱一箱的文章,但却不善此道,叫他说出这些文章的主线是什么,他却被各种细节所迷惑,说不出个所以然来。这样辛苦是辛苦了,却事倍功半,要是处于这种状态,那就是要糟糕,得停止继续看下去,回头好好想想了。

其二,做创新研究是坎。做研究一开始随意创新好像天地广阔,各种新思路层出不穷,一会一个想法。但是等到深入下去,就会发现自己做的和前人工作并无太大不同,这里走一步,做过了,那里走一步,也做过了,回头走一步好像没有前人工作,效果却不好,气急败坏之下贸然投文,篇篇被拒,就像是孙悟空自以为神通广大,却怎么样也逃不过如来的五指山。这时才知道自己渺小,同行们个个牛逼,挫败感顿生。借用《棋魂》里近藤光对佐为说的话:“以前看不到你的剑锋在哪,所以下棋时无知无畏;现在看到你的剑锋了,于是畏首畏尾,不敢出招。”

要过这个坎,首先得做深入研究,看到自己思路的浅薄和渺小;然后得要迎着困难,不停思考不停尝试,在这个过程中一点一点深入总结前人工作,看到它们的本质,分析它们的弱点,寻找改进的方案,最后走出原地踏步的怪圈,磨出一篇好文来一剑封喉。第一个阶段没过的人,往往思路很多却从未实行;第二个阶段没过的人,往往放弃了读博,都是很可惜的。

明白了这两个坎,心理上会有准备,做事就会有长远打算,耐心也能磨出来。

接下来,要掌握“细节”和“主题”之间的平衡。

大家都知道“细节决定成败”或是“一屋不扫,何以扫天下”这样的谚语,也知道“纲举目张”或是“提纲挈领”这样的成语,这两种观点初看起来是完全矛盾的— —到底“大节”或是“细节”哪个重要?其实,这个抽象的哲学命题没有意义,不自己去尝试具体问题,是不知道里面的“度”在哪里的。尝试多了,大脑自然知道哪些细节是可以忽略的,哪些细节是关键,差之毫厘谬以千里。

读别人的文章,首先读到的是它的思路它的贡献,细节往往放在最后讲,这样显得条理清晰,逻辑清楚,论证有据。但真实做研究则截然不同,往往是先找到正确的细节,然后推广而成理论;先有乱七八糟但管用的方法,然后回头整理,扮一副堂皇的样子出来见人。事实上,就如同哲学理论不能解决任何具体问题一样,一个不为特定问题量身定做的理论,直接拿过来管用的概率是很小的。若是它真的管用( 比如说深度学习),那么一定是有未被发现的深刻逻辑隐藏其中。因此,读的时候,不要被文章中的各种卖点迷惑住,通过思考,通过重复别人的实验,想方设法找出其中真正重要的东西,才是明路。

那自己做研究的时候要怎么办呢?作为贴着码工的标牌,其实骨子里是做数学证明的我,现在实践下来行之有效的办法,是主题和细节交替来,前者告诉自己“我想要达到的目标是什么”,而后者告诉自己“我现在能做到什么”,一边是文章满意度的上界,一边是下界,两边碰了头,文章就有了。具体来说,从正确的细节出发,可以为文章的主题定调,这样得到的往往是引理定理满天飞却不知所云的文章;另一方面,从自己想做的框架出发,可以确定什么样的细节是需要证明的,为将来的努力把准方向,许多小定理小结论虽然本身漂亮,但是于大节毫无关联,只好忍 痛放弃。如此往复,直到最后大部分细节都思考过了,再从一个合理有趣的框架开始,从头到尾地理一遍,终于把所有的部件都组装起来,成一个细节上正确无误,大节上又有出彩贡献的理论,这样就功德圆满。

为此,需要写,不停地推倒重写,每次看似重复的劳动,其实都有新发现。或者只是某个符号错了,或者某个定义需要修改,或者突然发现其实整个逻辑都有漏洞,需要推倒重来。单纯的思考(表现为托腮发呆)往往又耗时,得到的结论还是错的,在单纯思考下很多问题粗想一想好像理所当然,不值得下笔,但真一下笔就发现问题所在,或是有隐含假设,或是有概念滥用。特别对刚开始做 PhD的同学而言, 往往有雄心没技术,经常思路发飘,一思考就容易陷入混乱,为了让思路更精确,把所思所想写下来组织好是很重要的,时间长了,套路领会了,思考的效率就会提高,才能很快找到要点。

实验科学要怎么办呢?以我这半年在谷歌的经验,虽然要解决的问题截然不同,但同样要遵循上述原则。一方面在已有解法上小修小补,找到能让效果更好的管用小设计,让自己至少出点活有绩效,这时,细节决定成败;另一方面则要推翻现在的解法,从大方向出发,思考现在手头做的是不是有长远意义,能否解决长远问题,如果答案是否定的,那么就应该尽早开始做正确的事情。后者传统上来说是项目经理要负责的,但是若是自己能提前想到,那效率会高很多。

最后,如何检验自己的成果呢,如何证明自己已经跨过难关了?很多人觉得博士生或是研究员们神秘莫测,但其实文章真正接收发表的时候,至少是我,对自己不懈努力苦心经营,每一点都思考到想呕吐的模型往往是非常鄙夷的—— 不过如此嘛,这么简单的东西居然想了好久才弄出来,啊啊啊,我实在是太笨了!

有这样的想法,那发表出来的东西,基本靠谱。

————

编辑 ∑ Gemini

来源:田渊栋

微信公众号“算法数学之美”,由算法与数学之美团队打造的另一个公众号,欢迎大家扫码关注!

更多精彩:

☞如何向5岁小孩解释什么是支持向量机(SVM)?

☞自然底数e的意义是什么?

☞费马大定理,集惊险与武侠于一体

☞简单的解释,让你秒懂“最优化” 问题

☞一分钟看懂一维空间到十维空间

☞ 本科、硕士和博士到底有什么区别?

☞小波变换通俗解释

☞微积分必背公式

☞影响计算机算法世界的十位大师

☞数据挖掘之七种常用的方法

算法数学之美微信公众号欢迎赐稿

稿件涉及数学、物理、算法、计算机、编程等相关领域,经采用我们将奉上稿酬。

投稿邮箱:math_alg@163.com

田渊栋:业余做研究的经验相关推荐

  1. 第一篇学术演讲准备两个月,去了谷歌却做不了深度学习,听Facebook田渊栋谈人生挑战与选择...

    视学算法转载 来源:从零道一 (公众号ID:goto0011) 第一次 15 分钟的演讲准备了两个月.毕业就进谷歌却只能当螺丝钉.从研究员到研究经理面临角色转换-- 在最近的一次访谈中,Faceboo ...

  2. 田渊栋的2021年终总结:多读历史!历史就是一个大规模强化学习训练集

      视学算法报道   作者:田渊栋 编辑:好困 LRS [新智元导读]田渊栋博士最近又在知乎上发表了他的2021年度总结,成果包括10篇Paper和1部长篇小说及续集.文章中还提到一些研究心得和反思, ...

  3. Facebook AI研究员田渊栋的2021年终总结:多读历史!

    仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:知乎@田渊栋 https://zhuanlan.zhihu.com/p/451903256 这一年在组里开了一个比较大的方向,组织并带领团队一点 ...

  4. 田渊栋教你读paper的正确姿势

    作为入行数年的专业科研从业者,你每周看几篇论文? 这是一个知乎上的问题.作为卡耐基梅隆大学机器人系的毕业生.Facebook人工智能研究室(FAIR)的研究人员,田渊栋给出了下面这个回答. 盲目追求论 ...

  5. Facebook AI研究员田渊栋:2021年年终总结

    在知乎上看到了一篇大佬的2021年终总结,看了后感觉受益匪浅,作者是田渊栋老师,博士毕业于卡耐基梅隆大学机器人系,目前在Facebook AI研究院担任研究员,特此分享给大家,希望能在新的一年里带给你 ...

  6. Facebook 田渊栋:NeurIPS 2020 中了两篇,感觉还算不错

    作者 | 田渊栋 编辑 | 陈大鑫 转自 | AI科技评论 做理论需要的基础知识多,困难,周期长,没有直接经济效益,还只能一两个人单打独斗且无法使用大量计算资源,每个因素都和现在的主流发展方向(强调团 ...

  7. nlp mrc的损失是什么_田渊栋从数学上证明ICLR最佳论文“彩票假设”,强化学习和NLP也适用...

      新智元报道   来源:Facebook AI 作者:Ari Morcos.田渊栋  编辑:肖琴 [新智元导读]ICLR 2019最佳论文提出的"彩票假设"能够将神经网络缩小10 ...

  8. 田渊栋:博士五年总结

    作者:田渊栋http://yuandong-tian.com/five_year_summary_of_PhD.pdf个人主页:http://yuandong-tian.com/ 前言 田渊栋博士目前 ...

  9. 田渊栋团队新作:为什么非对比自监督学习效果好?

    点上方计算机视觉联盟获取更多干货 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:新智元 AI博士笔记系列推荐 周志华<机器学习>手推笔记正式开源!可打印版本附pdf下载链接 非对 ...

最新文章

  1. python and or 与 | 的比较
  2. 大脑构造图与功能解析_施工技术特辑 | 全套脚手架三维构造图解析
  3. C# 字段 属性 方法 三霸主齐上阵
  4. 优米网:创业传记——傅盛
  5. A组包含的前导码数( sizeOfRA-PreamblesGroupA)
  6. SAP中VLPOD什么意思
  7. ABAP调试器脚本的一个具体应用
  8. SPARK全栈 全流程 大数据实战 之 技术选型篇
  9. window server 下搭建sftp服务器,Freesshd安装及配置
  10. 【引用】她拒绝了他100次,但第101次他拒绝了她
  11. jQuery中eq与get的区别(整理)
  12. ​​​​iPhone 或 Mac 忘记登录密码,怎么快速找回
  13. appfuse mysql_Appfuse学习笔记(1)
  14. background-position切图
  15. EditText焦点
  16. 「数商云专辑」服装/服饰电商平台解决方案
  17. 浏览器网页无法打开麦克风、摄像头
  18. Euclid辗转相除法c语言,辗转相除法或Euclid算法
  19. ThinkPHP php 仿千图网源码_仿百度网盘文件分享dzzoffice网盘系统源码_PHP
  20. 数据挖掘:Apriori(先验)算法

热门文章

  1. C++学习之路 | PTA乙级—— 1086 就不告诉你 (15 分)(精简)
  2. 直接拿来用!GitHub10个开源免费的后台管理面板
  3. C++和Objective-C混编(官方文档翻译)
  4. Objective-C文件流操作
  5. 现代程序设计 作业6 - 简单而有意义的题目
  6. 现代软件工程 M2 博客要求
  7. java数组有跨类建立对象_必会的 55 个 Java 性能优化细节!一网打尽!
  8. sqlserver查看索引_SQL Server页中行物理存储
  9. 图解Java常用数据结构
  10. 物联卡的使用_物联卡在手机上使用有什么影响?网友:寿命分别是3个月,16天,9天...