在自学“机器学习”方面,你能做的事其实很多。你可以参考一些书籍或者相关的课程、参加一些竞赛,或者使用一些你能用到的相关的工具等等。在本文中,我将结构性的阐述一下自学的方法,并且我会给出一些在从新手到老手的晋升途径中常常会遇到的问题的解决方案。
考虑在机器学习上能力的不同,将能力分为了四层。这个模型可以帮助我们抓住可用的资源和活动,并且告诉我们何时去使用它们。
我想在这里把纯新手和新手分开考虑了,因为我在这想表明对于一个纯新手(仅仅是对这个领域感兴趣的程序员)来说,也有一条路供他们选择。
我们将陆续的讲述这四个层面中的每一个层,然后讲述一下在每一层下能够帮助学习者更加深入并且提高他们知识水平的资源和活动。
这种划分仅仅是我的一个建议,也许在你所在层级之上或者之下的层级中的资源和活动对你来说也是非常有用的。
纯新手是指那些只是对机器学习感兴趣的程序员,他们可能只是读了几本书,或者只是浏览了一下维基百科页面,亦或是仅仅听了几门课程,但他们并没有真正的明白机器学习是什么。他们常常会感到受挫,因为他们所得到的一些建议往往是针对熟练者和资深者的。
纯新手需要循序渐进的介绍,远离代码、教科书和课程。他们首先需要知道的是“为什么”、“是什么”、“怎么弄”,这样才能为弄懂起步者级材料奠定基础。
下面是为纯新手准备的一些资源和操作:
一个新手是指那些已经与机器学习领域过过招的一些人。他们可能已经读了一本书或听了一门课程。他们对这方面有兴趣并且想知道更多。他们开始深入学习并想着如何完成任务。
新手确实需要做些事情。他们需要付诸实践,才能将拥有的资源应用到他们已知的知识结构中,例如他们已知的编程语言或者他们擅长解决的问题。
下面是对新手准备的一些资源:
熟练从业者指的是一个新手如果已经读了一些相关的书,并完成了一些课程。他们知道如何去使用所需的工具,也写了不少能够实现简单的算法或用于完成教程的代码。一个熟练的从业者开始自己钻研,开始研究自己的项目,并且参加到更大的论坛社区进行交流和学习。
熟练从业者开始学习如何正确的使用和执行算法,使得他们的算法更加的稳定和合适。他们还花费大量的时间来学习技能,使得他们他们的数据是最新的,并且是整洁有概括性的。他们同时还思考在他们的知识水平范围内有哪些问题是他们所可以回答的。
这里有一些适合熟练从业者的资源和活动:
一个资深从业者已经写了很多代码,要么是整合了机器学习的算法,要么是自己实现的算法。他们可能参加过比赛或者写过一些插件。他们已经阅读大量的文献,完成了本行的课程,对这个领域有着广泛的了解,并且对他们所喜欢的几个关键技术上,它们也有着有深入的了解。
资深从业者能够建立,部署和维护使用机器学习的生产系统。他们随时掌握与他们领域相关的各方面的新动态,热切地寻找和学习其他一线工作者的方法和技巧,并比较他们之间的差别。
对资深从业者的推荐的一些资源有:
掌握一门知识是需要连续不断的努力,学习是永无止境的。学习旅途中的任何一点停顿和绕道,都能一点一点的让你成为一个专家。实际上,在我看来,绕弯路是不可避免的。