http://machinelearningmastery.com/machine-learning-roadmap-your-self-study-guide-to-machine-learning/
在这个帖子中我将展示一个具体的用于机器学习的自学路线,它可以给你指引方向并指出下一步的工作。
我考虑了很多的框架和系统性的方法(从我的blog可以看出)。之前我在论坛里发表了一篇“机器学习自学指南”的帖子引起了大家的共鸣,我认为这篇文章将极大的扩展之前想法。
让我们投入进去吧......
机器学习的路线图
机器学习是一个巨大的的研究领域。对于要学习如此多的算法、理论、技术和各类问题,让我们感觉不知所措。
机器学习也是深度跨学科的。你可以从材料学研究员跳跃到程序员,或跳跃到统计学家,假定需要这么多的先验知识让人感到很沮丧。
我们需要一个结构化的方法,该方法能够为研究机器学习的相关主题和细节层次提供路线图,同时也可以整合受欢迎的书籍和公开课等资源。
结构化方法,通过将注意力集中在你需要学习的内容,以解决学习的压力。它通过侧重于实用性来依次展示相关的材料,以解决学习的挫败感,它是为工程师和程序员量身定制的。
这张线路图可以让你知道当前的位置和想到达的位置,明确学习的方向。
自学是路径
自学是指以你自己的节奏,在你自己的条件下按照自己的时间进度。
自学是学习机器学习最好的方法。但这并不意味你必须完全靠自己去做,千万不要这样。它指的是用你最有效的方式学习,并利用网络上提供的最好的课程,书籍和指南。
自学也兼容更正式的本科和研究生课程的研究。这意味着你可以积极的将机器学习的资料整合到你的知识体系中,并拥有这个过程。在这个过程中,你可以更加深入到非常感兴趣的领域。
机器学习像编程一样,是一门应用学科。学习理论很重要,但是你必须投入时间去应用理论。你必须去实践,这个非常关键。你需要建立对处理,算法和问题的直觉。
能力等级
学习机器学习的结构化方法分为如下四个等级的能力:
1.新手(Beginner)
2.初级(Novice)
3.中级(Intermediate)
4.高级(Advanced)
这四个等级是基于他们面临的问题和学习目标来划分的。按照顺序,每个等级为了达到各自的目标都会有不同的活动。
各等级的问题
各个能力等级面临不同的问题集合,如下:
新手:对机器学习到底是什么感到困惑。对大量的信息感到不知所措。对大多数可用的信息未指明先验知识感到沮丧。
初级:被数学描述的算法吓到。苦苦挣扎于机器学习的应用问题。缺少寻找问题探索机器学习的能力。
中级:对于介绍性的材料感到厌倦。非常需要了解更多的细节和更深入的见解。渴望证明和展示他们的知识和技能。
高级:痴迷于从各系统和解决方案中获得更多的知识。同时寻求对机器学习更大的贡献机会,不断激励自己超越自己。
学习的目标
每个层次的能力有一个单一的目标,很多任务可以追求这一目标。这些目标如下:
新手:制定一个明确的基础并开始机器学习之旅
初级:开发和实践应用机器学习的过程
中级:开发对算法,问题和工具有更深入的理解
高级:开发对算法,问题和工具等领域的扩展
自学的行动
每个等级的目标定义了为了完成目标的行动类型。强烈建议你自己设计行动,尽管下面为各个等级列出了建议的行动。
新手
发现关于机器学习的“为什么”(例如为什么机器学习重要,为什么机器学习对你重要)
调查机器学习领域的基本定义和概念(例如机器学习的问题,机器学习的算法)
初级
充分理解在应用机器学习各个步骤中所使用工具和库的细节(基本熟悉工具和库)
中级
通过参与和学习机器学习竞赛,不断提高应用机器学习的技能
高级
以结构化的方式开发扩展算法,问题和工具
参与并对社区做出贡献
如何使用
这个路线图是一个有用的工具,你可以使用多种方法掌握机器学习。
学习指南:把它作为你完成目标和行动的直线导轨。耐心和努力将会让你在短期内达到更高的等级。
流线型指南:和上一个指南一样,但是将你希望掌握的机器学习目标缩小到一个特定的领域,而不是在广泛的应用机器学习的领域。这可能是一个特定的问题或某一类的算法。
信息过滤:路线图可以用来过滤你遇到的信息和资源。这是一个非常有用的功能,它可以帮助你迅速的评估一篇博客,文章或书籍是否与你现在的能力等级相关。
这条路径是适合你的!
我已经给其他的工程师和程序员设计了这个指南。
你可能懂如何编程
你可能是(或曾经是)职业化的工程师或程序员
你可能是本科或研究生
你对机器学习或数据挖掘感兴趣
你可能正在从事机器学习或数据挖掘
这个方法是专门为已经熟悉开发和构建系统过程的工程师和程序员定制的。他们有计算或逻辑的思维方式以及系统化的思考方法。尤其是程序员,他们已经熟悉自动化的力量和算法的复杂性和特性。
这个方法不仅对专职程序员有效,也对正在学习工程学,计算机科学或相关学科的学生有效。
你不必成为一名程序员或一名优秀的程序员。你可以使用现成的工具,如Weka,通过可视化界面处理机器学习问题和使用算法。
你不必成为一名数学家或统计学家。当你需要学习某个算法时,只需要回顾这个算法所需的统计学,概率论和线性代数的相关知识。
你可以阅读指南,书籍和公开课。他们非常适用于上述四个能力等级。一本给定的书籍可能对初级或中级(或者跨越这两级)是很好的参考。同样的,一个课程能介绍各种机器学习活动的例子,它可能适用于一个特定的等级或跨越两或多个等级。
范围
我建议你把学习范围集中在分类和回归问题相关的算法和工具。这是两个非常常见的潜在机器学习问题,其它问题都可以演变成这两类问题。
机器学习的子领域,如计算机视觉,自然语言处理,推荐系统或强化学习。这些领域可以演变成分类和回归问题,他们的学习也适用于上面提出的结构化路线图。我建议在你达到中级水平时再进入这些领域。
原则
我有几个务实的原则,可以帮助你让你朝着机器学习的目标快速而有效的前进。它们实际上构成了路线图的框架。
机器学习是一种旅行。你需要知道你现在在哪里和你想去的地方。这将需要大量的时间和艰苦的工作,但对你非常有用。
创建半正式的工作产品。在阅读博客文章,技术报告和开源代码的时候,记下从中学习和发现到的东西。你会很快的积攒一系列可以展示的技能,和一系列你和其他人可以仔细思考的知识。
及时学习。不要学习复杂的专题,直到你需要它的时候。例如,你只要掌握足够的概率和线性代数来了解你正在使用的算法,而不是先花三年的时间学习统计学和数学,然后再开始学习机器学习。
利用现有的技能。如果你会编码,实现算法理解他们,而不是学习数学。使用你知道的编程语言。专注于你正在学习的一件事情,而不是在同一时间学习新的语言,工具或库,使事情变的复杂。
精通是一种理想状态。精通机器学习需要持续不断的学习。事实上你是不可能达到的,你只能不断的学习,理解和提高。
提示
以下有3个提示可以让你更有效的使用这篇指南,帮助你走上机器学习的旅程。
从一个小项目开始,你可以在一个小时内完成
每周完成一个项目,保持你学习的动力,建立和维护项目的工作空间
在你的社交网络上分享你的成果,如博客,Facebook,Google+,Github或者任何你可以展示兴趣,技能和知识并获得反馈的地方。
行动步骤
花点时间回答下面两个问题:
你认为你处于什么水平,同时你现在在努力做什么?
你想达到什么水平,同时你认为你能够做些什么?