从一开始计算机就被设计成帮助人类解决各种问题,传统的软件工程就是针对某个问题进行编程。换句话说,就是我们告诉计算机一个能解决某个问题的算法,并让它来执行。现实世界中很多问题可以被描述成某个算法。 比如,小学算数中,我们用加法来解决计数问题。一旦现实问题被抽象成了算法,计算机能比人类更快速,更高效地执行它们。
不过,人们也渐渐的发现了这种过程的局限性。对于类似图像识别这类问题,在人类看来是如此的轻而易举,然而想把这类问题描述成一种高效的算法却并不容易。由于对象的特征有可能被隐藏起来,我们不能简单的用 ' 有四条腿 ' 或 ' 有两只眼睛 ' 来对判断是否是猫的照片。而且,照片中还可能只显示了猫的一部分,问题就演变为识别猫的某个部位,进而使得问题变得愈加复杂。
虽然机器学习的原理并不新鲜,但它越来越受到人们的追捧。这有三个主要原因:首先,得益于大数据技术,我们有了充分的样本数据可以被用来训练计算机。 其次,我们现在拥有了前所未有的计算能力,特别是在云计算的基础下。 第三,一系列开放源码的项目使得几乎每个人都可以利用这些机器学习的算法为自己的项目进行研发。
其中,遵循模式的重复操作就是一个典型的例子。 想象一下,一个应用系统有着多达一百多个功能,但其实用户每天一般只会使用其中的几个功能。 通过观察用户操作步骤,计算机可以学习并预测用户的下一步操作,从而提高效率。另一个例子就是分配和转换数据(例如,用于填充数据仓库的 ETL 作业), 计算机在这个过程中学习重复的数据和对象,并对其中的步骤进行自动化并提高性能。
在其他领域我们也可以找到这样的场景:针对不同学生(特别是 ' 大型开放式在线课程 ' 或 MOOC 课程)定制个性化的学习材料、对疾病的早期诊断、定位正确的在线营销目标群体、自动识别数据质量问题,或是在线交友网站的自动匹配。
由于其出色的功能,Spark(与 Hadoop 组合)已经成为机器学习主流的大数据框架。 Talend 也正在往这个方向发展,而且它更进一步,使用了更高效的建模作业。在使用建模以后,就能降低复杂性,同时也使得它的底层技术有了自己的独立性。由于这些技术在不停的改进中,因此只有少数这方面的专家才能运用得法。
总而言之,如今计算机已经不仅能够遵循明确的指令(比如,算数计算),还可以通过样本来进行学习(比如,前面提到的图像识别)。在不同的场景下,这两种方法都有着本身的特点和优势。 然而,如果我们能换种思路,把这两种方式结合在一起,那可能在人工智能方面我们又会向着最终目标更进一步。
本文来源:全球人工智能、Dzone、AI Zone;
原网页已经由 ZAKER 转码以便在移动设备上查看查看原文
联系客服