机器学习初学者最常见的5个错误:你该怎么避开它们?
2016-10-08 11:26 机器学习

你将看到我总结的初学者上手机器学习时最常出现的 5 种错误

本文授权转自云启资本YUNQI公众号(ID:yunqipartners)。

选自:MLMastery

作者:Jason Brownlee

编译:机器之心吴攀、李亚洲

在这篇文章中,你将看到我总结的初学者上手机器学习时最常出现的 5 种错误。我坚定地认为任何人都可以入门机器学习并且很好地应用它们。希望这篇文章能够帮助你避开或解决你学习和实践中的一些错误。

一、不要从理论开始入手

传统的机器学习教学是自下而上的:

努力掌握数学背景知识

努力学习机器学习理论

努力从头开始实现算法

未知???(一些神奇事情发生)

最后开始使用机器学习(这是你的目标)

这种方法非常慢,而且很困难。这是为想要拓展该领域前沿的学者设计的,并不适合只是想要得到结果的实践者。

陷阱

如果你在想以下问题,你就掉入了这个陷阱:

我需要先完成线性代数的课程;

我需要回去先拿个博士学位;

我必须先读完教科书。

避开陷阱

4 年的数学或深奥的算法理论学习能够怎样帮助你实现目标?

你多半会停下来。会失败。不会离你的目标更进一步。

解决的方法是鼓捣模型。

如果机器学习对市场的有价值的贡献是准确的预测,那么你就学习对问题进行建模并得出准确的预测吧。就从现在开始!

然后努力掌握它,做到非常擅长。

如果你需要,就阅读、窃取、收割别人的理论,但你只需要你的目标所需要的——只要它能帮助你实现更好的价值。

二、不要学习所有的机器学习

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

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

从深奥的学习理论到机器人技术——这个领域的范围非常广。你不可能将它们整个拿下。

陷阱

如果你在想下面这些,你就落套了:

我需要学习一个新网站上提到的每一种新技术;

我首先需要学习计算机视觉、自然语言处理、语音等等;

我需要了解每项技术的每个方面。

避开陷阱

选择一个小方向并且保持专注。

然后进一步收窄。

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

就从这里开始。

接下来,专注于一种与你最相关或你最感兴趣的预测建模。

然后保持专注。

也许你是根据技术选择的(比如深度学习),也许你是根据问题类型选择的(比如推荐系统);也许你不确定,只是随便选了一个。不管怎样,努力掌握它或至少做到精通。

接下来才开始进入下一个领域。

三、不要在算法上花费太多时间

机器学习实际上就是算法。

算法实在太多了。每一个算法都是一个复杂的系统而且拥有自己的小研究领域和生态系统。

你可以将自己迷失在算法之中,这么做的人被称为学者。

陷阱

如果你在说这些,你就已经在陷阱里了:

在我使用它之前我需要知道它的工作原理;

我首先需要深入理解超参数;

在进行微调时,我需要解释其因果关系。

避开陷阱

算法并非结果。它们只是实现结果的方法。

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

切换它们。在你的问题上实验各种各样的算法。你可以对其中一些进行调节,但不要把自己困在这一步。

使用一个系统过程(systematic process)。设计调试实验并将它们的执行和分析自动化。

机器学习的关键是好好利用算法,而应用算法不只是鼓捣算法本身。

你的目标应该是为每一个项目得出一个结果——一组预测或一个能给出预测的模型。

四、不要从头开始实现所有东西

从头开始实现算法能够教会你很多东西。

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

但是,通常来说,你不一定要也不应该这么做。

很抱歉地说:你的实现结果可能很糟糕。

有各种漏洞

速度很慢

非常吃内存

无法很好地解决边缘情况

甚至可能是错的

陷阱

如果你在做下面这些事,你已经掉入陷阱了:

你在编写载入 CSV 文件的代码(搞什么鬼!?);

你在编写线性回归这种标准算法的代码;

你在编写用于交叉验证或超参数调整的代码。

避开陷阱

别这么做就好了!

使用一个已被成千上万的开发者所使用过的能够处理所有边缘情况的库,众所周知它是正确的;

使用一个经过了高度优化的库,它能充分利用你的硬件的每一个计算周期和你的内存的每一个字节;

为你的项目使用一个图形用户界面,从而完全避开代码。

每次都自己实现你想要使用的算法是非常缓慢的入门机器学习的方式。

如果你是为了学习而实现它们,那么就要对自己诚实:你的实现还不够好,你不能通过这样应用机器学习来带来价值。

五、不要总改变使用的工具

目前有很多的很棒的机器学习工具。事实上,很棒的工具加上数据的可用性和更快的硬件使得机器学习的复兴成为了可能。但你可能陷入这样一个坑中:跳入每个你偶然发现的新工具中。

陷阱

如果发现自己符合以下三点那你就陷入了该陷阱中:

使用每个你听到过的新工具

发现自己每周或每个月都学习一项新工具或语言

学习一个库时半途而废并转向新的库

避开陷阱

有策略的学习和使用新工具,在解决机器学习问题的系统处理过程中融合你学到的新工具。如果你选择一个主要的大型平台并坚持使用它,那在解决机器学习问题时会更加高效,至少也要足够精通该平台。

这里我推荐 3 个顶尖的平台:

Weka Workbench

Python Ecosystem

R Platform

该领域也有其他的更专门化的工具,根据个人兴趣和专业的不同可跟进。

总结

在该博文中,你可以看到初学者进入机器学习常见的 5 个错误。总结如下:

不要从理论开始入手

不要学习所有的机器学习

不要在算法上花费太多时间

不要从头开始实现所有东西

不要总改变使用的工具