译-机器学习入门的正确方式

来源:互联网 发布:不败传说冰川网络 编辑:程序博客网 时间:2024/06/04 23:20

译者:边星驰的博客
  初学者最常犯的5类错误以及怎样去避免。本文翻译自Jason Brownlee的How Beginners Get It Wrong In Machine Learning。

正文始:

我帮助机器学习初学者开始他们的入门学习。但是我看到在学习的心态和实践上,同样的错误,大家犯了一遍又一遍。在这篇文章中,你将会了解到我所看到的初学者入门时常犯的5类错误。我坚信,每个人都可以进入并且在机器学习的领域做出一番事来。 如果你现在停滞不前,转折就在这里,看看你犯了下面提到的哪些错误,纠正它,跳出坑来,进入对的学习状态。我们开始吧!

1. 不要一上来就研究理论

传统的机器学习教学方式是自底向上的。

埋头苦学数学的背景知识埋头苦学机器学习的相关理论埋头苦学怎样从无到有实现算法为的是最后开始使用机器学习(你的目标!)

这个方式很慢,而且艰难。这更多的是为想在这个领域垦出新东西的,做学术研究的人设计的。这不是从业者的学习路线,我们要的是产出,是结果。

坑一

如果你身在此坑,你会这样想或这样说:

  • 我要先完成这个线性代数的课程
  • 我要先拿个博士学位再说
  • 我要先把这本教材看完

出坑方式

苦学四年数学或者高深的算法理论就能达成你想达成的?—— 你可能会放弃,会失败。根本不能达成你的目标。解决方法就是翻转这个模式的学习。

如果机器学习在商业上发挥最大价值的是做出准确的预测,那么就从怎样建立问题模型并做出准确预测入手。然后,在这方面做到足够好。读、窃、套用理论,只在你需要的时候,只在它能够使你更好地创造价值的时候。

2. 不要学遍机器学习领域的所有知识

机器学习是个巨大的学习领域。它是用计算机实现学习过程的自动化并且与人工智能(AI)有着很多重叠的部分。从高深的理论到机器人学,机器学习的领域是巨大的。想学遍这么多的知识有些不现实。

坑二

如果你有下面的想法,你就已经困在坑内了:

  • 我要把某个网站提到的所有新技术都学一下
  • 我要先把机器视觉,自然语言处理,语音识别等学一下
  • 我要把所有知识的细节搞清楚

出坑方式

选择一个小方面并且专注于它。然后继续缩小学习范围。

机器学习最有价值的领域就是预测模型。通过建立数据模型然后做出预测。就从这个开始。接着,专注于几种与你最相关或最能引起你兴趣的预测模型。然后坚持下去。

也许你是根据技术手段选择,比如深度学习;又或者你是根据问题的类型选择,比如推荐系统。或许你还在犹豫,随便选一个吧。然后去做好或者说变得精通。

最后,开始另外一个领域的学习循环。

3. 不要纠缠于算法

机器学习的核心就是算法。但是这里算法众多,而且每一个算法都是一个复杂的系统,有着自己的小的研究领域,自己的生态。你可能会迷失在一个算法中,有些人同你一样。这些人叫学者。

坑三

如果你发现你在说这些话,你已身在坑中:

  • 在我使用它之前,我得弄懂这个的实现原理
  • 我得首先深刻理解超参数
  • 我得解释调试的原因和影响

出坑方式

算法不是最终的结果,而只是达成结果的手段。

事实上,机器学习的算法是个“日用品”。更换它们,在你的问题中尝试大量的算法实现。调试其中的一些,但是保持前进。你可以去深究怎样用算法得到更好的结果,但是要知道在适当的时候停下来。使用系统化过程。设计一个调试的实验并且使其执行和分析自动化。机器学习就是关于如何使用更好的算法,但是应用机器学习不能仅仅是和算法纠缠不清。

要把注意力集中在从每个项目中得出结果,这也是一组预测或者一个模型的价值。

4. 不要所有的算法都从零开始编写

你可以从从零开始实现算法中学到很多。有些时候,你甚至要实现一个技术,因为没有合适的或现成的实现手段。但是,一般情况下,你不必这样做而且也不应该这样做。

你的实现或许不堪入目,出现下面的情况:

  • 会有 bugs
  • 会很慢
  • 会吃掉内存
  • 没有应对边界情况的设计
  • 甚至干脆就是错的

坑四

你已在坑内,如果:

  • 你正在写导入 CSV 文件的代码
  • 你正在写一个实现标准算法的代码,像是线性回归这种
  • 你正在写交叉检验或者超参数调试的代码

出坑方式

停!

  • 使用一个通用的库,有成千上万的开发者使用,可以应对所有的边界情况并且你知道它是正确的
  • 使用一个高度优化的库,可以充分利用内存的每一个周期和每一个字节
  • 为你自己的项目使用一个用户界面并且避免所有的代码一起写

刚开始学习机器学习,要是每次想要用什么就自己动手从头去实现会是一个非常缓慢的学习过程。如果你正在自己实现算法,要对自己有个衡量,并且把这个过程和学习如何利用机器学习产生价值分开。

5. 不要老是换开发工具

现在有很多很棒的机器学习开发工具。事实上,好的开发工具,以及可供使用的数据和更快的硬件正是现在机器学习发展兴盛的原因。但是你可能会犯这样的错:对每个你偶然发现的新工具都试试。
坑五

如果你发现你这样了,你就在坑里了:

  • 每个你听说过的新工具你都用
  • 每周或每月你都在学习新的工具或新的语言
  • 在学习一个库时半途而废然后去学另外一个新的

出坑方式

学习并使用新工具。但是要有战略考虑。把新工具整合到你的机器学习系统化过程工作流中。如果你选择了一个大的主要平台并且坚持使用,在解决问题的时候你会变得很有效率,当然你至少得熟悉或者精通这个平台。

我推荐的平台:

  • Weka (Java)
  • Python
  • R 语言

当然在你所研究的领域也有许多其他的和更专业的工具。业余爱好者和专业人员的区别是什么?—— 坚持不懈

总结

在此文中,你了解到了我所看到的机器学习初学者常犯的5类错误。

再来看一下:

  • 不要一上来就研究理论
  • 不要学遍机器学习领域所有的知识
  • 不要纠缠于算法
  • 不要所有的算法都从零开始编写
  • 不要老是换开发工具

这里写图片描述