为什么机器学习领域不会太难?

像数学、物理,甚至计算机科学这样的技术课题都是使用自下而上的方法教授的。

这种方法包括以一种逻辑的方式安排研究领域中的主题,并在复杂性和能力上自然递增。

问题是,人类不是执行学习程序的机器人。我们需要动力,激动人心,最重要的是,把话题与切实的结果联系起来。

我们每天使用的有用技能,如阅读、驾驶和编程,不是通过这种方式学习的,实际上是通过自上而下的倒置方法学习的。这种自上而下的方法可以用来直接学习技术科目,比如机器学习,这可以让你很快变得更有效率,也会非常有趣。

在这篇文章中,你将发现自上而下和自下而上学习技术材料的方法之间的具体区别,以及为什么这是实践者应该用来学习机器学习甚至相关数学的方法。

读完这篇文章,你就会知道:

  • 大学使用自下而上的方法教授技术科目及其存在的问题。
  • 人们如何以自上而下的方式学习阅读、驾驶和编程,以及自上而下的方法是如何工作的。
  • 机器学习的框架,数学,使用自上而下的学习方法,以及如何开始作为实践者取得快速进步。

我们开始吧。

概述

这是一篇重要的博客文章,因为我认为它真的可以帮助你摆脱自下而上的、大学式的机器学习方式。

这篇文章分为七个部分,它们是:

  • 自下而上的学习。
  • 学习阅读。
  • 学习开车。
  • 学习编码。
  • 自上而下学习。
  • 学习机器学习。
  • 学习数学。

自下而上的学习

选择一个研究领域,比如数学。

有一种合乎逻辑的方式来布局数学主题,这些主题相互建立在一起,并导致技能、能力和理解力的自然发展。

问题是,这个逻辑进程可能只对那些已经在另一边的人有意义,并且可以直观地判断主题之间的关系。

大部分学校都是围绕着这种自下而上的材料自然发展而创建的。许多技术和科学研究领域都是这样教授的。

回想一下高中或本科学习以及你可能学过的基础领域:例如:

  • 数学,如前所述。
  • 生物学。
  • 化学。
  • 物理学。
  • 计算机科学。

想一想材料是如何安排的,一周一周,一学期一学期,一年一年。自下而上,合乎逻辑的进程。

问题是,通过材料的逻辑顺序可能不是学习材料以提高生产率的最佳方式。

我们不是执行学习程序的机器人。我们是情绪化的人,需要动力、兴趣、关注、鼓励和结果。

你可以自下而上地学习技术科目,有一小部分人确实喜欢这样做,但这不是唯一的方法。

现在,如果你已经完成了一门技术科目,回想一下你是如何实际学习它的。我打赌这不是自下而上。

学习阅读

回想一下,你是怎么学会阅读的?

我儿子开始读书了。不用想太多,以下是他使用的一般技巧(实际上是学校和我们作为家长):

  • 首先要让别人读,这样才能产生兴趣并显示出好处。
  • 把字母表写下来,发正确的音。
  • 记住最常用的单词,它们的发音,以及它们的拼写方式。
  • 学习“拼字”启发式来处理生词。
  • 在监督下通读书籍。
  • 在没有监督的情况下通读书籍。

重要的是,他要不断地知道为什么阅读很重要,这与他想做的非常具体的事情有关,比如:

  • 阅读电视节目的字幕。
  • 阅读他喜欢的主题的故事,比如“星球大战”。
  • 当我们外出走动时,阅读标志和菜单。
  • 等等

同样重要的是,他得到的结果是他可以跟踪的,并且他可以在其中看到改进。

  • 词汇量更大。
  • 更流畅的阅读风格。
  • 日益复杂的书籍。

以下是他没有学会阅读的原因:

  • 词型定义(动词、名词、副词等)。
  • 语法规则。
  • 标点符号的规则。
  • 人类语言理论。

学习开车

你开车吗?

如果你不这样做是很酷的,但大多数成年人这样做是必要的。社会和城市设计都是围绕个人移动性而建立的。

你是怎么学会开车的?

我记得一些笔试,也许还有一次在电脑上的测试。我没有为他们学习的记忆,尽管我很可能有。这是我确实记得的。

我记得我雇了一位驾驶教练,还上过驾驶课。每一节课都很实用,在车里,练习我需要掌握的技能,在车流中驾驶车辆。

以下是我没有研究或与我的驾驶教练讨论的内容:

  • 汽车的历史。
  • 内燃机理论。
  • 汽车常见的机械故障。
  • 汽车的电气系统。
  • 交通流理论。

直到今天,在没有任何关于这些话题的知识的情况下,我仍然设法安全地驾驶。

事实上,我从来没有想过要学习这些话题。我没有任何需要或兴趣,他们不会帮助我实现我想要和需要的东西,那就是安全和容易的个人移动性。

如果车坏了,我就叫专家来。

学习编码

我开始编程时完全不知道编码或软件工程意味着什么。

在家里,我用BASIC来摆弄命令。我在Excel中摆弄命令。我修改了电脑游戏。诸若此类。挺好玩的。

当我开始学习编程和软件工程时,那是在大学里,是自下而上的。

我们从以下几个方面开始:

  • 语言理论。
  • 数据类型。
  • 控制流结构。
  • 数据结构。
  • 等等。

当我们开始编写代码时,它是在命令行上进行的,并且受到编译器问题、路径问题以及一大堆与实际学习编程无关的问题的困扰。

几年前的回忆。不知何故,我最终开始作为一名专业软件工程师在一些用户看重的复杂系统上工作。我真的很擅长,我很喜欢。

最后,我上了一门展示如何创建图形用户界面的课程。另一张展示了如何使用套接字编程让计算机相互通信。另一个是关于如何使用线程同时运行多个程序。

我把无聊的东西和我真正喜欢的东西联系起来:制作可以解决问题的软件,别人可以使用的软件。我把它和一些重要的东西联系起来。它不再是抽象和深奥的。

至少对我和许多像我一样的开发人员来说,他们教错了。他们真的做到了。这浪费了很多年的时间、精力和结果,让像我这样热情、空闲的学生可以把精力投入到他们真正热衷的事情上。

自上而下学习

自下而上的方法不仅仅是教授技术主题的常用方法;它看起来是唯一的方法。

至少在你思考你到底是如何学习的之前。

大学课程的设计者,他们所在学科领域的大师,正试图提供帮助。他们把所有的东西都摆出来,给你提供他们认为能让你获得所需技能和能力的材料的逻辑进程(希望如此)。

就像我提到的,它可以对某些人起作用。

它对我不起作用,我希望它对你也不起作用。事实上,我遇到的真正擅长这门手艺的程序员很少是通过计算机科学程序来的,或者即使他们这样做了,他们也是在家里独自学习,在进行黑客攻击的副业。

另一种选择是自上而下的方法。

不要从定义和理论开始。取而代之的是,首先将主题与你想要的结果联系起来,并展示如何立即获得结果。

制定一个计划,重点是实践这个取得成果的过程,根据需要深入某些领域,但始终要根据他们需要的结果来进行。

它是不同的

这不是传统的道路。

如果你走这条路,请注意不要使用传统的思维方式或比较方式。

责任在你身上。这不能归咎于制度。只有当你停下来的时候,你才会失败。

  • 它是迭代的。随着对主题的深入理解,我们会多次重温这些主题。
  • 这是不完美的。开始的时候结果可能不好,但随着练习,结果会变好。
  • 这需要发现。学习者必须对不断的学习和发现持开放态度。
  • 它需要所有权。学习者有责任改进。
  • 这需要好奇心。学习者必须注意什么是他们感兴趣的,并遵循它。

这很危险

说真的,我听过很多次“专家”这么说,比如:

你必须先了解理论,然后才能使用这项技术,否则你就不能正确地使用它。

我同意,一开始结果会不完美,但改进甚至专业知识不一定只来自理论和基本面。

如果你认为初学者程序员不应该将更改推向生产并部署它们,那么你肯定会相信初学者机器学习实践者也会受到同样的限制。

技能必须展示出来。

必须赢得信任。

无论一项技能是如何获得的,这一点都是正确的。

你是个技术员

真的吗?

这是我看到的另一个针对这种学习方法的“批评”。

一点儿没错。我们想成为技术人员,用实践中的工具帮助人们,而不是成为研究人员。

你不需要涵盖所有相同的领域,因为你有不同的学习目标。不过,一旦你有了整合抽象知识的上下文,你可以在稍后返回并学习任何你喜欢的内容。

工业界的开发人员不是计算机科学家,他们是工程师。他们是这门手艺的得意技师。

高效、有效、有趣的学习方式

以这种方式学习的好处远远大于挑战:

  • 你直接去做你想做的事,然后开始练习。
  • 你有一个将更深层次的知识甚至理论联系起来的背景。
  • 你可以根据你在主题中的目标高效地筛选和筛选主题。

这样更快。

这样更有趣。

而且,我打赌这会让你好很多。

你怎么能做得更好呢?

因为主题与你有情感上的联系。你已经把它与一个对你很重要的结果或结果联系起来了。你被投资了。你有明显的能力。我们都喜欢我们擅长的事情(即使我们对自己没有很好的自我认识),这会激发我们的动力、热情和激情。

一个热情的学习者会直接越过原教旨主义者。

学习机器学习

那么,你是如何接近机器学习这个主题的呢?

说真的,请在下面的评论中告诉我你的做法。

  • 你是在上自下而上的大学课程吗?
  • 你的学习是以这样的课程为蓝本的吗?

或者更糟:

你是否在遵循一种自上而下的方法,但却充满了内疚、嫉妒和不安全感?

你并不孤单;在这个网站上帮助初学者的过程中,我每天都能看到这一点。

为了帮你把这些点联系起来,我强烈建议你使用自上而下的方法研究机器学习。

  • 不要从前期数学开始。
  • 不要从机器学习理论开始。
  • 不要从头开始编写每个算法的代码。

一旦你对这个抽象的知识有了联系,这些都可以在以后来完善和加深你的理解。

  • 首先学习如何使用一个固定的框架和免费且易于使用的开源工具解决非常简单的预测性建模问题。
  • 在许多小项目上进行实践,慢慢增加它们的复杂性。
  • 通过建立一个公共作品集来展示你的作品。

关于这种方法,我已经写过很多次了;有关如何开始使用自上而下的机器学习方法的可靠帖子,请参阅本文末尾的“进一步阅读”部分。

在大学里根深蒂固的“专家”会说这是危险的。别理他们。

世界级的实践者会告诉你,这是他们学习的方式,并会继续学习。给他们做模特。

记住:

  • 你通过练习阅读来学习阅读,而不是通过学习语言理论。
  • 你是通过练习驾驶来学习驾驶的,而不是通过学习内燃机。
  • 你通过练习编码来学习编码,而不是通过学习可计算性理论。

你可以通过练习预测建模来学习机器学习,而不是通过学习数学和理论。

这不仅是我学习并继续练习机器学习的方式,而且它已经帮助了数以万计的我的学生(以及本博客的数百万读者)。

学习数学

不要止步于此。

也许有一天你想要或者需要拉开机器学习的数学支柱的帷幕,比如线性代数、微积分、统计学、概率等等。

你可以使用完全相同的自上而下方法。

选择一个对你来说很重要的目标或结果,并用它作为向导、过滤器或筛选主题来研究和学习到你需要的深度,才能得到那个结果。

例如,假设你选择线性代数。

目标可能是摸清SVD或PCA。这些是机器学习中用于数据投影、数据简化和特征选择类型任务的方法。

自上而下的方法可能是:

  • 在高级库(如scikit-learn)中实现该方法,并获得结果。
  • 在较低级别的库(如NumPy/SciPy)中实现该方法,并重现结果。
  • 使用NumPy或Octave中的矩阵和矩阵运算直接实现该方法。
  • 学习和探索所涉及的矩阵算术运算。
  • 研究和探索所涉及的矩阵分解运算。
  • 近似矩阵特征分解的研究方法。
  • 等等。

目标提供了背景,你可以让你的好奇心定义学习的深度。

以这种方式描绘,学习数学与学习编程、机器学习或其他技术科目中的任何其他主题没有什么不同。

它的生产力很高,而且非常有趣!

进一步阅读

如果你想深入了解,本节提供了更多关于该主题的资源。

  • 我该如何开始呢?
  • 面向程序员的机器学习。
  • 机器学习的精通方法。

摘要

在这篇文章中,你发现了自上而下和自下而上学习技术材料的方法之间的具体区别,以及为什么这是实践者应该并确实使用的方法来学习机器学习,甚至相关的数学。

具体地说,你了解到:

  • 大学使用自下而上的方法教授技术科目及其存在的问题。
  • 人们如何以自上而下的方式学习阅读、驾驶和编程,以及自上而下的方法是如何工作的。
  • 机器学习的框架,数学,使用自上而下的学习方法,以及如何开始作为实践者取得快速进步。

20

机器学习入门

发表评论

邮箱地址不会被公开。 必填项已用*标注

什么阻碍了你实现迈入机器学习领域的目标?

什么阻碍了你实现迈入机器学习领域的目标?

2020-04-22 机器学习

如果你在为进入机器学习领域而挣扎,感觉到有什么东西阻止了自己的开始,那么你应该看看这篇文章。 在这篇文章中,我们会讨论阻止进入机器学习领域的自我限制的信念,让你明白面临的问题。 几乎总是一种自我限制的信念阻碍了你们的进步。 也许你会在一个或多个这样的信念中看到自己。如果是这样的话, [......]

了解详情

R语言机器学习迷你课程

R语言机器学习迷你课程

2020-08-12 机器学习

在这个迷你课程中,你将发现如何开始,构建精确的模型,并自信地完成在14天内使用R预测建模机器学习项目。 这是一个重要而重要的文章。你可能想把它书签。 了解如何准备数据,拟合机器学习模型,并用我的新书评估他们在r上的预测,包括14步教程、3个项目和完整源代码。 我们开始吧。 [......]

了解详情

找到你的机器学习部落

找到你的机器学习部落

2020-04-26 机器学习

机器学习是一个充满算法和数据的迷人而强大的研究领域。 问题是,有这么多不同类型的人对机器学习感兴趣,每个人都有不同的需求。重要的是要了解你想要从机器学习中得到什么,并根据这些需求调整你的自学。 如果你不这样做,你很容易就会陷入困境,迷失方向,失去兴趣,得不到你想要的东西。 找到 [......]

了解详情

应用机器学习过程

应用机器学习过程

2020-04-26 机器学习

随着时间的推移,在处理应用机器学习问题时,你会开发出一种模式或流程,以快速获得良好的正常结果。 一旦开发完成,你就可以在一个又一个项目上反复使用此过程。你的流程越健壮、越发达,你就能越快地获得可靠的结果。 在这篇文章中,我想与你分享我解决机器学习问题的过程框架。 你可以将其用作下一 [......]

了解详情

WEKA机器学习迷你课程

WEKA机器学习迷你课程

2020-04-26 机器学习

机器学习是一项令人着迷的研究,但你如何真正将其用于解决你自己的问题呢? 你可能会困惑于如何最好地为机器学习准备数据,使用哪些算法,或者如何选择一个模型而不是另一个模型。 在这篇文章中,你将发现使用Weka平台学习应用机器学习的14部分速成课程,其中没有任何数学公式或一行编程代码。 [......]

了解详情