专栏首页机器学习自学指南

机器学习自学指南

你有许多方法和资源来学习机器学习:阅读书籍、学习课程、参加比赛和各种可用的工具。在这篇文章中,我想使这些活动更为体系化,并列出一个大致的顺序,以说明在普通程序员到机器学习高手的过程中所要着手什么。

机器学习的四个级别

设想机器学习按能力分为四种水平,这个模型帮助我们思考可用的资源和活动,以及什么时候搞定它们比较好。

  1. 新手
  2. 入门
  3. 中级
  4. 高级

在这我把“新手”和“入门”分开,是想表明一个绝对意义的新手(对这个领域感兴趣的程序员)想要学习的话也是有路可循的。

我们将逐一介绍这四个中的每个级别,着眼于适于各个级别的的资源和活动,帮助你学习更多知识并提高理解深度和技能水平。

以下细则仅供参考,某个级别上的活动或资源很可能也适用于之前或者之后的级别。

我认为这个总体系还是有用的,我很想听听你的想法,在文末留下你的评论吧。

新手

新手是对机器学习感兴趣的程序员。你可能已经开始读一本书、维基百科页面,或参加了一门课程几节课,但还没真正 “搞明白” ;由于得到的建议往往是属于中级甚至高级水平,这确实会使你感到很沮丧。

新手需要亲切友好的介绍。远离代码、教科书和课程,你首先要明白“为什么”、“是什么”、“怎么做”,搞懂这些是为日后进阶奠定基础。

适用于纯新手的活动和资源有:

入门

入门者已经接触到机器学习领域。你已经读完了一本书或学完了一门课程,明确了自己的兴趣,并且还想学习更多;你已经有一点“懂了”,想开始做个什么事儿。

入门者确实需要去做些什么。你需要付诸实践,才能将这些学习资料融会贯通,整合到到自身现有的知识体系中,比如你已掌握的编程语言或者习惯解决的问题。

适用于新手的活动和资源有:

  • 完成课程:参加并完成斯坦福机器学习之类课程;记好笔记,尽可能地完成作业,提出问题。
  • 阅读书籍:不是阅读教科书,而是读像上面列出的针对初学者程序员的友好的书籍。
  • 学习工具:学习如 Scikit-LearnWEKAR或类似的工具或库。具体来说,学习如何运用你在书本或课程中读到或学到的算法,在实践中领会它。要习惯于在学习时动手尝试。
  • 写一些代码:实现一个稍简单的算法,如感知器、k-近邻算法或线性回归。编写小程序以阐明思路,并学习使之运行的细枝末节。
  • 完成教程:参考并完成教程。你可以开始建立一个目录,记录你用数据集、脚本乃至源代码完成的小项目完成,以便回顾、阅读和思考。

中级

作为入门者,你需要已经读了一些书,并完成了一些课程。你应当知道如何运用一些工具,并写了许多代码,实现了简单的算法和完成了一些教程。而一个中级学习者则应突破自己,通过自行设计项目来学习新技术,并与更大的社区互动和学习。

中级学习者应学习如何准确、有效地实现和运用算法,你还要掌握以下技能:花费了大量时间在预处理数据上,理清、总结和思考其所能回答的问题类型。

适用于中级水平的活动和资源有:

  • 小型项目:设计可用机器学习解决问题的小型项目和实验。这就像设计和执行自己编写的教程,以探索你感兴趣的技术。你还可以实现一个算法或链接到提供该算法的库。详细了解小型项目
  • 数据分析:习惯于探索和总结数据集。创建自动化报告;了解何时运用何种工具;收集你能够挖掘、清洗的数据;找到能够锻炼技能和交流趣事的地方。
  • 阅读教科书:阅读和内化机器学习的教科书。掌握技术的数学描述,并熟悉算法和问题表述形式公式化往往是很困难的。
  • 编写插件:为开源机器学习平台和库编写插件和包,作为学习编写稳健和生产级算法实现的练习。在项目中使用自己的插件,从社区寻求代码评审,如何可以的话,让平台整合你的代码中。你的目标是取得反馈并从中学习。
  • 比赛:参加机器学习比赛,比如与学术会议相关的,或者像 Kaggle 这样的平台提供的。参与讨论,提出问题,了解其他参与者如何处理问题。将你可以吸收学习的项目、方法和代码添加到你的知识库里。

高级

一个高级学习者已经写了大量代码,整合机器学习算法或者包括自己实现的算法。你可能参加过比赛或者写过插件,且已经阅读了课本,完成了课程,对这个领域有广泛的了解,以及对你偏好的几个关键技术有深入的了解。

高级学习者建立、部署和维护使用机器学习的生产级系统;掌握这些领域中的新动态;热切寻找和发掘其他前沿从业者同你自己的方法和技巧上的细微区别。

适用于高级学习者的活动和资源有:

  • 定制算法:修改算法以满足你的需求,也包括根据类似问题所在领域的会议和期刊论文中的概述实现定制。
  • 新的算法:设计基于一般形式的全新方法以迎接你遇到的挑战。更重要的是要取得最好的结果,而不是推进领域的前沿。
  • 案例分析:阅读甚至再现机器学习大赛和其他从业者的案例分析。这些“我是怎么做的”论文和帖子通常充满了专业人员在数据准备、特征工程和技术选用中的巧妙诀窍。
  • 方法论:无论是正式用或者自用,确保程序条理化。你有办法解决问题,并在这一点上取得成果,但更要积极寻找方法,通过技巧、实践和新的更好的技术来进一步完善和改进这一程序。
  • 科研:参加会议、阅读研究论文和专著,与该领域的专家交谈。你可以完成你的研究成果,并付梓出版,或者放在博客上,然后回去继续工作。

学海无涯,学无止境。你可能在过程中的任何时候停下来和绕点路钻研,成为 “竞赛狗” ”或“ 图书馆常客 ”。实际上,我倒希望这样的绕路成为常态。

这个细则可视为是技术人员从初级到高级的学习之旅的线性路径,且有意以程序员为中心。欢迎指正此文,以便我能够改善它。同时,此文仅作为我个人的建议,希望在可以参与的活动类型方面,给那些在上述级别而渴求更多类似学习材料的人带来帮助。

那么,你现在在什么级别呢?接下来打算做什么呢?在下方发表你的评论吧!

更新:在 Reddit 讨论。

本文的版权归 所有,如需转载请联系作者。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 自然语言处理指南(第1部分)

    自然语言处理(NLP)包含一系列技术,用以实现诸多不同的目标。下表中列出了解决某些特定问题对应的技术。

  • Apache Spark 1.1中的统计功能

    Apache Spark中的理念之一就是提供丰富友好的内置库,以便用户可以轻松组织数据管道。随着 Spark,尤其是 MLlib 在数据科学家和机器学习从业者中...

  • 自然语言处理指南(第3部分)

    在阅读之前,请一定要查看第 1 部分和第 2 部分!

  • 机器学习很难上手和提升?你只差一条学习路径!

    从网易云音乐的歌单、亚马逊的商品到抖音的短视频,机器学习主导的推荐系统改变了用户浏览习惯;iphone x 在刘海中祭出3D结构光,人脸识别AI便在移动终端迅速...

    昱良
  • [置顶] 机器学习简介及常用算法

    概念 什么是机器学习? 机器学习是英文名称Machine Learning(简称ML)的直译。机器学习涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多...

    xiangzhihong
  • 机器学习

    概念 什么是机器学习? 机器学习是英文名称Machine Learning(简称ML)的直译。机器学习涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学...

    xiangzhihong
  • 干货 | 机器学习之必知必会6个点

    导语:过去两年中,我曾经多次折服于机器学习的魅力。但每当我决定尝试新事物时,经常会不得不重新学习某些概念和课程,其实大部分学习就是这样一个过程。在学习机器学习这...

    IT派
  • 独家揭秘| 数据挖掘、机器学习和深度学习之间的区别

    导读:机器学习是近20多年兴起的一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自...

    AI科技评论
  • 人工智能真的有那么神秘么,推荐一份机器学习入门书单搞定它!

    机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重...

    程序员书单
  • 干货 | 机器学习没有你想的那么复杂

    人脑是最神奇的。你知道我更感兴趣的是什么吗?是我们的学习能力。我们如何能够适应并学习全新的技能,然后应用到日常生活之中呢?

    CDA数据分析师

扫码关注云+社区

领取腾讯云代金券