机器学习新手常犯的错误

新手最常犯的 5 个错误
以及如何避免它们.

我帮助新手 入门机器学习

但我一次又一次地在心态行动上看到相同的错误。

在这篇文章中,您将发现我看到新手在开始机器学习时最常犯的 5 个错误。

我坚信
任何人都可以入门并在应用机器学习方面做得非常出色
有了应用机器学习。

希望您能认出自己在以下一个或多个陷阱中,并采取纠正措施以重回正轨。

让我们开始吧。

How NOT To Get Started With Machine Learning

如何不开始机器学习
摄影:Bart Everson,部分权利保留。

1)不要从理论开始

教授机器学习的传统方法是从下往上。

  1. 努力学习数学背景。
  2. 努力学习机器学习的理论
  3. 努力从头开始实现算法
  4. ???在此插入魔术
  5. 最后开始使用机器学习您的目标!)。

这种方法很慢。很难。它适用于希望扩展最先进技术的学者。

它不适用于希望获得结果的从业者。

陷阱

如果您想到或说出以下内容,您就知道自己陷入了这个陷阱

  • 我需要先完成线性代数课程。
  • 我需要回去攻读博士学位。
  • 我必须先读完这本教科书。

出路

学习 4 年的数学或晦涩的算法理论如何让您达到想要的位置?

您更有可能停止。失败。离您的目标越来越远。

解决方案是颠覆模型。

如果机器学习对市场的宝贵贡献是一系列准确的预测,那么就学习如何建模问题并做出准确的预测。从这里开始。

然后把它做到极致。

阅读、窃取、利用理论(如果您需要),但仅服务于您的目标。只有当它能让您在交付价值方面做得更好时。

2)不要学习所有机器学习

机器学习是一个非常庞大的研究领域。

它是计算机自动化学习过程,与人工智能有很深的重叠。

从晦涩的学习理论到机器人技术。这个领域非常广阔。

这个领域太大了,您无法全部掌握。

陷阱

如果您想到以下内容,您就知道自己已经屈服于这个陷阱

  • 我需要了解新网站上提到的每一种新技术。
  • 我需要先了解计算机视觉、自然语言处理、语音等。
  • 我需要了解一切。

出路

选择一个小角落并专注于它。

然后再次缩小范围。

机器学习中最有价值的领域是预测建模。利用数据创建模型来做出预测。

从那里开始。

接下来,专注于与您最相关或最感兴趣的预测建模类型。

然后坚持下去。

也许您会根据技术进行选择,例如深度学习。或者您会根据问题类型进行选择,例如推荐系统。

也许您不确定,那就随便选一个。做得好,或者至少精通。

然后,稍后,再回顾另一个领域。

3)不要摆弄算法

机器学习实际上就是关于算法

算法有很多。每种算法都是一个复杂的系统,本身就是一门小学科。它本身就是一个生态系统。

您可能会迷失在一门算法中。人们确实会这样。

他们被称为学者。

陷阱

如果您发现自己这么说,您就陷入了这个陷阱

  • 在我使用它之前,我需要知道它为什么有效。
  • 我需要先深入了解超参数。
  • 调优时我需要解释原因和结果。

出路

算法不是结果。它们是实现结果的手段。

事实上,机器学习算法是一种商品。

更换它们。在您的问题上尝试大量算法。稍微调优一下,但要继续前进。

您可以学习更多关于算法的知识以获得更好的结果,但要知道何时停止。

使用系统化流程。设计调优实验并自动化其执行和分析。

机器学习就是善用算法,但应用机器学习不仅仅是摆弄算法。

专注于从每个项目中交付结果的目标,即一系列预测或可以进行预测的模型。

Wring Way Go Back

掉头回去
摄影:Dallas,部分权利保留。

4)不要从头开始实现一切

您可以从从头开始实现算法中学习到很多。

有时您甚至需要实现一项技术,因为没有合适或可用的实现。

但是,一般来说,您不必也不应该这样做。

您的实现可能会很糟糕。抱歉。

  • 它会有错误
  • 它会很
  • 它会占用大量内存
  • 它将无法很好地处理边缘情况
  • 它甚至可能是错误的

陷阱

您陷入了这个陷阱,如果

  • 您正在编写代码来加载 CSV 文件(搞什么鬼!
  • 您正在为线性回归等标准算法编写代码。
  • 您正在为交叉验证或超参数调优编写代码。

出路

停下来。

  • 使用一个有成千上万其他开发人员使用的通用库,它可以处理所有边缘情况,并且众所周知是正确的。
  • 使用一个高度优化的库,它可以从您的硬件中榨取每一丝计算周期和每一字节内存。
  • 为您的项目使用图形用户界面,完全避免代码。

每次想使用机器学习时都实现一切,这是开始机器学习的一种非常缓慢的方式。

如果您是为了学习而实现,那么请诚实地对待自己,并将它与学习如何通过应用机器学习来交付价值区分开来。

5)不要一直更换工具

有很多很棒的机器学习工具。

事实上,优秀的工具、数据的可用性和快速的硬件是我们正在经历机器学习复兴的原因。

但是,您可能会陷入跳到您遇到的每一个新工具的陷阱。

陷阱

如果您发现自己这样做,您就陷入了这个陷阱

  • 使用您听说过的每一种新工具。
  • 发现自己每周或每月都在学习新工具或语言。
  • 开始学习一个库,但最终放弃它,转而使用新的库。

出路

学习和使用新工具。

但要有策略。

将新工具集成到您处理机器学习问题的系统化流程中。

如果您选择一个主要的平台并坚持下去,您在解决问题方面将更加高效,至少在您精通它之前。

我推荐的前 3 个平台是

还有其他一些,如果那是您的领域,还有更多专业工具。

善始善终是区分爱好者和专业人士的关键。

总结

在这篇文章中,您将发现我在机器学习领域新手中最常犯的 5 个错误。

再说一遍,它们是

  1. 不要从理论开始。
  2. 不要学习所有机器学习。
  3. 不要摆弄算法。
  4. 不要从头开始实现一切。
  5. 不要一直更换工具。

您是否陷入了任何这些陷阱?
您需要帮助摆脱困境吗?

请留言,我在这里为您提供帮助。

53 条回复关于“机器学习新手如何出错”

  1. Leo 2016年10月3日 下午1:11 #

    Jason,好文章。您认为“统计学习要素”是一本适合对应用机器学习方法解决不同问题感兴趣的人的好书吗?

    (我在 Quora 上看到了一个类似的问题)。

    • Jason Brownlee 2016年10月3日 下午3:56 #

      Leo,你好,

      我认为“统计学习要素”是一本绝佳的书。它非常适合学习技术背后的理论。

      我认为它不是一本适合初学者的好书,也不认为它是一本适合应用机器学习的好书。

      我教授一种自顶向下、结果优先的机器学习方法(而不是从理论开始),您可以在这里了解更多信息。
      https://machinelearning.org.cn/start-here/#getstarted

  2. mosab 2016年10月3日 下午3:08 #

    谢谢,这是完美的建议,老实说,我发现机器学习可以根据模拟和实验结果帮助预测结果,我以前也是这样做的,所以我一直在搜索从哪里开始学习。这篇文章会很有帮助,任何建议我都非常感激。
    谢谢

  3. Lindani 2016年10月3日 下午8:57 #

    非常感谢 Jason。我一直以来都做错了!

  4. Antole 2016年10月4日 上午12:00 #

    我真的很喜欢您总是能提供清晰的解释,没有这些解释,新手可能会很快感到非常沮丧。

    • Jason Brownlee 2016年10月4日 上午7:23 #

      Antole,谢谢,很高兴您喜欢这篇文章。

  5. abhishek 2016年10月4日 上午2:28 #

    感谢 Jason 的文章,非常感谢。我正面临完全相同的问题。我完成了华盛顿大学在 Coursera 上提供的 3 门机器学习课程。即线性回归、分类、聚类和检索,涵盖了一些项目和算法。但是现在我卡住了,我该如何继续?因为我觉得我需要处理一些项目(可以由该领域的专家验证)。您能指导我一下吗?

  6. Tom Albert 2016年10月4日 下午12:07 #

    感谢您的文章,它非常有用,我刚开始研究机器学习时就遇到了这些问题,但现在好多了。我希望我能早点读到这篇文章🙂

  7. Peter 2016年10月6日 上午11:36 #

    关于“为您的项目使用图形用户界面,并完全避免代码。”
    - 您是否会发布关于 Rapid Miner 的内容?该程序有一个免费版本,如果您想避免编码,它似乎很理想。

    • Luisotsm 2016年10月7日 上午3:34 #

      @Peter,Rapid Miner 是通过 GUI 使用机器学习的绝佳方式。

    • Jason Brownlee 2016年10月7日 上午4:49 #

      Peter,我将来可能会介绍 RapidMiner。

      目前,我专注于教授 Weka,因为它非常易于使用,并且能为初学者带来快速的良好结果。

  8. yw 2016年10月6日 下午2:58 #

    这篇文章对我很有价值!我发现自己陷入了上述所有陷阱!非常感谢!

  9. Shravan Kumar Parunandula 2016年10月6日 下午5:18 #

    Jason,非常有信息量的帖子。期待下一条提示。谢谢

  10. Mansoor 2016年10月6日 下午5:20 #

    Jason,绝佳的文章。我想我有时都陷入了这五种陷阱,但最新的陷阱是平台更改。
    我一直在使用 MATLAB 进行神经网络和 SVM,目标是将我的 MATLAB 代码作为 Java 代码部署以用于 Web 应用程序,MATLAB 提供了这种部署。我在 MATLAB 和神经网络工具箱方面有相当多的经验。但最近我了解到,神经网络训练函数不被编译器支持以进行 MATLAB 之外的代码部署。这是一个很大的挫折。现在我正在寻找其他适合开发神经网络的平台。有什么建议吗?因为有很多选择。应用领域是 NLP 和图像识别。谢谢。

  11. Angelo 2016年10月6日 下午5:21 #

    感谢 Jason 的文章,我犯了所有这五种错误,我开始感到沮丧。这篇文章对我帮助很大。

    • Jason Brownlee 2016年10月7日 上午4:46 #

      Angelo,我很高兴听到您的进步有所改变。

  12. Nader 2016年10月7日 上午1:55 #

    太棒了!!!

  13. omid 2016年10月7日 上午7:17 #

    Jason,感谢这篇好文章。

  14. Srivathsan Madhavan 2016年10月7日 下午4:33 #

    嗨,Jason,

    非常好的文章 – 事实上,您的博客对像我这样的新手来说非常有帮助。

    抱歉,如果我过于拘泥,但我认为“错误”应该是“从理论开始”,而您的解决方案/更好的替代方案应该是“不要从理论开始”。其他 4 个错误也是如此。如果我错了,请告诉我。

    祝好!
    Vatsan

    • Jason Brownlee 2016年10月8日 上午10:33 #

      Srivathsan,谢谢。

      好的——是的,这在英语上会更好,但在博客文章中可能不如其易于阅读/快速浏览。

  15. Shalini 2016年10月8日 上午12:17 #

    嗨,Jason,

    我犯了所有 5 个陷阱。这篇文章对我来说来得正是时候。谢谢您的帖子。

    • Jason Brownlee 2016年10月8日 上午10:40 #

      Shalini,很高兴听到它有用。

      坚持住!

  16. Merid 2016年10月8日 上午1:03 #

    我非常感谢您的宝贵建议和帖子,但我仍然害怕成为 ML 研究员;根据您的总结,在不理解 ML 的理论背景的情况下进行是否可行?

    • Jason Brownlee 2016年10月8日 上午10:43 #

      是的,Merid。理解会随着时间的推移而到来。

      研究是不同的,但如果您的研究中机器学习仅仅是一种工具或手段,那么就把它当作一种工具对待。

      就像您在不知道可计算性理论的情况下将编程语言视为一种工具一样。

  17. Adi 2016年10月10日 下午10:29 #

    Jason,好文章!
    但是,我也一直以来都做得不对。我完成了大约 10 门 ML 课程(Coursera、edX、Udacity……等等)和许多书籍。
    但我现在有了一个真实的数据集(工业日志),它与任何东西都不匹配。似乎没有任何东西能在上面起作用。
    您应该先尝试什么?考虑到您拥有工具、知识和意愿。应该将什么应用于什么数据?在 ETL 过程完成后,最开始的步骤是什么?

    谢谢
    Adi

  18. Matthew 2016年10月13日 上午2:48 #

    很棒的一篇,我喜欢它。谢谢分享。

  19. Charles Green 2017年5月3日 上午2:15 #

    你好 Jason,

    您的材料很棒。请继续!
    我理解并尊重结果优先的方法。这很有道理。

    我也知道不需要博士学位,但我仍然认为它对职业发展有帮助。在学术界之外,您觉得它还有价值吗?

    我最近在一个机器学习职位上开始工作,在那里我可以获得短期实践经验。这与我作为软件开发人员的 15 年经验很好地结合了,但从长远来看,我仍然想知道攻读博士学位是否对长远也有帮助,但不确定时间和精力是否最好花在其他方面。

    我知道每个人的经验和情况都不同,但任何想法都将非常感激。

    非常感谢,
    查尔斯

    • Jason Brownlee 2017年5月3日 上午7:42 #

      通常不提供。

      您更容易获得面试机会,但在一个好公司里,您因能力而被聘用,而不是因为文凭。

      我曾与没有高等学位的优秀从业者共事,也曾与有高等学位但很糟糕的人共事。

  20. Atul 2017年7月14日 上午10:13 #

    我不同意“3)不要摆弄算法”。
    如果你不想摆弄算法,那为什么还要使用机器学习呢(而且你无法做任何有用的事情,如果你不知道算法的话。而且别指望能被聘用,无论你的简历看起来有多好)。

    • Jason Brownlee 2017年7月15日 上午9:35 #

      说得有理。

      我看到开发人员在一个算法上花费 6 个月的时间,而只需几周就可以学习完整的预测建模生命周期并在业务中交付价值。

  21. Justin 2019年3月2日 下午9:51 #

    给初学者的好建议。谢谢。

  22. stellamaris 2019年3月28日 上午4:57 #

    太棒了,

    Jason,感谢您分享的知识。我相信像我这样的新手受益匪浅。我很高兴。

  23. swati 2019年4月3日 下午1:05 #

    我是机器学习的新手……我应该如何开始学习它??

  24. Bilal 2019年4月24日 下午2:35 #

    干得好,“如何开始机器学习”。

  25. Marco 2020年10月31日 下午10:58 #

    你好 Jason,
    很棒的文章,我都犯了所有的错误🙁

    我试图学习所有关于最新的“奇妙”机器学习算法,我参加了课程,阅读了许多书籍等等……我想深入学习所有知识……
    但是,正如您上面所说……我现在卡住了。我信息过载了。

    因此,读完您的文章后,我停下来深吸了一口气,我想重新开始。

    现在,我想深入学习推荐系统。
    您能为我推荐一些关于它的优秀中级/高级资源(书籍、课程)吗?
    尽管我的“热爱”是运用人工智能于金融界,但我认为(如果我没记错的话)将其应用于现实世界要困难得多。

    任何帮助不胜感激。

    非常感谢。

撰写回复

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