数据的爆炸式增长及其可用性推动了人工智能(AI)的发展。你给人工神经网络提供的信息越多,它学习的速度就越快,能力也就越强。
在启动人工智能项目之前,需要考虑数据在该项目中所起的作用以及如何使用这些数据,例如,你必须决定是只想分析数据以获得洞察力,还是希望利用机器学习技术处理数据并进行预测。要做出这些决策你需要了解一些关键概念,包括大数据、数据科学和数据挖掘。
本文阐明了数据在人工智能项目中所起的作用,并帮助你在如何应用人工智能上做出明智决策,充分利用当前可以使用的大量数据以及将来可以获得的、不断增长的数据。
01 理解大数据的基本概念
大数据一般指可以被计算机分析以揭示模式、趋势和关联关系的巨大数据集。但是如果你阅读最初出现大数据这个词的报告,会发现作者并没有把“大数据”当作一个术语。他们用它来描述一个问题,比如“我们有一个大的数据(BIG data)问题”,而不是“我们有一个大数据(BIG-DATA)问题”。
我们在存储和处理大量生成的数据时会遇到很多困难。在一家公司升级其内部数据仓库后不久,数据量很可能就超过了该数据仓库的容量。数据仓库无法跟上流入它的数据量和种类,或者没有足够的处理能力从这些数据中生成报告。
现在许多公司在一天结束时运行报告生成程序,所以报告将在第二天上午或下午完成。在另外一些公司,许多员工同时查询数据,他们必须等待数小时才能得到结果,如果系统因处理能力不足而崩溃或冻结,他们必须重新开始。其中许多业务(如证券交易所)依靠实时报告来保持竞争力。
问题会越来越多。据估计,在未来十年内,全世界将有超过1500亿个联网传感器,每个传感器每年365天7×24小时地生成数据。想象一下人类一天之内在Facebook、Twitter、Google、在线购物网站、在线游戏网站等网站上生成的所有数据,你就知道数据量有多大!
我们觉得,大数据既是一个问题,也是一个机遇。大数据是一个问题,因为你需要确定是处理大量数据集,还是处理更适中的数据。也许你只需要使用更小的数据集来监控和分析网站的使用情况,或者衡量营销策略的有效性。
然而,如果需要分析大量的数据集(例如,为了找到治愈感冒的方法),你需要规划你的存储和处理技术。但大数据也是一个机遇,如果没有大数据,人工智能就无法利用海量数据来构建精确的模型用于识别模式、进行预测。
02 与数据科学家合作
如果你正在开发一个需要大数据的人工智能应用,最好与数据科学家合作,或者至少咨询一下。数据科学家接受各种学科的培训,包括编程、数据管理和统计,通过了解如何收集、分析和解释数据来达到帮助业务进行决策的目的。
机器学习不是数据科学家的必须工作技能。例如,数据科学家可能会问一些你从未想过要问的问题,以帮助你更清楚地了解试图从数据中提取的知识,这可能是一个问题的答案、一个难题的解决方案,或是对可能引发系统故障的各种因素的洞察。
为了实现这一目标,数据科学家可以使用或推荐工具来收集、分析和解释数据。数据科学家可能会发现你真的不知道自己在这些数据中寻找什么,并帮助你开发一个机器学习系统来识别数据中可能存在的模式,这种模式有可能提供你从未想过的某种洞察力。
简言之,数据科学家可以帮助你评估数据并分析需求、提供解决方案,让你最大限度地利用数据。
03 机器学习与数据挖掘的区别
在处理数据时(不管数据集的大小),可能会遇到大量术语。两个经常被混淆的术语是数据挖掘和机器学习(见图5.1)。
- 数据挖掘是从数据中提取有用信息或见解的任何数据处理方法。(请注意,你并不是在挖掘数据,而是从这些数据中挖掘信息和见解。)
- 机器学习是一门让计算机去做它们没有被设定好怎么去做某项事情(即不是死板地、程式化地去做事情)的科学。
数据挖掘可以使用机器学习从数据中提取有用的信息或见解,但不一定非要使用机器学习技术。
机器学习和数据挖掘的另一个关键区别是它们所使用的技术。使用机器学习,首先要训练一个模型,然后使用一个用Python、R或其他一些计算机语言编写的机器学习框架。
数据挖掘通常使用更广泛的工具集,包括可视化和商业智能工具,其中许多工具的功能单一,只以类似但比电子表格应用程序更复杂的方式提取、排序、汇总和呈现数据。
04 从数据挖掘到机器学习的飞跃
从数据挖掘到机器学习的飞跃并不像一开始看起来那么具有挑战性。如果你已经在处理大数据并从中提取有价值的见解,那么已经具备了管理这些数据的专业技能。你可以找到大量的软件能够创建报告和可视化你的数据。机器学习只是从数据中提取价值的工具。
很有可能你已经有了一个数据管理团队,并且团队中的人习惯于使用大型数据集。他们可能熟悉下载Python语言编写的框架来操作这些数据集。要使用机器学习,他们只需要以不同的方式利用这些数据就可以了。他们需要训练神经网络等机器学习模型,并从数据中寻找有价值的模式,而不是直接从数据中挖掘有价值的信息。
我曾为几家公司工作过,这些公司多年来一直致力于开发大型数据项目。他们认为向机器学习的飞跃和向大数据的飞跃一样困难。事实上,利用机器学习技术更容易一些,因为这些团队已经很了解Python和R,并且熟悉使用大型数据集。
最大的挑战是让团队以不同的方式思考数据。他们需要创建训练集并重新调整人工神经网络中神经元(节点)的权重,这与他们习惯于使用大数据工具与数据直接交互的工作模式是不同的。
给大家一个警告:如果你的组织正在处理大数据,请记住,你有一把闪亮的新锤子并不意味着一切都是钉子。拥有大数据的企业往往容易被机器学习的价值所误导,但机器学习并不总是最佳选择。较小的人工智能项目可以通过符号方法更好地实现。不要以为你有数据,机器学习永远是最好的选择。
05 采用正确的方法
当你规划一个涉及数据的项目时,也许最好的方法是忽略术语以及数据科学、数据挖掘和机器学习之间的区别。而不是将注意力放在试图回答或解决的问题上,与数据科学家合作或者咨询他们,尽快确定最佳的方法。以下是一些一般准则:
- 如果你需要从数据中提取有价值的信息,并且对希望获得的信息(例如特定时间段内访问网站的人数)有清晰的认识,那么数据库(或数据仓库)配合基本的商业智能软件可能就足够了。
- 如果你面对的是大数据,对回答某个疑问或解决某个特定问题没有特别的思路(甚至可能没有问题,或者心中也没什么困惑,一片茫然),那么你可能需要使用某种(监督或无监督)机器学习技术。比如使用无监督学习,可以将所有数据输入机器学习模型,并查看它会产生什么结果。
我们来考虑这样一个问题:假设你管理一家医院,需要确定成功治疗患者的方法。可以从几个不同的角度来应对这个挑战(见图5.2)。
一种选择是组建自己的数据科学团队,找出需要分析的数据类型。例如,团队中的一个成员可能会问:“哪些医生的成功率最高?”或“哪个病人的随访计划产生最少的回访次数?”……基于这些问题,数据科学团队将选择相关的数据集,分析数据、生成报告并讨论他们的发现。这些报告可能导致更多需要进一步分析的问题。整个过程将需要进行密集的交流与讨论。
另一种方法是在人工神经网络上使用无监督的机器学习技术。你把所有的数据输入人工神经网络,希望它能识别出有用的模式。有了这些模式,就要由你和你的团队来确定这些模式的相关性,并找出相关模式背后的原因。
这些方法各有优缺点。数据科学团队可能会对见解背后的数据有更多的了解。他们会对数据有一种直观的感觉,并开始问更多有趣的问题。基于人工神经网络的机器学习方法可能识别出不一样的模式,因为它跟人类处理数据的方式是不一样的,它还可以找到不可解释的模式,这种模式对机器或许有意义,但人类可能无法理解。
使用人工神经网络的一大缺点是它无法解释某些模式背后的原因。例如,人工神经网络可能显示医院使用的一种抗生素治疗某些感染的成功率高于其他抗生素,但它不能解释原因。原因可能是之所以它的效果更好,是因为副作用更少,病人更可能继续服用。
另一种情况是,机器输出结果,但是任何查看结果的人都无法解释结果的含义。换句话说,结果对机器有意义,但对人没有意义。因此,我们可以进行逆向工程,试图了解为什么网络是这样工作的。然而,由于“规则”是不可解释的,我们可能不知道为什么网络产生了这样的结果。
数据科学团队可能会对数据有更好的感觉。他们会提出问题,利用自身的学习和理解从数据中发现关键的线索。他们不会考虑无限的可能性,而是将思考范围缩小到最有可能的因素,如医生、药物或成功率最高的程序等。