你有许多方法和资源来学习机器学习:阅读书籍、学习课程、参加比赛和各种可用的工具。在这篇文章中,我想使这些活动更为体系化,并列出一个大致的顺序,以说明在普通程序员到机器学习高手的过程中所要着手什么。
设想机器学习按能力分为四种水平,这个模型帮助我们思考可用的资源和活动,以及什么时候搞定它们比较好。
在这我把“新手”和“入门”分开,是想表明一个绝对意义的新手(对这个领域感兴趣的程序员)想要学习的话也是有路可循的。
我们将逐一介绍这四个中的每个级别,着眼于适于各个级别的的资源和活动,帮助你学习更多知识并提高理解深度和技能水平。
以下细则仅供参考,某个级别上的活动或资源很可能也适用于之前或者之后的级别。
我认为这个总体系还是有用的,我很想听听你的想法,在文末留下你的评论吧。
新手是对机器学习感兴趣的程序员。你可能已经开始读一本书、维基百科页面,或参加了一门课程几节课,但还没真正 “搞明白” ;由于得到的建议往往是属于中级甚至高级水平,这确实会使你感到很沮丧。
新手需要亲切友好的介绍。远离代码、教科书和课程,你首先要明白“为什么”、“是什么”、“怎么做”,搞懂这些是为日后进阶奠定基础。
适用于纯新手的活动和资源有:
入门者已经接触到机器学习领域。你已经读完了一本书或学完了一门课程,明确了自己的兴趣,并且还想学习更多;你已经有一点“懂了”,想开始做个什么事儿。
入门者确实需要去做些什么。你需要付诸实践,才能将这些学习资料融会贯通,整合到到自身现有的知识体系中,比如你已掌握的编程语言或者习惯解决的问题。
适用于新手的活动和资源有:
作为入门者,你需要已经读了一些书,并完成了一些课程。你应当知道如何运用一些工具,并写了许多代码,实现了简单的算法和完成了一些教程。而一个中级学习者则应突破自己,通过自行设计项目来学习新技术,并与更大的社区互动和学习。
中级学习者应学习如何准确、有效地实现和运用算法,你还要掌握以下技能:花费了大量时间在预处理数据上,理清、总结和思考其所能回答的问题类型。
适用于中级水平的活动和资源有:
一个高级学习者已经写了大量代码,整合机器学习算法或者包括自己实现的算法。你可能参加过比赛或者写过插件,且已经阅读了课本,完成了课程,对这个领域有广泛的了解,以及对你偏好的几个关键技术有深入的了解。
高级学习者建立、部署和维护使用机器学习的生产级系统;掌握这些领域中的新动态;热切寻找和发掘其他前沿从业者同你自己的方法和技巧上的细微区别。
适用于高级学习者的活动和资源有:
学海无涯,学无止境。你可能在过程中的任何时候停下来和绕点路钻研,成为 “竞赛狗” ”或“ 图书馆常客 ”。实际上,我倒希望这样的绕路成为常态。
这个细则可视为是技术人员从初级到高级的学习之旅的线性路径,且有意以程序员为中心。欢迎指正此文,以便我能够改善它。同时,此文仅作为我个人的建议,希望在可以参与的活动类型方面,给那些在上述级别而渴求更多类似学习材料的人带来帮助。
那么,你现在在什么级别呢?接下来打算做什么呢?在下方发表你的评论吧!
更新:在 Reddit 讨论。