前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >机器学习自学指南

机器学习自学指南

作者头像
发布2018-02-06 15:50:52
9840
发布2018-02-06 15:50:52

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

机器学习的四个级别

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

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

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

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

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

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

新手

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

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

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

入门

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

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

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

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

中级

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

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

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

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

高级

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

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

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

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

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

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

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

更新:在 Reddit 讨论。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 机器学习的四个级别
  • 新手
  • 入门
  • 中级
  • 高级
相关产品与服务
腾讯云 TI 平台
腾讯云 TI 平台(TencentCloud TI Platform)是基于腾讯先进 AI 能力和多年技术经验,面向开发者、政企提供的全栈式人工智能开发服务平台,致力于打通包含从数据获取、数据处理、算法构建、模型训练、模型评估、模型部署、到 AI 应用开发的产业 + AI 落地全流程链路,帮助用户快速创建和部署 AI 应用,管理全周期 AI 解决方案,从而助力政企单位加速数字化转型并促进 AI 行业生态共建。腾讯云 TI 平台系列产品支持公有云访问、私有化部署以及专属云部署。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档