转:想要入坑机器学习?这是MIT在读博士的AI心得

从科研社区中汲取营养


找论文


AI 领域的论文可以在 arXiv 上找到和发布。现在的论文数量非常令人振奋。社区中的许多人降低了从噪声中分辨出信号的难度。Andrej Karpathy 开发了 arXiv sanity preserver,帮助分类、搜索和过滤特征。Miles Brundage 每晚都在推特上发布自己整理的 arXiv 论文列表。很多推特用户常常分享有趣的参考文章,我推荐大家在推特上关注自己喜欢的研究者。如果你喜欢用 Reddit,那么 r/MachineLearning(https://www.reddit.com/r/MachineLearning/)非常棒,不过文章更适合机器学习从业者而不是学界研究者。Jack Clark 发布每周社区 newsletter「Import AI (https://jack-clark.net/)」,Denny Britz 发布「The Wild Week in AI (https://www.getrevue.co/profile/wildml)」。


查看会议论文集也很值得。三大会议是 NIPS、ICML、ICLR。其他会议还包括 AAAI、IJCAI、UAI。每个分支学科也有自己的会议。计算机视觉方面有 CVPR、ECCV、ICCV;自然语言方面,有 ACL、EMNLP、NAACL;机器人方面,有 CoRL(学习)、ICAPS(规划,包括但不限于机器人)、ICRA、IROS、RSS;对于更理论性的研究,有 AISTATS、COLT、KDD。会议是目前论文发表的主要渠道,但是也有一些期刊。JAIR 和 JMLR 是该领域最厉害的两种期刊。偶尔一些论文也会出现在科学期刊上,如 Nature 和 Science。


寻找旧的论文同样重要,不过通常更难。那些「经典」论文通常出现在参考文献中,或者研究生课程的阅读书单。发现旧论文的另一种方式是从该领域的资深教授开始,寻找他们的早期作品,即他们的研究路径。同样也可以向这些教授发送邮件询问额外的参考(即使他们太忙没有回复也不要介意)。寻找不那么有名或被忽视的旧论文的一种持续方式是在 Google scholar 中搜索关键词。


应该花费多长时间阅读论文?


关于阅读论文应该用的时间我听到过两种常见建议。一,刚开始的时候,阅读所有论文!人们通常说研究生的第一学期或第一年应该只阅读论文。第二,在最初的上升期之后,不要花费太多时间阅读论文!原因在于如果研究者不被之前的方法左右,更有可能创造性地提出和解决问题。


我个人同意第一条建议,不同意第二条。我认为一个人应该尽可能多地阅读论文。「如果我不熟悉别人尝试过的方法,那我就能更好地想出新颖的更好方法。」——这种想法似乎不太可能,且傲慢。是的,新视角可能是一把钥匙,业余者解决长期挑战是因为他们超出常规的想法。但是职业研究者不能完全依赖运气来探索未被考虑过的解决方案。我们的大部分时间都用来缓慢且有方法地逐步解决问题。阅读相关论文是找出我们所处位置和下一步尝试方向的更高效方式。


关于尽可能多地阅读论文,有一个重要的注意事项:消化论文内容和阅读论文一样重要。用一天时间学习几篇论文、认真做笔记、认真思考每一篇的内容和思路,比不断阅读论文要好一些。尽可能多地阅读论文。


投资可视化工具和技能


在编写研究代码时我采用的策略是从创建可视化脚本入手。在编写完其余代码后,我会运行可视化脚本,以快速验证代码是否与我的心智模型匹配。更重要的是,良好的可视化经常会使我想法或代码中的 bug 更加明显、明了。这里还有一些自我激励的话要说:当我完成这个代码时,我会做一份漂亮的数据或视频给大家看!


为手头的问题寻找合适的可视化方法可能非常棘手。如果要迭代优化模型(例如深度学习),从绘制损失函数曲线着手会比较好。此外还有许多用于可视化和解释神经网络(特别是卷积神经网络)学得权重的技术,例如导向反向传播。在强化学习和规划中,智能体在其环境中的行为是显而易见的,无论是雅达利游戏、机器人任务还是简单的 grid world(如 OpenAI Gym 中的环境)。根据设置,还可以可视化价值函数及其在训练过程中的变化(如下所示),或者可视化探索状态树。在处理图形模型过程中,当一维或二维变量在推断过程中发生变化时,对其分布进行可视化可以获得丰富的信息(如下所示)。估计每次可视化分析时必须在头脑中保存的信息量可以帮助检测可视化技术的有效性。如果可视化技术非常糟糕,你需要详尽地调用你编写的代码来生成它;反之,一个良好的可视化技术可以带来一个明显的结论。


猜你喜欢

转载自blog.csdn.net/u012891477/article/details/80256444