有关机器学习每个人都应该了解的东西

原文:What Everyone Should Know About Machine Learning 
作者:Gero Presser 
翻译:雁惊寒

摘要:本文科普了机器学习方面的知识,简单介绍了机器学习可以做什么,以及如何做的。以下是译文。

在过去的几个月中,我与很多的决策者交流了有关人工智能特别是机器学习方面的问题。其中有几名高管已经被投资者询问了有关他们在机器学习(Machine Learning)方面的战略,以及在哪些方面运用了机器学习。那么这个技术课题为什么突然会成为公司董事会讨论的话题呢?

计算机应该为人类解决问题。传统的方法是“编写”所需的程序,换句话说,就是我们教电脑问题解决的算法。该算法详细描述了解决问题的过程,就像食谱一样。很多任务都可以用算法来描述。例如,在小学里,我们学习了数字加法算法。当涉及到要快速、完美地运行这种算法时,计算机比人类更胜任这个工作。

然而,这个问题解决的过程是有局限性的。我们如何识别一张猫的照片呢?这个看起来很简单的任务却难以用一种算法来描述。让我们稍等片刻,仔细想想。即使是简单的说明(如“有四条腿”或“有两只眼睛”)也有其缺点,因为这些特点可能会被隐藏,或照片可能只显示了猫的一部分。如果我们遇到识别腿或眼睛的任务时,那与识别猫一样的困难。

这正是机器学习展现其实力的地方。计算机不需要开发算法来解决问题,而是使用示例来学习算法本身。我们用样本来训练计算机。对于识别猫这个例子,我们需要使用大量的标注了猫的照片来训练系统(监督学习)。通过这种方式,算法会发生进化,继而成熟,并最终能够识别出陌生图片上的猫。

事实上,在这种情况下,计算机通常不会学习经典程序,甚至都不会学习模型中的参数,例如网络中的边缘权重。这个原理可以与我们大脑(包含了神经元)的学习过程相比较。像大脑一样,与传统程序不同,这种具有边缘权重的网络几乎不可能被人类所理解。

在这种情况下,被称为深度学习的人工神经网络学习方法得到了巨大的成功。深度学习是一种特殊的机器学习,反过来又是人工智能的一门学科,是计算机科学研究的主要分支。早在2012年,谷歌研究小组成功地训练了一个拥有16000台计算机,并从1000万段YouTube视频中识别猫(和其他对象类别)的网络。他们采用的就是深度学习技术。

许多与练习有关的问题更倾向于属于“识别猫”这个类别,而不是“数字加法”,因此,很难用人类编写的算法来解决这些问题。这些问题通常是在某些数据中识别模式,例如识别图像中的对象、语言中的文本或交易数据中的欺诈行为。

这里有一个简单的例子,我们来看一下预测性维护。想象一下许多传感器正在发送数据流,有时,某些机器会发生故障。现在的难题就是学习导致故障的数据流的模式。一旦学会了这种模式,就可以在正常操作期间识别出这种模式,从而预防潜在的故障。

虽然机器学习的原理并不新鲜,但目前深受大众的追捧。这主要有三个原因:首先,用于应用和训练的大量数据的可用性(“大数据”);其次,我们现在拥有巨大的计算能力,特别是在云端;第三,一系列的开源项目使得每个人或多或少会使用一些算法。

机器学习不能代替传统编程,而是对传统编程的补充。它提供了一些工具,使得我们能够解决迄今为止难以甚至不可能解决的很多类问题。总而言之,这些给我们带来了新的机会,而现有的系统也越来越多地被改造并加入了机器学习功能。

遵循某种模式的重复操作就是一个典型的例子。假设有一个计算机程序,你可以通过点击一系列复杂的菜单来使用它的一百个功能,但你每天只主动地使用其中的某些功能。通过观察你平时点击的步骤,计算机可以学习预测你的下一步动作,从而提高你操作的效率。计算机通过“学习”这些重复的数据和对象,可以使得许多步骤自动化执行,从而加快了速度。

在每个领域都可以找到更多的例子:针对个别学生(特别是“大型开放式在线课程”,即MOOC)定制学习教材、疾病的早期诊断、在线营销目标群体、客户流失、自动识别数据质量问题,或通过约会服务匹配用户个人信息。

由于Spark拥有很多先进的工具,它(集成在Hadoop中)已经在机器学习领域成为领先的大数据框架。 Talend也正向着这个目标发展,并且通过建模能够抽象出一个更高的层次。建模可以降低复杂度,同时还会弱化与发展迅速并且门槛较高的基础技术之间的依赖关系。

只有少数专家需要真正了解机器学习方面的算法细节。但是,如果每个人都能理解机器学习相关概念的话也是有好处的,比如知道机器学习是从示例中学习模式,并且能够应用到新的数据集上。最终,机器学习扩大了机器可以解决问题的类别,从而实现自动化:具体来说就是通过决策来实现。这正是计算机学到的东西;它根据从训练数据积累到的知识,对新的数据做出决策。一方面,我们可以通过自动化的决策,将机器学习应用在我们的业务或圈子中。另一方面,我们自己本身就是一个数据源,其他的机器可以对我们进行分析并优化他们自己的业务。

总而言之,我想给大家留下这样一幅画面:计算机现在不仅能够遵循明确的指令(例如数字相加),还可以通过例子进行学习(例如通过训练样例来识别猫的图片)。根据要解决的问题的不同,某个方法可能比另外一个更合适。然而,当这两个方法以某种方式结合起来使用的话,最终能为自动化带来更多的机会。

文章转载链接: http://blog.csdn.net/dev_csdn/article/details/78275407