为什么机器学习不一定那么难

数学、物理,甚至计算机科学等技术性学科,都是采用自下而上的方法来教授的。

这种方法需要在一个研究领域中,以逻辑方式,按照复杂性和能力自然递进的顺序,来安排学习主题。

问题在于,人类不是执行学习程序的机器人。我们需要动力、兴奋感,最重要的是,需要将学习主题与实际成果联系起来。

我们每天使用的实用技能,如阅读、驾驶和编程,都不是用这种方式学会的,实际上是采用了一种颠倒的自上而下的方法。这种自上而下的方法可以直接用来学习像机器学习这样的技术学科,这能让你更快地变得富有成效,而且充满乐趣。

在这篇文章中,你将发现学习技术材料时自上而下和自下而上方法的具体区别,以及为什么从业者应该使用这种方法来学习机器学习,甚至相关的数学知识。

阅读本文后,你将了解:

  • 大学里用来教授技术学科的自下而上方法及其存在的问题。
  • 人们如何以自上而下的方式学会阅读、驾驶和编程,以及自上而下方法是如何运作的。
  • 使用自上而下的学习方法来构建机器学习甚至数学的学习框架,以及如何作为一名从业者开始取得快速进展。

让我们开始吧。

You're Doing it Wrong. Why Machine Learning Does Not Have to Be So Hard

你的方法错了。为什么机器学习不一定那么难
照片由 popofatticus 拍摄,保留部分权利。

概述

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

本文分为七个部分,分别是:

  1. 自下而上的学习
  2. 学习阅读
  3. 学习驾驶
  4. 学习编程
  5. 自上而下的学习
  6. 学习机器学习
  7. 学习数学

自下而上的学习

以一个研究领域为例,比如数学。

在数学中,有一种逻辑上的方法来安排各个主题,使其相互构建,并通过技能、能力和理解的自然递进过程来引导学习。

问题在于,这种逻辑上的递进可能只有那些已经掌握了这些知识并能直观地理解各个主题之间关系的人才能理解。

大多数学校教育都是围绕这种自下而上的、按部就班的方式进行的。许多技术和科学研究领域都是这样教授的。

回想一下高中或大学的学习经历,以及你可能学过的基础领域,例如:

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

想想这些材料是如何安排的,一周又一周,一学期又一学期,一年又一年。都是自下而上的逻辑递进。

问题是,通过材料的逻辑递进可能不是为了变得富有成效而学习这些材料的最佳方式。

我们不是执行学习程序的机器人。我们是情感丰富的人类,需要动力、兴趣、注意力、鼓励和成果。

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

现在,如果你已经完成了一门技术学科的学习,回想一下你是如何真正学会它的。我敢打赌,那不是自下而上的。

学习阅读

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

我的儿子正在开始学习阅读。不假思索,以下是他(实际上是学校和我们作为父母)正在使用的一些通用技巧:

  • 从听别人朗读开始,以产生兴趣并展示阅读的好处。
  • 掌握字母表并发出正确的读音。
  • 记住最常见的单词、它们的发音以及如何拼写。
  • 学习“拼读单词”的技巧来处理不认识的单词。
  • 在监督下通读图书。
  • 在没有监督的情况下通读图书。

重要的是,他要不断地知道为什么阅读很重要,并将其与他想做的非常具体的事情联系起来,比如:

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

同样重要的是,他要能看到自己可以追踪并能看到进步的成果。

  • 词汇量更大。
  • 阅读风格更流畅
  • 阅读复杂性不断增加的书籍。

以下是他没有这样学习阅读的方式:

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

学习驾驶

你开车吗?

如果你不开车也没关系,但大多数成年人出于需要都会开车。社会和城市设计都是围绕个人出行而建立的。

你是怎么学会开车的?

我记得有一些笔试,可能还有一次电脑上的测试。我不记得为它们学习过,尽管我很有可能学了。但我记得的是这些。

我记得我雇了一位驾驶教练,上了驾驶课。每一堂课都是实践性的,在车里,练习我需要掌握的技能,即在交通中驾驶车辆。

以下是我没有学习或与我的驾驶教练讨论过的内容:

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

直到今天,我仍然可以在对这些主题一无所知的情况下安全驾驶。

事实上,我从不期望学习这些主题。我既没有需求也没有兴趣,它们也不会帮助我实现我想要和需要的东西,那就是安全便捷的个人出行。

如果车坏了,我会打电话给专家。

学习编程

我开始编程时,对编码或软件工程的含义一无所知。

在家里,我捣鼓Basic语言的命令。我捣鼓Excel中的命令。我修改电脑游戏。等等。这很有趣。

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

我们从以下内容开始:

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

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

我讨厌编程。

快进几年。不知何故,我最终成为了一名专业的软件工程师,参与了一些受用户重视的复杂系统。我在这方面非常出色,并且我热爱它。

最终,我上了一门课,教如何创建图形用户界面。另一门课教如何让计算机使用套接字编程相互通信。还有一门课教如何使用线程让多个任务同时运行。

我将那些枯燥的东西与我真正喜欢的事情联系了起来:制作能够解决问题、供他人使用的软件。我把它与重要的事情联系了起来。它不再是抽象和深奥的了。

至少对我以及许多像我这样的开发者来说,他们教错了。他们真的教错了。这浪费了像我这样充满热情、时间充裕的学生本可以投入到他们真正热爱的事物上的数年时间、精力和成果/产出。

自上而下的学习

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

至少在你思考自己实际上是如何学习之前是这样。

大学课程的设计者,他们是各自学科领域的专家,正在努力提供帮助。他们将所有内容都安排好,为你提供一个他们认为能让你获得所需技能和能力的逻辑进展(希望如此)。

正如我所提到的,它对某些人来说是有效的。

但它对我无效,我预计它对你也无效。事实上,我遇到的很少有真正擅长自己手艺的程序员是计算机科学专业出身的,或者即使是,他们也是在家里自学,独自钻研业余项目。

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

把传统方法颠倒过来。

不要从定义和理论开始。相反,从将主题与你想要的结果联系起来开始,并展示如何立即获得结果。

制定一个专注于练习这个获得结果过程的计划,根据需要深入某些领域,但始终在所需结果的背景下进行。

它与众不同

这不是传统的路径。

如果你选择这条路,小心不要使用传统的思维方式或比较方法。

责任在你。没有可以责备的系统。只有当你停止时,你才会失败。

  • 它是迭代的。主题会随着理解的加深被多次重温。
  • 它是不完美的。开始时结果可能不佳,但会随着练习而改善。
  • 它需要探索。学习者必须对持续学习和探索持开放态度。
  • 它需要主人翁精神。学习者对自己的进步负责。
  • 它需要好奇心。学习者必须关注自己感兴趣的事物并追随它。

这很危险

说真的,我听过“专家们”多次这样说,他们会说这样的话:

你必须先了解理论才能使用这项技术,否则你无法正确使用它。

我同意开始时结果会不完美,但进步甚至专业知识不仅仅来自于理论和基础知识。

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

技能必须得到证明。

信任必须赢得。

无论技能是如何获得的,这都是事实。

你是个技术员

真的吗!?

这是我见过的对这种学习方法的又一个“批评”。

正是如此。我们想成为技术人员,在实践中使用工具来帮助人们,而不是成为研究人员。

你不需要涵盖所有相同的基础知识,因为你的学习目标不同。不过,一旦你有了可以整合抽象知识的背景,你可以随时回过头来学习任何你喜欢的东西。

行业中的开发者不是计算机科学家;他们是工程师。他们是这门手艺的自豪的技术员。

高效、有效且有趣的學習方式

以这种方式学习的好处远远超过了挑战:

  • 你直接去做你想做的事情,并开始练习。
  • 你有了联系更深层知识甚至理论的背景。
  • 你可以根据你在该学科中的目标,高效地筛选和过滤主题。

它更快。

它更有趣。

而且,我敢打赌它会让你变得更好。

你怎么能变得更好呢?

因为这个主题在情感上与你相连。你已经将它与一个对你重要的结果或成果联系起来。你投入其中。你拥有可证明的能力。我们都喜欢我们擅长的事情(即使我们对自己的优秀程度有点色盲),这会驱动动力、热情和激情。

一个充满热情的学习者会直接超越那些固守基础的人。

学习机器学习

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

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

  • 你是否正在参加一门自下而上的大学课程?
  • 你是否正在模仿这样的课程来学习?

或者更糟的是

你是否遵循着一种自上而下的方法,却充满了负罪感、对数学的羡慕和不安全感?

你并不孤单;我每天在本网站帮助初学者时都会看到这种情况。

为了让你明白其中的关联,我强烈建议你使用自上而下的方法来学习机器学习。

  • 不要从预备数学知识开始。
  • 不要从机器学习理论开始。
  • 不要从零开始编写每个算法。

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

  1. 从学习如何使用固定的框架和免费易用的开源工具来解决非常简单的预测建模问题开始。
  2. 在许多小项目上练习,并慢慢增加它们的复杂性。
  3. 通过建立一个公开的作品集来展示你的工作。

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

深陷于大学体制的“专家”会说这很危险。忽略他们。

世界级的从业者会告诉你,这是他们学习和持续学习的方式。模仿他们。

记住

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

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

这不仅是我学习和持续实践机器学习的方式,它还帮助了成千上万我的学生(以及这个博客的数百万读者)。

学习数学

不要止步于此。

总有一天,你可能想要或需要揭开机器学习数学支柱的面纱,比如线性代数、微积分、统计学、概率论等等。

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

选择一个对你重要的目标或结果,并以此为视角、过滤器或筛选器,来学习你需要达到该结果所需的深度的主题。

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

一个目标可能是理解SVD或PCA。这些是机器学习中用于数据投影、数据降维和特征选择等任务的方法。

一个自上而下的方法可能是:

  1. 在像scikit-learn这样的高级库中实现该方法并获得结果。
  2. 在像NumPy/SciPy这样的底层库中实现该方法并重现结果。
  3. 直接在NumPy或Octave中使用矩阵和矩阵运算实现该方法。
  4. 学习和探索所涉及的矩阵算术运算。
  5. 学习和探索所涉及的矩阵分解运算。
  6. 研究近似矩阵特征分解的方法。
  7. 等等……

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

这样看来,学习数学与学习编程、机器学习或其他技术学科中的任何其他主题没有什么不同。

这非常高效,而且充满乐趣!

进一步阅读

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

总结

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

具体来说,你学到了:

  • 大学里用来教授技术学科的自下而上方法及其存在的问题。
  • 人们如何以自上而下的方式学会阅读、驾驶和编程,以及自上而下方法是如何运作的。
  • 使用自上而下的学习方法来构建机器学习甚至数学的学习框架,以及如何作为一名从业者开始取得快速进展。

你有什么问题吗?
在下面的评论中提出你的问题,我会尽力回答。

为什么机器学习不一定那么难的164条回应

  1. The c0d3R 2018年3月28日,上午6:05 #

    嗨,Jason,

    根据我的个人经验,我可以说自上而下的方法比自下而上的方法更适合我。我上过很多机器学习和深度学习的课程,但我总是要么失去兴趣,要么被早期的复杂性搞得焦头烂额,以至于无法真正学习有趣的应用部分。当我开始将模型应用于现实世界的问题时,我的机器学习水平提高了很多。

    感谢你证实了我的偏见!

    • Jason Brownlee 2018年3月28日,上午6:36 #

      谢谢。

      • Ahmed 2019年5月21日,晚上9:57 #

        嘿,我想构建一个机器学习模型来读取PDF,然后根据差异进行分类(比如创建一个不同的文件夹,然后将那些PDF移动到那些文件夹中)。

    • Rizwan Ali 2019年7月13日,晚上8:34 #

      非常感谢你对学习方法的见解。我通常对传统学习感到厌倦。在我的硕士研究工作中,我有两位导师,一位是研究员,另一位是工程师。我浪费了整整一个学期(一年的研究时间)来挖掘神经网络的基础知识,然后我遇到了我的另一位导师,他是一位工程师。他从给我一段区分猫和狗的图像数据集的代码开始,而且代码有效。我开始了自己的研究课题,并在两个月内出人意料地完成了我的研究。

  2. Will Bidstrup 2018年3月28日,上午6:24 #

    谢谢你,Jason。

    我相信这是一个极好的建议,至少对我来说是这样。我发现我需要在自上而下和自下而上之间摇摆,但关键在于——我只有在有动力时才能强迫自己自下而上地学习,而动力来自于我对做一些令人兴奋的事情充满热情,比如解决一个现实世界的问题或制作一些很酷的东西。

    我期待着学习你的一些材料,并开始充实我自己的学习博客。

    感谢这篇思路清晰、鼓舞人心的文章。

    Will

  3. Lissy 2018年3月28日,上午11:57 #

    我同意,这是学习机器学习的最佳方式。我跳过了所有的数学,直接投入到有趣的部分。现在我正在回头学习统计学课程。如果我从统计学开始,我永远也撑不下去。

  4. Jeff 2018年3月28日,下午12:41 #

    我在大学学习编程时也有同样的经历。2006年上了一门C语言课。还必须使用命令行和Linux,这让事情变得更加困难。快进到2012年——在iTunes U上学习Java,通过移动小机器人和让球弹跳……在我熟悉的电脑上的集成开发环境中。这有趣多了。在过去的几年里,我通过做一些随机的小项目来学习C#、Python和R,这些项目要么帮助我在工作中,要么自动化了家里一些无聊的事情。

  5. Raj 2018年3月28日,下午6:54 #

    同意,再次感谢你用更简单的方式把它表达出来。

  6. Muyi Ibidun 2018年3月28日,晚上10:06 #

    我完全同意自上而下的学习方法,尤其是在计算机科学、数据科学和机器学习这样快节奏的领域,这些领域的技术和科技变革比你掌握其背后理论的速度还要快。然而,我逐渐意识到,我的计算机背景在很多方面帮助了我,使我能够轻松地按需掌握技术背后的基本概念。

  7. Dhrumil 2018年3月29日,下午12:36 #

    我感觉自己像是经历了一场思想爆炸。你非常清晰地阐述了我一段时间以来一直在做的事情,但却一直感到恐惧、自我欺骗、内疚、偏执等。我想我以后不会再这样了。

    谢谢你,Jason。

  8. Tim 2018年3月29日,下午3:38 #

    谢谢你写这篇文章。我刚刚发现了你的博客,我会阅读你在这里写的所有内容。两个月前,我对机器学习和人工智能感到非常兴奋,并像往常一样在谷歌上搜索“如何开始学习机器学习”、“我应该学习哪些语言用于机器学习”以及“机器学习的先决条件”。

    那次研究的结果塑造了我学习内容和如何开始的决定——我列出了一系列课程,从吴恩达的机器学习课程开始,拿到了多变量微积分、线性代数、统计学的书籍,并开始自学Python和微积分。两个月后呢?还在读Python和微积分的书,解题,做练习(唉)。

    我有点完美主义(也就是说:理论上喜欢自下而上的学习)。我的意思是,计划好一切,上完每一门课,理解每一个基础数学理论,然后再尝试机器学习课程,这样一切都会顺利进行,我会在最短的时间内掌握一切,这完全应该行得通,对吧?!

    有时,我会忘记自己是如何学会阅读、创作音乐、使用电脑或进行一项运动的。自下而上是一个美好的想法,但它只在一个乌托邦世界里行得通,在那里我每天都有无限的动力去掌握那些并不直接让我感兴趣的事情。

    我从今天起要改变我的方法(也就是说:把所有东西都扔掉,开始动手玩)。我想要回那种兴奋感。再次感谢你写这篇文章,Jason。

    • Jason Brownlee 2018年3月30日,上午6:31 #

      我很高兴这篇文章对你有帮助,Tim。

      专注于提供价值,做到有用。你不可能学到所有东西,如果你走上那条路,几乎所有的东西都不会帮助你对他人有用(例如,作为数据科学家/机器学习工程师)。

      坚持住。

    • Jay 2025年1月27日,晚上9:38 #

      嘿,我读了你的文章,感觉你就像在描述我自己的学习风格。
      不过,这是我的两点看法。
      我逐渐明白,这些是应用领域,而不是纯科学。一个更好的方法是通过学习基础资源并尽快构建东西来掌握技能。
      这样,我们就能得到一个类似于反向叠叠乐的结构。
      我们从一个空心的叠叠乐塔开始。它能站立,但有空洞。
      然后随着我们在这个领域的发展,我们再把它填满。

      所以,如果你刚开始只学了矩阵数学——没关系。
      之后,当你达到中级水平时,再去学习矩阵在计算机科学中是如何表示向量的,这些向量是如何加载数据点和概率的。

      另一种方法(你和我的方法)也很有效。但其缺点是:
      – 花费时间太长
      – 可能会失去兴趣
      – 可能会失去动力。
      – 可能永远也到不了真正“构建东西”那一步。

      你怎么看?

  9. Franco 2018年3月29日,晚上7:45 #

    著名的数学家卡尔·雅可比可能会同意你的观点。他的格言是“反演,永远反演”(德语:“man muss immer umkehren”)或“逆向工作”。

    又一篇深刻的文章,Jason!谢谢你。

    • Jason Brownlee 2018年3月30日,上午6:36 #

      谢谢你,Franco,我很高兴它有帮助。

      感谢分享这句名言!

  10. Patrick 2018年3月29日,晚上10:18 #

    完全同意——很棒的文章!

  11. Doi 2018年4月6日,晚上8:24 #

    这真是一个很大的帮助。
    看来我之前处理事情的方式是错的。
    然后我读了你的文章,它告诉我为什么即使学习了这么长时间的机器学习,大约两年了,我还是不满意。
    我采取了一种混合方法。

    我会把它理顺的。
    我应该从哪里开始?
    我不能从最基础的开始。我已经反复地半途而废了。
    而且无法再重新开始。

    请给些建议。

  12. BitBarrel 2018年4月11日,晚上7:36 #

    说得很好。这是许多教育领域都存在的问题。

    我记得高中时上的第一堂信息技术课,老师解释了软盘驱动器是如何分成不同区域的。我是说,真的吗?你真的需要知道这个才能操作电脑吗?你应该看看我同学们的表情。我很幸运能看穿这种废话。不是每个人都能。

  13. Mahesh 2018年4月12日,晚上11:11 #

    3个月前,我开始用自下而上的方法学习机器学习。我很多次都感到无聊,然后停止学习,又重新开始。我的学习是断断续续的。我觉得自上而下的方法会对我有效。
    谢谢你
    Mahesh

    • Mahesh 2018年4月12日,晚上11:12 #

      *很多次*

    • Jason Brownlee 2018年4月13日,上午6:40 #

      很高兴听到这个消息,Mahesh,坚持下去!

  14. Germán Goñi Núñez 2018年4月21日,上午8:37 #

    感谢你创作的精彩内容,Jason。

  15. Sean O'Connor 2018年4月23日,下午2:41 #

    这里有一些关于相似性对齐的讨论,还有一个关于反馈对齐的奇特话题。

    https://discourse.numenta.org/t/similarity-alignment-a-missing-link-between-structure-function-and-algorithms/3683

    我还在练习html5,做了一个WHT玩具示例。

    http://md2020.eu5.org/wht1.html

    • Jason Brownlee 2018年4月23日,下午2:55 #

      很好,这与文章有什么具体关系呢,Sean?

  16. Vinícius Gonçalves de Oliveira 2018年4月26日,上午7:41 #

    伙计,我怎么才能从巴西寄给你一份礼物,因为这些文章里包含了如此深刻的见解?

    我很高兴知道,包括你在内的许多从业者,都曾分享或在不久前分享过我现在正在经历的同样困难。

    感谢你激励人心的工作和技术文章……

    你给了我巨大的帮助。

    永远支持自上而下……

    再次非常感谢……

    此致

  17. Sharp Sight 2018年4月30日,上午8:58 #

    非常同意这一点。

    我告诉我的学生,这就像当一名赛车手:你不需要能设计汽车才能驾驶它。

    对于从业者来说,几乎总是最好先学会以实用的方式使用机器学习工具,然后在需要开始微调模型或加深知识时“填补”数学知识。

    我认为我们理念上唯一的主要区别是,我强烈建议学生首先掌握基础分析:http://www.sharpsightlabs.com/blog/machine-learning-prerequisite-isnt-math/

  18. Hongli 2018年5月2日,上午7:59 #

    我非常喜欢你的文章!

    我认为学习一门编程语言(任何语言),我们总是以自上而下的方式学习它。
    因为要从下至上学习,这意味着我们需要了解硬件如何工作,以及在硬件上运行的操作系统,然后是为在操作系统中运行而编写的语言,接着是编译器,最后才是语言本身。这对任何人类来说都是不可能且不高效的。为了学习,我们不需要知道我们的大脑是如何指导我们学习的。它在设计上就是隐含的自上而下。

  19. Evi 2018年6月13日,晚上9:45 #

    谢谢你的文章。我目前在德国攻读信息学博士学位,我们这里没有课程。我目前的研究领域是使用深度学习进行时间序列分析。
    我其实是物理学出身,然后完全转换了我的研究领域。在我博士的第一个月,我强迫自己阅读了Bengio和Goodfellow写的免费《深度学习》一书。虽然我认为这是一本好书,但我从早到晚读它感到无比厌烦。基本上,我浪费了一个月的时间。现在我尝试用一种不同的方法。例如,我最近修改了一个变分卷积自编码器,并让它在我的时间序列数据集上成功运行。现在我很高兴地去阅读关于变分自编码器的原始论文。同样地,为了更好地理解我的模型,我有动力在空闲时间阅读统计学书籍。但从读一本书开始我的博士工作几乎没有给我带来任何收获。事实上,我也许应该重读那本《深度学习》书,因为现在我肯定能从中获得更多。

    • Jason Brownlee 2018年6月14日,上午6:03 #

      干得好。

      你的变分自编码器在你时间序列问题上的表现如何?

  20. Landon Eggleston 2018年6月20日,凌晨2:24 #

    我很少给文章/博客文章留评论,但你在这里提供的原则和类比非常贴切。我感觉你的免费和付费内容将加速那些已经有学习动力的人的学习曲线,更棒的是——可能会给那些因为觉得机器学习复杂、常常认为入门需要深广知识而感到能力不足的潜在学习者带来开始的信心。

    ——现在开始,频繁失败。没有什么比从过往失败中获得的成功更能激励人了——

  21. Eric Pearce 2018年6月28日,上午6:26 #

    我学习机器学习才大约两周。我想我一直在自下而上的方法和试图寻找适合我问题的例子(自上而下)之间摇摆。我确信自上而下的方法是正确的方向,但我的问题并不是一个真正的离散问题,它涉及一个非常物理的系统,其控制方程太复杂,无法简化成一个简洁的方程式。结果,我有一个在我看来是监督系统,而且是连续的。我有四个输入,两个高度交织的输出,现在就是搞不清楚该往哪里走。在我继续寻找例子和方法的同时,欢迎任何建议。感谢你的网站,今天刚发现,正在狂读……😉

  22. Grant 2018年6月28日,晚上9:17 #

    这是一篇很棒的文章,谢谢你把它阐述得如此清楚。

    到目前为止,我一直是从下至上地学习机器学习和先修课程,但意识到如果我用不同的方法,我本可以走得更远。我花了无数个小时试图解决编译器错误或其他学科中类似的障碍,现在看来,很多时间都浪费了。

    这是我即将完成本科学业的第一年;不幸的是,它无法兑现其自下而上的承诺,只会拖延我并让我负债累累。

    我一直在尝试通过自学,主要采用自下而上的方法来填补我的知识空白,但很多时候都感到被埋没和迷失。网上有太多优秀的资源,我正在努力平衡前进的动力和我那种想在继续之前了解事物每一个复杂细节的倾向。

    感谢这篇精彩的文章和这个网站!我知道在我规划未来的道路上,这将是一个宝贵的资源。自上而下的学习方法对我来说肯定会更好!

    • Jason Brownlee 2018年6月29日,上午5:59 #

      很高兴它有帮助,Grant。坚持下去。

      如果在我能帮助你的旅程中,我随时都在。

      专注于端到端地解决问题并交付结果。这是让其他一切变得有意义或被淘汰的骨架。

  23. Ahmed 2018年7月10日,下午1:54 #

    如果这是你对学习的思考方式,那么我很幸运地找到了你……

  24. Shailna Patidar 2018年10月15日,下午5:30 #

    嘿,Jason,

    我想现在我可以用你的方法赚到任何东西,而不仅仅是编程。🙂

  25. Ankur 2018年10月24日,下午4:20 #

    感谢介绍这种新方法。我刚才还在想自己是否该用自上而下的方法,读了这篇文章我确认了……让我们看看效果如何……

  26. Ronnie 2018年10月31日,凌晨1:14 #

    我喜欢这种方法,我必须说你提到的每一点都很有道理。我个人讨厌大学的教育方式,总是更喜欢我自己的“方式”,现在我把我的方式看作是自上而下的学习方法,我用这种方式学到了很多东西,甚至自己都不知道。

    我想是时候驯服机器学习了

  27. Tanuj Dave 2018年11月9日,晚上10:30 #

    这真是一篇开始学习机器学习的绝佳文章,谢谢 Jason。

  28. Gaurav Tripathee 2018年11月29日,上午9:43 #

    你通过练习驾驶学会了开车,而不是通过学习内燃机。
    但是,
    如果你不懂内燃机,你就造不出一辆车。

    我完全同意你的论点和指导。我也在学习大学式的机器学习,但自上而下的方法似乎有趣得多,也更实用。但要在这个领域出类拔萃,我们确实需要了解理论。
    我明白这篇文章是为了激励初学者。而且,从你的话中,我被推动去用自上而下的方法来学习它。我想,如果我在自上而下的方法中有很好的实践知识,我就能更好地理解自下而上的方法。

    感谢您分享您的智慧。

    • Jason Brownlee 2018年11月29日,下午2:36 #

      感谢分享。

      不确定我是否同意,你可以驾驶F1(顶级赛车)而不需要自己造车。

      也许你可以决定是想使用技术还是开发新技术(或两者结合)。大多数企业只需要一个能使用技术并交付结果的人,而不是创新者。

  29. BigAl_LBL 2019年1月10日,晚上10:42 #

    但是,如果你要造车,你真的需要了解螺母和螺栓的作用。

    诚然,在工业界,大多数人大部分时间都被期望开车,但如果你期望长期担任高层职位,你最终会发现汽车需要重建,那时你就需要了解螺母和螺栓了。

    你不需要理解一项技术就可以使用它的预封装版本,但如果你要调整它,或者用它来做不同的用途,你就需要理解它。自上而下的方法可以让你使用一个算法,但不能创建它。

    大学之所以采用自下而上的教学方式是有原因的——他们的目的不是教人们如何驾驶汽车,而是让学生理解设计和制造一辆汽车所需的所有知识。有了这些知识和理解,雇主就有责任教员工如何驾驶他们特定的汽车。

    如果你不想了解汽车,那就别费劲上大学了,而是利用像这个网站这样的优秀资源来教你开车,但要明白它们是不同的工具,有不同的目标和不同的结果。

    如果你想赢得一场赛车比赛,就去学开车;如果你想造出最好的车,就去学工程学。如果你想创造一种新型汽车,就去学科学,但如果你想真正精通其中任何一项,你就需要掌握所有这些。

    自上而下最终会到达底部,而自下而上最终会到达顶部。选择能让你最快到达目的地的路径。

    我个人发现从第一性原理出发理解并应用事物更容易——但我确实同意,我似乎是少数派,而自上而下的背景确实有助于将问题聚焦,并可能有助于理解。

    • Jason Brownlee 2019年1月11日,上午7:50 #

      当然,但大多数人不是在造车,也从来不需要。我的观点是。我们是开车去超市,不是在F1赛车。也许你是,那也没关系。

      几乎没有人需要开发一种新型的神经网络或优化算法。从来没有。

      就像你可以成为一名Java开发者,而无需编写编译器、阅读字节码或编写集成开发环境等。

      但他们可以在整个职业生涯中拟合和调整模型,为企业创造大量价值。

      同意你的最后一点——你必须找到一种适合你偏好方法的方式,并全力以赴。

  30. John Davis 2019年1月14日,凌晨3:59 #

    非常感谢。
    读到这篇文章我真的很激动;我从未想过要改变现有的教育体系。但当我读到这篇文章时,我感觉这一切就在我身边……我只是没能理解它。
    我现在正处于机器学习学习过程的早期阶段。这个见解肯定会对我有帮助。

    • Jason Brownlee 2019年1月14日,上午5:30 #

      很高兴它有帮助。

      坚持住,你并不孤单。我们有数百万这样的人——把事情做好并交付成果。

  31. charan 2019年2月17日,上午8:08 #

    感谢您分享宝贵的观点,先生。

  32. Anthony 2019年2月18日,下午2:24 #

    对于像我这样处于学习机器学习早期阶段的人来说,这真的非常鼓舞人心,我感觉自己已经力不从心,淹没在术语和信息过载之中。

    谢谢!

  33. Disha Bhatia 2019年3月13日,下午4:57 #

    你好,你的帖子非常有帮助,因为我才刚刚开始。我想问一个问题,就像你提到的孩子学习阅读、一个人学习开车一样,都是以自上而下的方式进行的,我们训练机器的方式也是类似的,对吗?

  34. Sachin S Babar 2019年3月15日,凌晨2:19 #

    谢谢Jason先生。

    这确实是每个教育机构都应该推崇的完美的自上而下的方法。

    感谢您成为这样一位有远见的教练。

  35. Alex 2019年3月19日,上午7:24 #

    这非常鼓舞人心。谢谢你!

  36. Manasa 2019年3月19日,晚上10:07 #

    我在10年级初次接触C语言编程时也遇到了类似的问题。我们被要求学习函数、指针、数据结构(为此我简直哭得死去活来)等等。我当时相信,编程是我这辈子永远不想做的事情。

    后来我被一家公司录用,加入了一个专注于机器学习和人工神经网络的团队。我从零开始学习Python,并在经理的帮助下自己编写代码。

    我可以高兴地说,我以前从未觉得编程如此自由。我学到的所有东西,都是通过大量的谷歌搜索、实验和摆弄代码片段得来的。

    我完全能理解你的博客。非常感谢你让我觉得,在我最初的几年里,我并不是唯一一个讨厌编程的人。

    • Jason Brownlee 2019年3月20日,上午8:29 #

      感谢分享。

      是的,你/我们并不孤单。我认为这种情况比人们讨论的要普遍得多。

  37. Pete 2019年3月20日,晚上9:19 #

    这是一篇多么棒、多么鼓舞人心的文章,感谢你写下这篇文章!

    我是在搜索一个我从未听说过的数学术语时找到这个网站的,这个术语是我在一本机器学习书中读到的(而且那还只是引言章节!)。
    我几乎已经放弃学习机器学习了,因为我尝试了自下而上的方式,从一些数学课程开始,结果发现我甚至没有足够的知识来理解那些课程,所以接着我需要上更简单的数学课程……我开始觉得我可能需要回到学校水平的基础知识才能有所进展。

    不过,我不知道为什么我会用这种方式来学习,这肯定不是我学习编程的方式,也不是我尝试学习其他任何东西的方式,我想机器学习可能有些抽象和令人生畏的地方。

    不管怎样,我现在要改变我的方法,直接跳进去尝试做点什么,如果需要的话,我可以从那里再往回追溯。

    • Jason Brownlee 2019年3月21日,上午8:08 #

      谢谢你,Pete,我很高兴这篇文章对你有帮助。

      坚持下去,如果你对其他机器学习术语有疑问,我随时乐意帮忙!

  38. Daniel 2019年3月30日,晚上10:34 #

    我将从这里开始……

  39. Nick 2019年4月19日 上午1:14 #

    Jason,你太牛了!

    我完全同意你的看法。

    我曾与IT界一些最出色的程序员共事。那是在2002年,这些人曾为矫形/假肢行业开发了一款应用程序。

    他们成了那个行业的微软。这些人开发这个应用程序是为了解决一个特定的问题。他们中没有人上过任何正规的编程课,也没有人上过大学。他们只是喜欢编程,甚至在业余时间也会创建项目。(他们是在成为专业程序员多年后才获得大学学位的)。

    我热爱编程,但我做得非常糟糕。我写25-50行代码才能实现的功能,他们5行就能搞定!

    我想或许我应该去上课。我确实去上了课,但还是没能开窍。

    我认为问题的一部分在于,我想解决一个问题,但已经有现成的解决方案了。我会被要求编写一个特定的程序,但然后我就会想,“这有什么意义?已经有人写过了。”

    这对我来说没有切身的感受。

    直到我接触到SharePoint和SQL,情况才发生了改变。当时我别无选择,只能为我的公司创建查询并开发SharePoint应用。当我还是Linux管理员时,我甚至最终重写了Procmail的部分代码来处理不同的文件类型。

    这花了我很长很长时间,我的很多代码都很粗糙(有时甚至很可笑),但我喜欢它,而且那是“我”自己的东西。

    随着时间的推移,我学到的理论开始融会贯通,因为我的大脑正在将它与实际的东西联系起来。

    我很喜欢写故事。从小时候起,我就会写一些冒险故事之类的。人们喜欢我的作品,但它需要“润色”。于是我去学习如何写小说,学习语法规则等等。但我一开始是写我喜欢的故事,后来才把它们和理论联系起来。

    在我看来,衡量一个人智力的真正标志是,他能把一个复杂的话题讲得多好懂。

    你做到了!

    我一直对机器学习很感兴趣,但不知道从何入手。感谢你的网站和你所有的努力。它给我指明了正确的方向!

    • Jason Brownlee 2019年4月19日 上午6:15 #

      太棒了,Nick,感谢你的分享,非常感激。

      在这件事上,我们都不是孤单的。

    • Ashabkaar 2019年7月19日 上午9:30 #

      第一次接触机器学习。我的毕业设计导师让我学习机器学习。但我对机器学习很好奇。我希望能得到所有关于机器学习的帮助/资料/工具。因为这将是我的毕业设计项目。
      我觉得这篇文章非常有帮助。我认同自下而上和自上而下的方法。我是机器学习的新手。我对此很好奇。但请帮我推荐一些有用的工具。

  40. Jack 2019年6月11日 上午1:32 #

    我注意到你回复了很多评论,说大多数人不需要创建新的神经网络架构。这或许是对的,但我们当中有相当一部分人喜欢贴近底层工作,即使我们不造一辆新车。即使在你的比喻中,我也不满足于仅仅是开车。我必须知道汽车是如何工作的。我必须了解它的历史。除非我知道黑匣子或灰匣子里是什么,否则我不觉得我真正理解了如何驾驶。

    实际上,这表现为(至少对我而言)缺少连接顶层和底层的材料。为了速度,我必须从上至下开始,但最终我会到达一个所有自上而下文章都停止的地方,或者对一些非常重要的事情含糊其辞。你搜索更多信息,但你只能找到为那些从下至上开始的人写的深奥文章,充满了只有沉浸在自下而上世界里的人才懂的术语。换句话说,在自上而下的文献中,你能从顶层向下走的深度似乎是有限的。

    • Jason Brownlee 2019年6月11日 上午7:58 #

      说得有理,遵循最适合你学习风格的方法吧。

      也许吧。一旦你学会了一个领域的术语,深入研究就会变得更容易。这需要练习——例如,学习该关注什么。

  41. Vinodkumar 2019年7月5日 上午3:44 #

    感谢你,Jason,提供了如此出色和令人惊叹的指导。

    我刚开始学习机器学习,尝试了不同的课程和方法来学习和理解机器学习的概念,但我喜欢你建议的方法。
    我会遵循它的。

    谢谢你

  42. Lloyd A. Courtenay 2019年7月13日 下午7:50 #

    很棒的文章。我是一名考古学家,过去数学很差……因此,我不会尝试去看它如何应用。当我开始听说机器学习算法在其他科学领域,如医学,取得了成功时,这引起了我的极大关注……

    我熟悉R语言已经很多年了。在考古学中,许多人经常使用R进行基础统计。我总是觉得使用R相对有趣……因为经过数小时的错误之后,当你让代码真正工作的那一刻,总是感觉自己取得了成就。这让我接触到R中更高级的统计学,并最终接触到机器学习。通过这个过程,你大概可以说我遵循了你所说的“自上而下”的方法。我开始找到有效的算法,将它们应用到我的数据集中,然后尝试寻找替代方案和其他方法来获得最好的结果。我最终开始尝试神经网络和深度学习,并对结果感到惊讶。我必须说,我的成功很大程度上要归功于Machine Learning Mastery系列书籍以及其他资料。

    在成功应用这些算法之后,我现在感觉自己是一个更有经验的程序员,尤其是在R方面,并且过去几个月一直在用Python开发算法。我也开始阅读机器学习理论的基础知识,现在我想我甚至可以说我非常喜欢数学,并且每天都在使用它。

    我认为,对于许多其他领域有兴趣应用这些算法的科学家来说,“自上而下”的方法是开始学习数据科学的最佳方式。对大多数考古学家来说,他们以前认为我做的是科幻小说……至少直到他们开始看到我近一年来取得的成果。

    无论如何,我非常感谢这些帖子和书籍。我非常密切地关注这个网站,并借此完成了我的硕士论文。我刚刚开始我的博士研究,可以肯定地说,在未来几年里,我可能会非常仔细地重温这些帖子——强烈推荐。

    非常感谢Jason,请继续保持出色的工作!

    • Jason Brownlee 2019年7月14日 上午8:06 #

      谢谢分享,Lloyd,一个精彩且鼓舞人心的故事。

      祝你的博士学业一切顺利!

  43. Ansley 2019年7月18日 上午12:43 #

    很棒的文章!我只想分享一下我是如何开始学习机器学习的。2019年7月14日,我在对该主题一无所知的情况下,参加了在谷歌开发者空间举办的TensorFlow 2.0聚会。讲座结束后,我们有机会体验TensorFlow并将其部署到Coral上进行物体识别。我非常享受这次活动,并且想了解更多。我在Coursera上找到了“TensorFlow in Practice”这门课程,过去几天我一直在用自上而下的方法学习它。在我做研究时,我偶然发现了你的网站,很高兴能找到它。谢谢你。:)

  44. Ashabkaar 2019年7月19日 上午9:33 #

    拜托,我需要你的帮助。这是我的毕业设计领域。需要你的帮助。请将关于机器学习的重要提示分享给我 @Abubakarashir80@gmail.com

  45. Jacob 2019年8月10日 下午8:46 #

    我很高兴偶然发现了你的网站,并找到了自上而下的方法,这正是我喜欢的学习方式,边学边用,为了实际应用。我刚刚上完吴恩达的课程,正准备从这里开始。

    • Jason Brownlee 2019年8月11日 上午5:56 #

      谢谢。很高兴你能成为ML Mastery社区的一员。

  46. Hongbo Ai 2019年9月3日 下午1:17 #

    所有的帖子都是你自己写的吗?太棒了。

    • Hongbo Ai 2019年9月3日 下午1:19 #

      我正在读《Hands-on Machine Learning with Scikit-Learn and Tensorflow》这本书,并尝试在Kaggle上解决一些基础竞赛。

    • Jason Brownlee 2019年9月3日 下午2:09 #

      是的,我写的!

  47. Sumitha Sampath 2019年10月9日 上午5:59 #

    嗨,Jason,

    我是你网站的忠实粉丝。我最喜欢的是你对待机器学习的方法。在一个可能非常技术化/具有挑战性的学科中,你把人和学习者的心态放在了技术问题之前。认识到人们在实现结果或解决问题的背景下学得更好是关键。简单的鸢尾花示例在一个大多数人首先谈论复杂性/数学建模的领域,极大地增强了我的信心。祝贺你正在产生的积极影响,并期待从你的内容中学到更多。

    Sumitha

  48. Ralph 2019年11月9日 上午3:56 #

    喜欢你的想法和你的表达。

    Ralph

  49. Jeroen 2019年11月21日 下午9:27 #

    出于负罪感、对数学的羡慕以及因遵循自上而下方法而产生的不安全感,我目前正在上一门自下而上的大学数学课程。我注意到,我很难将所学知识与我所用的东西联系起来(到目前为止),这使得我很难保持动力。是时候重新审视我的方法了,谢谢你让我茅塞顿开!

    • Jason Brownlee 2019年11月22日 上午6:03 #

      是的,它们是两个截然不同的世界。

      就像计算理论和编程一样。

  50. Jake 2019年11月23日 上午6:00 #

    说得好,Jason!

    我必须承认,我从未找到过一篇能“完全”反映我迄今为止数据科学生涯的文章。我也听过我最喜欢的一位MOOC讲师说:“你可以随时回顾和完善你对细节的理解;然而,拥有一个知识框架要重要得多”(我可能转述得不好)。

    话虽如此,我还要补充一个为什么自下而上、大学式复述很糟糕的理由!仅仅在少数最初开辟道路的人(例如牛顿物理学)的工作基础上扩展/发展,你完全忽略了那些基础性的、可能具有革命性的途径,这些途径允许思想/观念更加多样化。不幸的是,这些原创作品的作者是新科学出版物的守门人,说实话,他们是一些自负的人。我想我在这条回复上说得太多了;不过,我要感谢你,Jason,感谢你的坦率,我也邀请大家尝试自上而下的方法!你不是机器人!

    • Jason Brownlee 2019年11月23日 上午6:57 #

      谢谢你,Jake!

      我很高兴这篇文章能引起你的共鸣,感谢分享你的经历。

      我看到太多“实践者”学习成为“学者”,就像旅鼠跳崖一样。真是浪费潜力。

  51. Aigerim 2019年11月26日 上午12:54 #

    你好,我弟弟建议我阅读你关于如何理解机器学习中一切的观点。问题是,我是一名博士生,现在我的博士研究卡在了某个阶段,我喜欢你的方法。我以前没意识到,但在生活中我一直是你所写的那种方式。理论从来不是我的强项,我更喜欢用实践的方法来处理事情。谢谢你,希望这能帮到我。

    • Jason Brownlee 2019年11月26日 上午6:08 #

      谢谢,很高兴它能帮到你!

      坚持住,祝你的研究好运!

  52. Navneet 2019年12月8日 下午1:47 #

    >>你是否在遵循一种自上而下的方法,却充满了负罪感、对数学的羡慕和不安全感?

    当我读到这些话时,我就想他是不是和我在同一个房间里!?这正是我刚考虑采用自上而下方法时的确切感受。非常感谢你在接下来的部分中消除了这些感觉。我仍然有一丝挥之不去的疑虑,但我想一旦我迈出最初的几步,事情就会开始并向前发展。

  53. Vijay 2020年1月24日 下午8:43 #

    我很高兴找到你的网站,在思考了很久如何开始之后,这给了我进入机器学习的动力。

  54. jan 2020年2月9日 上午3:36 #

    你有应用心理学博士学位。哈哈 :) 你知道怎么读懂人心,你第一眼就能给人们画像。你心态平衡,是一个非常冷静的人。通过你的写作方式我也能读懂你。可能在任何时候你大脑的50%以上都在被利用。你正在成为一个变种人的路上。AI机器本身应该研究你。

    说真的,你知道人们的思维是如何运作的。

    另一方面,我认为人工智能还有很长的路要走。但你做的这些贡献帮助这个世界进一步发展。

    我对机器学习的看法
    机器学习也无法像人类那样通过感官来学习。我们不仅通过视觉感知学习,还通过触觉、感觉、听觉、嗅觉、味觉,更不用说人类的知觉和想象力等等。你通过模仿教一个蹒跚学步的孩子从童年到成年的方式来教一个“婴儿”AI,然后AI可以超越它所谓的“训练”,达到我称之为“经验”的境界——就像人类一样,我们通过生活中的经历来学习。我的想法是,如果我们像教一个蹒跚学步的孩子一样教一个AI,当这个孩子长大后,他将拥有与成年人同等水平的知识——只是会好得多得多。

  55. Ahmet 2020年4月8日 下午8:58 #

    谢谢你,Jason,

    在机器学习课程期间,我感觉很糟糕,仅仅因为我没有理解整个理论。现在,我意识到没有必要理解数学和统计背后的所有逻辑,仍然有时间可以回过头来思考它们以更好地理解。

  56. Robby 2020年4月9日 下午11:49 #

    我之前不确定自己是否已经开始学习机器学习了。然而,读了这篇博客后,我知道我正在学习。我最近登上了Kaggle,学习了机器学习入门和Python入门。我现在正在解决泰坦尼克号问题。我并不需要上四年大学才到这一步。

  57. indox 2020年4月23日 下午8:27 #

    我有很多表兄弟从印度移居到中东。他们没有上过任何正规课程就学会了阿拉伯语,只是通过和人练习。

  58. Nima 2020年5月5日 下午7:10 #

    非常感谢,这真的很有帮助。不过,我有个问题。既然我对Python和机器学习有了非常基础的了解,我怎样才能参与到小项目中呢?我可以在哪里找到它们并以团队成员或个人项目的形式加入?我没有这个领域的工作!我只是坐在家里学习。
    此致

  59. Keith Bielamowicz 2020年5月18日 下午10:35 #

    老兄。谢谢你 🙏🙏🙏🙏 我正在将九年的急诊护理职业生涯与对Python(实际上是所有编码和编程的东西)的初步理解结合起来,意图开创一份新的事业。我的旅程和好奇心把我引向了机器学习。我不确定这意味着什么,但你温和地解释MCMC的方式给了我信心,让我和你一起探索更多的机器学习。我们开始吧!!!

  60. Jagadish 2020年7月23日 下午4:17 #

    嗨,Jason,感谢这篇精彩的文章。我开始用自上而下的方式学习,并且相当成功。我需要你的一点小建议,我即将开始我的博士研究工作,我想在深度学习的图像物体检测/分类领域工作。你能帮我看看这个领域最近的研究问题有哪些吗?或者其他有研究空间的领域也行。

    提前感谢你

  61. husein 2020年10月26日 上午1:05 #

    那太棒了,Jason。我四年前开始用自上而下的方法编程,那真是太棒了。

  62. husein 2020年10月26日 上午1:08 #

    我四年前开始用自上而下的方法编程,那真是太棒了。
    最近我差点犯了个错误,准备像个专家一样为了机器学习去学数学,我不知道这些方法,谢谢你的见解,老兄,那太棒了:)

  63. MICHELE CAFAGNA 2020年11月11日 上午10:06 #

    谢谢你,Jason,对我来说,你讲得清楚明白,非常有帮助,尤其是在心理层面上。
    我永远不会忘记你以一种简单而有力的方式提出的建议。
    我的赞美和感谢。你太棒了。

  64. tiedurden 2020年12月29日 上午3:22 #

    我需要的精神鼓舞。
    我对我的学士论文有一个想法,但总是让自己相信我必须从底层攻克它,尽管我已经通过项目学习编程取得了很大的进展。
    非常感谢!

  65. Nick 2020年12月29日 下午8:18 #

    这太棒了,非常感谢你,Jason!这正是我在大学里感到迷茫的原因,我认为你的自上而下的方法确实有助于激励人们。

  66. Jean-Christophe Chouinard 2021年2月22日 上午11:49 #

    我决定采用自上而下的方法,并尝试你课程中的所有项目。从项目开始要有趣得多。我认为有助于学习的另一件事是保持固定的学习节奏。我就是这样学习SEO的,也将这样学习机器学习。一次一篇文章。谢谢你,Jason。

  67. Pete Kai C 2021年6月7日 上午5:52 #

    很棒的文章。我通常是一个自上而下的学习者,但编程世界多年来似乎相当令人生畏(说实话,即使是术语也像学习第二语言,看一眼Python文档就让我做噩梦),所以我选择了从下往上学习。这不是我的风格,而且网上没有多少好的导师,即使是大型大学也是如此,所以找到一种学习方式很困难。然后我经历了你列出的所有事情;对数学的羡慕、不安全感,你能想到的都有。最大的问题是感觉我*必须*像其他人一样学习。我不太循规蹈矩,几乎所有事情都和大多数人做得不一样,而像大多数人那样学习证明几乎是不可能的。

    我开始看机器学习,发现我很快就“懂了”,但决定我想要一个坚实的基础,于是参加了密歇根大学的P4E课程,做了几乎所有在线的Python挑战,一些HackerRank挑战,一些LeetCode挑战,经历了大约500次绝望的循环,想知道我还应该做什么,我应该学习哪些编程语言等等,学习数学,上人工智能课程,然后我去了Kaggle,意识到其实没什么好担心的!我仍然不太喜欢编码,但我热爱机器学习,感觉这是一个好地方,一切似乎都逻辑清晰,它不是面向对象编程(编写交易算法非常无聊),而且库也很有趣。我很高兴我打下了基础,但我为在HackerRank和LeetCode上浪费了数周/数月的时间,并为下一步该做什么而感到压力而自责,而我本应直接去学机器学习,并用这种方式学习我需要的东西。无论如何,学了那些东西也无妨。还有,顺便说一句,你的网站很棒!我在网上看了大量的课程材料,我认为你有我见过的最好的教学风格和材料。很高兴找到了你的网站。

  68. Vinod 2021年7月3日 上午1:16 #

    我还没开始,但很多次都停下来,心想我到底该怎么赶上这么多的文献。然后我突然想到——自上而下是唯一的出路,然后我看到了你的文章。感谢你写下这些,增加了我学习的意愿。

  69. Barsha Banik 2021年8月13日 下午5:09 #

    作为一个有抱负的数据科学家,偶然发现你的网站真是太好了……我真的是它的粉丝……它鼓励我学习。

    感谢你的巨大努力和这篇文章

    • Adrian Tam
      Adrian Tam 2021年8月14日 上午2:51 #

      谢谢你。希望你喜欢。

  70. hossein 2021年11月27日 上午1:55 #

    你是一位伟大的老师,
    我喜欢你的风格
    祝你成功。
    hossein

  71. Kiran N S 2022年3月26日 上午1:36 #

    我喜欢你阐述自下而上和自上而下方法差异的方式。虽然我已经通过自上而下的方法学到了很多新东西,但这种叙述方式清楚地说明了如何能快速学习。感谢你整理这些内容。

    • James Carmichael 2022年3月28日 上午8:00 #

      很好的反馈,Kiran!

  72. Medini Kr. Bora 2022年4月9日 下午8:26 #

    很棒的帖子!!感谢您先生分享您的知识。

    阅读您的博客后,我的知识得到了丰富。

    • James Carmichael 2022年4月10日 上午7:38 #

      很好的反馈,Medini!

  73. Jonpaul 2022年6月10日 上午10:30 #

    我硕士之前从未尝试过编程,而且我必须做一项关于人工智能的研究,我真希望我能早点发现这个,痛苦的是我明白需要做什么,但从来没有信心自己去尝试,我也害怕出错,当错误发生时我不知道从哪里开始

  74. Ali 2022年10月8日 上午11:46 #

    哇,这真是最酷、最有帮助的帖子,至少对我来说是这样。非常感谢,Jason!真的很感激。大学第一学期我有一门C语言编程课,但我挂科了)我以为我笨,再也不碰编程了。但在我大四那年,一门课涵盖了Python入门。这很有趣,然后我在Coursera上修了两门Python课程,并因此找到了我的第一份工作。在那份工作中,我不得不重新回顾C语言,我惊讶地发现它竟然如此简单易懂)我没有意识到那就是自上而下的方法!我也挂过一些起初看起来很有趣,但学起来却变得很无聊和困难的课程。其中之一是《信号与系统》。当它开始讲到卷积、傅里叶级数等主题时,我感到困惑。现在,即使晚了点,我也知道如何学习这类科目了!

  75. Ramesh 2022年12月17日 下午9:59 #

    一个医生能说什么呢?完全同意!自上而下的方法才是正道。我学医是自下而上的。刚出医学院,看到病人时仍然无法做出临床诊断。最终让我成功的又是什么呢?是自上而下的方法;看病人,他的问题是什么?他需要什么?回去看书,挑选你想研究的内容——做出诊断,再回去看书,治疗方法是什么?这就是我最终学会医学的方式。知道了这一点,当我今年开始学习python/ML时,就知道我需要采用自上而下的方法。当我读到这篇文章时,我们俩的想法是多么惊人地相似!

    • James Carmichael 2022年12月18日 上午10:19 #

      很棒的反馈,Ramesh!我们非常感谢!

  76. Mach 2024年1月1日 上午9:57 #

    行业中绝大多数初级工作不涉及重大风险,因为你是初级员工。有些工作,比如生物统计学,需要非常扎实和良好的数学和统计学基础,但这些工作绝对不是初级职位。或者,另一方面,有些职位如大数据工程师,一个错误就可能导致公司损失数万美元,但这些职位通常需要5-6年的软件工程经验。总而言之,文章作者是绝对正确的,因为他们反正不会在很多年内信任你一个初级员工去处理风险很高的项目(而且这本应如此)。

    • James Carmichael 2024年1月2日 上午10:47 #

      感谢Mach的反馈以及对我们讨论的贡献!

  77. Mach 2024年1月1日 上午9:59 #

    机器学习提供了自上而下学习的机会,这一点也很棒。当你想在微处理器等领域工作时,你就没有这样的机会。

  78. Hansel vitalicio 2024年7月29日 下午10:20 #

    非常感谢你,Jason博士,感谢你提供了宝贵的见解,阐述并展示了各种激励人们踏上机器学习之旅的方法。我迫不及待地想开始了!

    • James Carmichael 2024年7月31日 上午8:22 #

      不客气,Hansel!我们感谢你的反馈和支持!

发表评论

Machine Learning Mastery 是 Guiding Tech Media 的一部分,Guiding Tech Media 是一家领先的数字媒体出版商,专注于帮助人们了解技术。访问我们的公司网站以了解更多关于我们的使命和团队的信息。