锐眼洞察 | 机器学习和统计模型的差异(翻译)

作者:Tavish Srivastava

原文:Difference between Machine Learning & Statistical Modeling

译者:TalkingData解决方案架构师 李堃

本译文禁止商用,转载请注明来源!

在各种各样的数据科学论坛上,有这样一个问题经常会被问到——机器学习和统计模型的差别是什么?

这确实是一个难以回答的问题。考虑到机器学习和统计模型所解决问题的相似性,两者的区别似乎仅仅在于数据量和模型建立者的不同。

在这篇文章中,我将尽最大的努力来展示机器学习和统计模型的区别,同时也欢迎业界有经验的朋友对本文进行补充。

在我开始之前,让我们先明确使用这些工具背后的目标。无论采用哪种工具去分析问题,最终的目标都是从数据获得知识。两种方法都旨在通过分析数据的产生机制挖掘 背后隐藏的信息。

两种方法的分析目标是相同的。现在让我们详细的探究一下其定义及差异。

定义

机器学习:一种不依赖于规则设计的数据学习算法。

统计模型:以数学方程形式表现变量之间关系的程式化表达。

对于喜欢从实际应用中了解概念的人,上述表达也许并不明确。让我们看一个商务的案例。

商业案例

让我们用麦肯锡发布的一个有趣案例来区分两个算法。

案例:分析理解电信公司一段时间内客户的流失水平。

可获得数据:两个驱动-A&B

麦肯锡接下来的展示足够让人兴奋。请从下图来理解一下统计模型和机器学习算法的差别。

Screen Shot 2015-06-30 at 11.32.20 PM

从图中你观察到了什么?统计模型在分类问题中得到一个简单的分类线。 一条非线性的边界线区分了高风险人群和低风险人群。 但当我们看到通过机器学习产生的等高线时, 我们发现统计模型似乎没有办法和机器学习算法进行比较。 机器学习的方法获得了任何边界都无法详细表征的信息。这就是机器学习可以为你做的。

更令人兴奋的是,机器学习还被应用在YouTube和Google的引擎推荐上,机器学习通过瞬间分析大量的观测样本给出近乎完美的推荐建议。 即使只采用一个16 G内存的笔记本,每天处理数十万行的数千个参数的模型也不会超过30分钟。然而一个统计模型需要在一台超级计算机跑一百万年来观察数千个参数。

机器学习和统计模型的差异:

在给出了两种模型在输出上的差异后,让我们更深入的了解两种范式的差异,虽然它们所做的工作类似。

  • 所属的学派
  • 产生时间
  • 基于的假设
  • 处理数据的类型
  • 操作和对象的术语
  • 使用的技术
  • 预测效果和人力投入

以上提到的这几方面都能从不同程度上区分机器学习和统计模型,但并不能给出机器学习和统计模型的明确界限。

分属不同的学派

机器学习:计算机科学和人工智能的一个分支,通过数据学习构建分析系统,不依赖明确的构建规则。

统计模型:数学的分支用,通过发现变量之间相关关系从而预测输出。

诞生年代不同

统计模型的历史已经有几个世纪之久。但是机器学习却是最近才发展起来的。二十世纪90年代,稳定的数字化和廉价的计算使得数据科学家停止建立完整的模型而使用计算机进行模型建立。这催生了机器学习的发展。随着数据规模和复杂程度的不断提升,机器学习不断展现出巨大的发展潜力。

假设程度差异

统计模型基于一系列的假设。例如线性回归模型假设:

  1. 自变量和因变量线性相关
  2. 同方差
  3. 波动均值为0
  4. 观测样本相互独立
  5. 波动服从正态分布

Logistics回归同样拥有很多的假设。即使是非线性回归也要遵守一个连续的分割边界的假设。然而机器学习却从这些假设中脱身出来。机器学习最大的好处在于没有连续性分割边界的限制。同样我们也并不需要假设自变量或因变量的分布。

数据区别

机器学习应用广泛。在线学习工具可以飞速处理数据。这些机器学习工具可学习数以亿计的观测样本,预测和学习同步进行。一些算法如随机森林和梯度助推在处理大数据时速度很快。机器学习处理数据的广度(来源更多)和深度(观察更大量)上做的非常好。但统计模型一般应用在较小的数据量和较窄的数据属性上。

命名公约

下面一些命名几乎指向相同的东西:

Screen Shot 2015-07-01 at 12.19.11 AM

公式:

虽然统计模型和机器学习的最终目标是相似的,但其公式化的结构却非常不同。

在统计模型中,我们在试图估计f函数时是通过:

因变量(Y)=f(自变量)+ 扰动 函数

机器学习放弃采用函数f的形式,简化为:

输出(Y)——> 输入(X)

它试图找到n维变量X的袋子,在袋子间Y的取值明显不同。

预测效果和人力投入

自然在事情发生前并不给出任何假设。一个预测模型中,假设越少、预测效率越高。机器学习名称的内涵就是减少人力投入。机器学习通过反复迭代学习发现隐藏在数据中的科学。由于机器学习作用在真实的数据上并不依赖于假设,预测效果是非常好的。统计模型是数学的加强,依赖于参数估计。它要求模型的建立者提前知道或了解变量之间的关系。

结束语

虽然机器学习和统计模型看起来为预测模型的不同分支,但它们非常相近。经过数十年的发展,两种模型间的差异性越来越小。模型之间相互渗透和相互学习,使得未来两种模型的界限更加模糊。

锐眼洞察 | 数据质量六步法(翻译)

作者:Ramesh Dontha

原文:Data Quality – A Simple 6 Step Process

译者:TalkingData数据科学家 孙强

本译文禁止商用,转载请注明来源!

我们都听说过很多关于低数据质量的恐怖故事。很多公司拥有数百万条记录,包括客户联系号码“(000)000-0000”、购买日期“99/99/99”、12个不同的性别值、没有状态信息的送货地址等等。“脏数据”为企业和组织带来了实际的成本消耗。 例如,美国邮政总局估计,2013年在处理由于数据质量差而导致无法投递的邮件上花费了15亿美元。 质量差的数据来源可能很多,但可以大致分为数据输入、数据处理、数据集成、数据转换和过时数据(陈旧的数据)。

那么,您改如何确保数据始终保持高质量? 人们越来越意识到数据对于做出明智决策的重要性,数据不准确会导致灾难性的后果。 挑战在于确保企业为其业务收集/采购相关的数据,以有意义和可持续的方式管理/治理这些数据,以确保关键主数据的高质量记录,并通过分析高质量数据以实现预定的业务目标。 基于数据质量专家和从业者的最佳实践,我们制定了6个步骤的数据质量框架。

第1步 – 定义

明确改进数据质量所要实现的业务目标,数据所有者/利益相关方,受影响的业务流程和数据规则。

以客户数据为例:

  • 目标:确保所有客户记录都是唯一的、信息准确性(例如:地址、电话号码等)、跨多系统数据的一致性等。
  • 数据所有者:销售副总裁
  • 利益相关方:金融、营销和生产
  • 受影响的业务流程:订单输入、开票、履行等
  • 数据规则:规则1 – 客户名称和地址应该是唯一的;规则2 – 所有的地址都应根据经核准的地址参考数据库进行核实

第2步 – 评估

根据定义步骤中规定的规则评估现有数据。 从关键属性的准确性、所有必要属性的完整性、跨多个数据集的属性的一致性、数据的及时性等多维度,对数据进行评估。根据每个企业的数据量、数据种类和数据质量项目的范围, 我们可能会使用一些分析工具进行定性和/或定量评估。 这是评估现有政策(数据访问、数据安全性、遵守特定行业标准/指南等)的阶段。

举例:

  • 评估客户记录中唯一性记录(包括姓名和地址)的占比;评估关键属性中等非空值的占比。

第3步 – 分析

对评估结果进行多方面分析。其中一个需要分析的方面是DQ业务目标与当前数据之间的差距。另一个需要分析的方面是数据质量较差的根本原因(如果是这样的话)。

举例:

如果客户地址不准确,不符合业务定义的目标,那么根源是什么? 是否是订单输入应用程序数据验证问题? 或者参考地址数据不准确?如果订单输入系统中的客户名称与财务系统中的不一致,是什么造成了这种不一致?

第4步 – 改进

根据前期分析设计和制定改进计划。 计划应该包含所涉及的时间表、资源和成本。

举例:

所有应用程序对地址的修改必须经过选定地址参考数据库的验证;客户名称只能通过订单输入应用修改;对系统的调整将需要6个月的时间才能实现,并需要XYZ资源和$$$。

第5步 – 实施

实施在改进阶段确定的解决方案。掌握技术以及其他业务流程相关的变化。实施全面的“变革管理”计划,确保所有利益相关方得到适当培训。

第六步-控制

定期验证数据是否与定义步骤中规定的业务目标和数据规则保持一致。定期向所有利益相关方传达数据质量指标和当前状态,以确保整个组织持续保持数据质量规范。

数据质量不是一次性项目,而是一个持续的过程,要求整个组织都以数据为导向、以数据为中心。 从大局来看,数据质量管理可以为组织带来丰厚收益。

锐眼洞察 | 2018年及未来的人工智能走向(翻译)

作者:Eugenio Culurciello

原文:Artificial Intelligence, AI in 2018 and beyond

译者:TalkingData研发副总裁 阎志涛

本译文禁止商用,转载请注明来源!

译者注: 很多对于未来的预测实际上经常是错误的,不过多看看不同的人对未来的想法无疑是有价值的。人工智能发展到现在已经在很多领域证明了自己。不过目前的人工智能还远远达不到我们期望中的那个状态。下一个目标无疑是人工智能有了更好的感知能力,能够利用记忆、迁移学习以及持续学习能力来处理复杂的情况,这样的人工智能可能才会逐渐的向通用智能方面发展。

以下是我关于深度神经网络以及机器学习在更广泛的人工智能领域如何发展的看法,以及我们如何能够获得越来越复杂的机器以帮助我们的日常生活。 需要注意的是这些并不是对于未来的预测,而是对这些领域的发展轨迹、趋势以及技术需求进行更详细的分析,从而让我们能够获得有用的人工智能。 并不是所有的机器学习都是针对人工智能的,还有一些比较容易获得的成果,这里也会一并进行介绍。

目标

这个领域的目标是实现达到或者超过人类的机器,从而能够在我们的日常生活中帮助我们。自动驾驶车辆、智能家居、智能助手以及安全摄像头是第一个目标。家庭烹饪和清洁机器人以及无人机和机器人是第二个目标。另外一个是移动设备上的智能助手。还有就是能够听到或者看到我们日常生活中经历的全职的智能陪伴助理。终极目标是一个完全自主的综合体,在执行人类的日常任务上能够达到或者超过人类。

软件

在这里,软件被定义为通过优化算法进行训练的能够解决一个特定任务的神经网络架构。 在今天,神经网络已经在事实上成为了学习解决任务的工具,这些任务涉及通过监督学习来对大规模数据集进行分类。但这并不是人工智能,因为在真实的世界中经常需要从没有经历过的经验中进行无监督的学习,这需要能够整合从不同环境中获得的知识去解决所面临的新问题。

神经网络架构 – 几年前,当这个领域蓬勃发展时,我们经常说它具备从数据中自动学习算法参数的能力,并且优于人手工进行的特征工程。但是我们有意识的忘掉了一个小细节:基于训练来解决任务的神经网络架构并不是从数据中学得的,实际上它仍旧是由人来设计的。基于经验进行手工设计仍旧是这个领域中最主要的局限之一。神经网络架构是学习算法基础的核心。尽管我们的学习算法能够掌握新的任务,如果神经网络不正确,它们仍旧不能正常的工作。从数据中学习神经网络架构的问题在于在一个大规模数据集上尝试多个架构花费的时间太长。一个人不得不从头到尾尝试训练多个架构去看看哪个能够表现的最好。这正是我们今天最为耗时的试错的过程。我们需要在这个问题上投入更多的人的脑力去解决这个重要的问题。

非监督学习 – 我们不能总是在那里指导神经网络如何去做,不能总是在帮助它们纠正每一个错误,对它们的性能提供反馈,我们有我们自己的生活要去过。但是这就是我们今天对于有监督的神经网络需要做的:对于每一个实例,我们都要去帮助它使得它能够正确的工作。相反,人类会从一些例子中去学习,然后能够以一种持续的方式自我修正和学习更复杂的数据。

预测神经网络 – 当前的神经网络的一个主要局限就是它不具备我们人类大脑的一个重要特性:预测能力。关于人类大脑是如何工作的一个主要理论是大脑在不断做出预测:预测编码。如果你仔细想一下,我们每天都会体验到它。当你提起一个你认为很轻但是实际上很重的物体时,你会感到吃惊。因为当你准备提起它时,你已经预测了它将会如何影响你和你的身体,以及以及如何影响周边环境。 预测不仅仅帮助理解世界,而且还能够帮助我们知道什么时候不需要、什么时候需要学习。实际上,我们保存关于我们不知道的或者让我们感到吃惊的事情的信息,这样下次遇到的时候我们就不会感到吃惊。认知能力显然与我们大脑中的注意力机制有关系:我们具备先天的能力能够去忘掉99.9%的感官输入,而仅仅聚焦于对于我们的生存至关重要的数据 – 威胁在那里以及我们跑到哪里您够避开它。或者,在当今的社会,当我们急着要出门时我们的手机在哪里。 构建预测神经网络是与真实世界交互以及在复杂的环境中能够进行运转的核心,因此这是任何强化学习网络的核心网络。我们已经广泛的讨论了预测神经网络这个话题,并且是研究和创建它们的先锋组织之一。

当前的神经网络的局限 – 我们前面已经讨论了今天的神经网络的局限,不能够预测、基于内容的推理以及不稳定性,因此我们需要一种新型的神经网络。 神经网络胶囊是解决当前的神经网络局限的一种方法。在这里我们认为胶囊需要扩充一些新的特性:

  • 对视频帧的操作:这非常的简单,我们需要做的是让胶囊路由查看最近播放过的多个数据点。这相当于对最近的重要数据点上的联想记忆。需要注意的是它不是最近的帧的最近的表达,而是最近的帧的最不同点的表达。不同内容的不同点表达可以通过仅仅保存与预定义值不同的表达来获得。这个重要的细节可以保存最近的历史的相关信息,而不是一系列相关的数据点的无用的信息。
  • 预测神经网络能力:这已经是动态路由的一部分,从而强迫每一层都去预测下一层的表达。这是一个非常强大的自学习技术,在我们看来,它比我们社区所开发的所有的其他类型的无监督学习都更有效果。胶囊现在需要能够预测长时间的时空关系,但是现在这个能力还没有被实现。

持续学习 – 这一点很重要,因为神经网络需要不断向学习新的数据点。目前的神经网络每一次都只能够重新训练才能够学习新的数据。神经网络需要能够自我评估哪些是它们已经知道的以及哪些需要重新的训练。这也是现实生活中的增强学习任务所需要的,这样我们就能教机器学习新的任务而不会忘记旧的任务。 迁移学习 – 或者我们如何能够让这些算法通过观看视频自己学习,就像我们想要学习如何做一道新菜一样。这个能力需要我们前面列出的所有的组件,并且对于增强学习非常的重要。现在你只需要给机器一个例子,就可以训练你的机器来做你想要它做的事情,就像我们人类一样。 增强学习 – 这是深度神经网络的研究的圣杯:教给机器如何在一个真实世界的环境中去 学会行动。这需要自我学习、持续学习、预测能力以及很多我们不知道的东西。在增强学习领域还有很多的工作要去做,但是对于作者来讲,他仅仅是了解了这个问题的皮毛,距离解决它还有很多的路要走。 强化学习通常被认为是“锦上添花”,这意味着它仅仅是一个塑料合成大脑上的小型训练。那我们如何能够得到一个能够轻松解决所有问题的“通用”大脑呢? 这是一个先有鸡还是先有蛋的问题。今天为了一个一个的解决增强学习的问题,我们使用标准的神经网络:

  • 一个深度神经网络,它接受大量的输入数据,例如视频或者音频,然后将它们压缩为表达
  • 一个序列学习神经网络(例如RNN),去学习任务

上面是解决这个问题的两个显而易见的解决方案,但明显是错误的。但这正是每个人现在都在使用的,因为它们是目前可用的组件。结果却是不令人满意:我们的确可以从头学会玩视频游戏,并且掌握象棋或者围棋这类完全可被观察的游戏。但是不用我说,这些远远不能够解决现实世界的复杂问题。想象一下,一个AI玩Horizon Zero Dawn可以比人玩的更好,我非常想看到这个发生。 这正是我们想要的,机器可以和我们人类一样的运行。 我们在这里详细介绍了增强学习的工作和建议。它使用一个可以连续操作的预测神经网络以及一个关联存储器去存储当前的体验。

不会再存在循环神经网络 – 循环神经网络(RNN)已经出现了有一段时日了。RNN在训练并行化方面表现的非常不好,即使在特殊定制的机器上运行的也非常慢,原因是它们需要非常高的内存带宽,由此它们更受限于内存带宽而不是受限于计算能力。基于注意力的神经网络训练和部署上更高效也更快速,并且他们不容易受到训练和部署伸缩性的影响。在神经网络中,注意力有可能改变很多架构,但是现在它还没有得到应有的认可。将关联记忆和注意力结合起来,将会是下一波神经网络发展浪潮中的核心。 注意力神经网络已经能够像RNN一样学习序列,并且能够减少100倍的计算量!谁能够忽略这个巨大的进步? 我们认识到基于注意力的神经网络将会慢慢的在语音识别领域替换RNN,并且会在增强学习架构和通用人工智能领域获得一席之地。

硬件

硬件是深度学习取得进步的核心,让我们忘掉深度学习在2008-2012年的快速扩张,近些年深度学习迅速发展主要是因为硬件:

  • 每个手机上的廉价的图像传感器使得我们可以收集大量的数据集
  • GPU可以加速深度神经网络的训练

我们之前曾频繁的讨论过硬件。但是现在需要进行更新了。在过去的1-2年,我们看到了机器学习硬件的爆发式发展,尤其是针对深度神经网络。 有多家公司在这个领域有所投入:NVIDIA、Intel、Nervana、Movidius、Bitmain、Cambricon、Cerebras、DeePhi、Google、Graphcore、Groq、Huawei、ARM、Wave Computing。它们都在开发能够训练和运行深度神经网络的定制化高性能芯片。 关键是,在提供最低功耗和最高性能的同时,运行最新、最有用的神经网络。但是这个领域里很少有人能够理解硬件如何真正的改变机器学习、神经网络以及人工智能。很少有人理解芯片的重要性以及如何去开发它们。

  • 训练还是推理? – 很多公司在打造能够进行神经网络训练的芯片,其目的是抢占NVIDIA的一部分市场,而NVIDIA是神经网络训练硬件的事实上的标准。但是训练仅仅是深度神经网络应用世界中的一小部分。对于任何一个训练步骤,在真实世界中都有实际应用的上百万次的部署。例如你可以在云上使用一个目标检测神经网络:它基于大量图片进行一次训练,但是一旦训练完成,它将会基于数十亿数据在上百万台计算机上运行。这里试图说明的是:就像与真正使用的次数相比,训练次数其实很少,同样训练硬件的重要性也不高。而且制造训练所需要的芯片组需要额外的硬件和技巧。这意味这对于相同的性能需要更高的功率,因此不适合进行当前的生产部署。训练硬件重要,也是对推理硬件的简单调整,它并没有你想的那么重要。
  • 应用 – 在这个领域,能够提供以更低能耗来进行更快训练的硬件非常重要,因为它能够帮助更快创建和测试新模型。但是,运行应用的硬件(大部分用于推理)才是真正的飞跃。目前,有很多应用由于没有硬件或硬件低效的问题还不能用或不实用。比如我们的手机可以是语音助手,但由于不能让它一直在线,目前还远不达理想状态。我们的家庭助手都需要连接到供电设备上,因此不能随时的跟随我们在家里随意移动,除非我们周边有多个麦克风和设备。可能最重要的应用是将手机屏幕从我们的生活中移走,然后嵌入到我们的视觉系统当中。没有超级有效的硬件,所有这些应用以及其他更多应用(小机器人)都将无法实现。
  • 赢家和输家 – 在硬件领域,赢家是单位能耗最低并且能够最快进入市场的那些企业。例如在手机中取代SoC。这每年都在发生。现在想象一下将神经网络加速器嵌入到内存中,这可能能够更快征服和明显渗透大部分市场。这就是我们所说的赢家。

前面我们简要讨论了应用,但是我们需要详细讨论一下AI和神经网络如何进入和影响我们的生活。如下:

  • 图像和视频分类 – 已经有存在于很多云服务中。下一步在很多智能相机做到这些(已经有很多厂商提供)。在未来,神经网络将会越来越减少对云的依赖而在本地处理越来越多的数据:因为保护隐私和节省带宽而成为赢家。
  • 语音助手 – 因为能在我们的“智能”家居中播放音乐和控制基本设备,语音助手正在成为我们生活中的一部分。但是对话是我们人类活动中如此基础的一个能力,我们太把它当成理所当然的事情了。能够与你对话的小型设备是一场正在发生的革命。语音助手在为我们的服务中变得越来越好。但是它们仍需要连接电源。我们真正需要的助手是能够跟随我们移动的。我们的手机合适吗?在这里硬件又一次获得了胜利,因为硬件的进步使之成为可能。Alexa、Cortona和Siri会一直在你的身边陪伴。手机将很快变为智能家居,这是智能手机的有一次胜利。我们还希望语音助手能在车里跟随我们在城市中移动。我们需要能够在本地处理声音,越来越少的依赖云,从而更好隐私保护并降低带宽成本。硬件的进步将在1-2年实现这些。
  • 真正人工助手 – 能够识别语音真的很棒,但是我们真正需要的是能够实时识别我们所看到的,在我们移动时对周围环境进行分析。这是真正会让我们喜爱的智能助手。神经网络硬件能够满足你的这个愿望,因为分析视频流非常耗费计算能力,而且已经达到了现有硅基硬件理论的极限。换句话说,实现这些要比语音助手困难的多。但是这并不是不可能的,许多智能初创公司(比如AiPoly)已经有了所需的相关软件,但是缺乏能够支撑在手机上运行的强大硬件。还要注意的是,利用可穿戴眼镜之类的设备替换手机屏幕,将会使得智能助手真正的成为我们生活的一部分。
  • 烹饪机器人 – 会做饭和清洁的机器人将会成为下一个伟大的设备,我们可能很快就会拥有相关硬件,但是我们缺乏对应的软件。我们需要迁移学习、持续学习以及增强学习。这些工作看起来都非常有魅力,因为你会看到:每一个配方都是不同的,每一个烹饪的原材料看起来都不一样,我们不可能硬编码这些选项,我们需要一个综合体来非常好的学习和总结,从而能够完成相关的工作。我们远没有达到这个地步,但是也不是非常的遥不可及。按照目前的发展速度,可能需要几年的时间。我过去几年就在做这些工作,未来也将继续做下去。

锐眼洞察 | 使用卷积神经网络来检测卫星图像的特征(翻译)

作者:Ahmet Taspinar 

原文:Using Convolutional Neural Networks to detect features in satellite

译者:TalkingData数据科学家 李政昕

本译文禁止商用,转载请注明来源!

1.介绍

之前的博客文章中,我们已经看到了如何在TensorFlow中构建卷积神经网络(CNN),从零开始构建各种CNN架构(如LeNet5、AlexNet、VGGNet-16),并在MNIST、CIFAR-10、Oxflower17数据集上进行训练。

如果您一直关注最新的技术发展,您可能已经知道CNN能用于人脸识别、物体检测、医学图像分析、制造过程中的自动检测、自然语言处理任务以及其他许多应用。可以说,想找到CNN的实际应用,你仅仅受想象力和创造力(当然还有目的、精力和时间)的限制。

受到Kaggle的卫星图像特征检测挑战的启发,我想知道在卫星和航拍图像中检测特征是否容易。 如果这是可能的话,它的实际应用将是巨大的。在全球城市化进程中,城市正在不断扩大、发展和变化。这伴随着新的基础设施建设、新的建筑和社区诞生,以及景观的不断变化。监控和跟踪所有这些变化一直是一个劳动密集型工作。如果我们每天都可以得到全新的卫星图像,并使用深度学习来立即更新我们所有的地图,那么对于在这个领域工作的每个人来说都有非常大的帮助!

深度学习领域的发展如此之快,以至于几年前的热门——“简单”的图片分类已经显得过时了。目前,对象检测已经成为主流,在接下来的几年里我们可能会看到越来越多使用图像分割的应用(见图1)。

image

图1:计算机视觉中的任务可以分为图像分类、对象检测或分割任务

在这个博客中,我们将使用图像分类来检测航拍图像中的道路。 为此,我们首先需要获取这些航拍图像,并获取包含道路位置信息的数据(第2.1节)。 之后,我们需要将这两个图层放在一起(第3.1节)。 将准备好的数据集(第4.1节)以正确的格式保存后,我们可以将其送入建立卷积神经网络(4.3节)。 最后查看这个方法的准确性,并讨论可以使用哪些方法来改进它。

2.获取数据

任何数据科学项目中的第一个(也是最困难的)步骤总是获取数据。幸运的是,有许多包含各种形式卫星图像的开放数据集。有Landsat数据集、ESA的Sentinel数据集、MODIS数据集、NAIP数据集等。 每个数据集都有不同的优点和缺点。像NAIP数据集提供高分辨率(1米分辨率),但只覆盖美国。像Landsat覆盖整个地球,但分辨率较低(30米)。 还有其中一些数据集显示哪种类型的土地覆盖(森林、水、草地),其他数据集包含大气和气候数据。

由于我来自荷兰,所以我想使用覆盖荷兰的航空/卫星图像,因此我将使用PDOK提供的航拍图像。 这不仅是相当新的,并且他们也提供令人惊喜的25厘米的精度。

荷兰政府组织有很多可用的开放数据使用Pdokviewer,您可以在线查看大量这样开放的数据集:

  • 包含基础设施的层(荷兰的各种公路、铁路、水路(NWB wegenbestand)
  • 包含市与地区边界的层
  • 物理地理区域
  • 每个政府组织的位置
  • 农业区域
  • 每个街区的用电量
  • 土壤的类型与地形图
  • 每个街区的居民人数
  • 地表使用方式等等(甚至棕色长耳蝙蝠的生活栖息地)

image

图2:PDOK中可用的不同类型的图层

因此,有许多可用的数据集可以用作第二层(即作为包含道路位置信息的数据,之后需要与航拍图像数据进行合并),并使用它来自动检测卫星图像中的这些类型的特征。

PS:另一个包含很多地图的网站是Atlas Natuurlijk Kapitaal

2.1使用owslib下载图像

我感兴趣的图层是包含道路类型的图层。可以从荷兰政府的开放数据门户下载具有道路类型(NWB wegenbestand)的地图。航拍图像可以使用Web地图服务(WMS),可以通过Python包owslib下载。

WX20180122-103330

用“dx”和“dy”我们可以调整缩放级别。200的值大致对应于12的缩放级别,100的值大致对应于13的缩放级别。

此过程会在边界框((90000,427000),(110000,447000))内生成10.000个图块。这些坐标在rijksdriehoekscoordinate参考系统中给出,并且与WGS 84参考系统中的坐标((51.82781,4.44428),(52.00954,4.73177))相对应。 它覆盖了鹿特丹南部几平方公里(见图3),既包括城市也包括非城市地区,即我们的卷积神经网络有足够的道路进行训练。

image

图3:我们用来训练ConvNet的区域的边界框。

2.2查看包含荷兰道路的shapefile

接下来,我们将使用来自NWB Wegvakken(2017年9月版)的数据确定每个图像的内容。这是一个包含荷兰所有道路的文件,经常更新。可以从这个位置以shapefile的形式下载它。

Shapefile包含具有地理空间数据的形状,通常使用ArcGIS或QGIS等GIS软件打开。也可以使用pyshp库在Python中打开它。

WX20180122-103347

在这段代码中,列表’buffer’包含shapefile的内容。由于我们不想每次重复相同的shapefile读取过程,所以我们现在使用json.dumps()将其保存为json格式。

如果我们试图保存shapefile的内容,它会报错‘(…) is not JSON Serializable’。这是因为shapefile包含JSON本身不支持的数据类型(字节和日期时间对象)。 因此,我们需要为标准的JSON序列化器编写一个扩展,它可以获取JSON不支持的数据类型,并将它们转换为可序列化的数据类型。这是JSONencoder的方法。(关于这个方法的详情请看这里)。

WX20180122-103411

如果我们查看这个shapefile的内容,我们将会看到它包含以下类型的对象列表:

WX20180122-103437

它包含了大量的信息(手册中规定了每个信息的意义),但是对我们来说最重要的是

  • ‘WEGBEHSRT’ – >这表示道路类型
  • ‘coordinates’ – >这些是’rijkscoordinaten’系统中给出的这个特定对象的坐标。

在NWB Wegvakken中存在的不同的道路类型是:image

3.映射两层数据

现在应该确定哪些图像包含道路、哪些不包含道路。我们将NWB-Wegvakken的内容映射到下载的航拍照片的顶部来实现这一点。 我们可以使用Python字典来跟踪映射。我们还将使用字典来跟踪每个图像中存在的道路类型。

WX20180122-103452

在上面的代码中,前面从Shapefile转换为.JSON格式的NWB wegvakken的内容被加载到了dict_nwb_wegvakken中。

此外,我们初始化两个字典。第一个将填图像作为key,并将其内容列表作为值。第二个字典将填路类型作为key,将包含这些道路类型的所有图块作为值。如下所示:

WX20180122-103508

我们迭代dict_nwb_wegvakken的内容,对于每个元素,我们查找坐标和道路类型,并确认这些坐标是在我们的边界框内。通过以下方法来完成:

WX20180122-103522

add_to_dict方法首先通过确定每个tile命名的四个坐标(lowerleft x,y和upperright x,y)来确定一个坐标属于哪个tile。 我们还确定了每个坐标在tile中的相对位置。例如,“99800_445000_100000_445200.jpg”中的坐标(99880,445120)将具有相对坐标(0.4,0.6)。当你想绘制一个tile的内容时,这个方法很方便。

将道路类型与相对坐标一起添加到图像的内容列表。 同时,我们将tilename添加到第二个包含每个道路类型的tilename列表的字典中。

  • 如果只有一组坐标,并且这些坐标位于边界框内,我们立即将这些坐标添加到我们的字典中。
  • 如果元素中有多个坐标,我们不仅将所有的坐标添加到字典中,而且计算两个后续坐标之间的所有中间点,并将这些中间点添加到字典中。 这是必要的,因为两个坐标可以形成描述位于tile内部的道路的形状/线条,但是如果坐标恰好位于tile外部,我们将认为该tile不包含任何道路。 如图4所示。在左边我们可以看到描述一条道路的两点,但是它们碰巧位于tile外面,而在右边我们也计算两点之间的每一个中间点(每一个1 / POINTS_PER_METER米),并将中间点添加到字典中。

image

3.2可视化映射结果

利用可视化,查看映射是否正确、是否遗漏了道路,以及是否在两个坐标之间选择了足够的中间点以完全覆盖道路的所有部分。

WX20180122-103540

在图5中,我们可以看到两个数字,左边是(x0 = 94400,y0 = 432000),右边是(x0 = 93000,y0 = 430000)。 image

图5:体现NWB wegenbestand在tile上的映射结果的两张图

4.用卷积神经网络识别道路

4.1准备训练、测试和验证数据集

接下来,我们将把所有图像及其正确标签(道路是否存在以及道路类型)加载到数据集中。数据集是随机的,然后分成训练、测试和验证部分。

WX20180122-103602

我们可以使用以下函数对标签进行独热编码,并随机化数据集:

WX20180122-103613

4.2将数据集保存为一个pickle文件

将数据集加载到内存中的整个过程、尤其是随机化图像的顺序,通常需要很长时间。所以在完成一次之后,最好把结果保存为一个pickle文件。

WX20180122-103702

现在我们可以保存这次训练,在pickle中验证和测试这个数据集,准备部分的工作就完成了。

我们可以把这个pickle文件加载到卷积神经网络中并训练它来识别道路。

4.3训练卷积神经网络

正如你所看到的,在我们开始使用CNN之前,我们不得不做很多工作来准备数据集。这也反映了数据科学的现实:70%到80%的时间用于获取、理解和清理数据,数据的实际建模/训练只是工作的一小部分。

首先,我们从保存的pickle文件中加载数据集,从cnn_models模块中导入VGGNet并设置学习速率、批量大小等值。

WX20180122-103719

之后,可以构建包含卷积神经网络所有计算步骤的图并开始训练它。我们使用VGGNet-16卷积神经网络、l2正则化来最小化误差,学习率为0.0001。 在每一步中,训练准确率被附加到train_accuracies,并且在每10步,测试和验证准确率被附加到类似的列表。稍后我们将使用这些来形象化我们的准确率。

WX20180122-105502WX20180122-105536

4.5结果的准确率

下面是卷积神经网络的准确率结果。正如你所看到的,测试的准确率和验证集合在80%左右。

image

图6:训练、测试和验证集的准确率

从这些没有被准确分类的tile中可以看出,大部分被错误分类的tile是由于这些图片上的道路确实很难被检测到。 image

图7:被错误分类的一些tile

5.最后的话

我们已经看到了如何使用CNN在卫星或航空图像中检测道路。虽然我们通过卷积神经网络能够做的已经非常令人惊喜,但是AI和深度学习领域的技术发展是如此之快,“只是用CNN”已经过时了。

几年来,也有了被称为R-CNN、Fast R-CNN和R-CNN(如SSDYOLOYOLO9000)的神经网络。这些神经网络不仅可以检测图像中物体的存在,还可以返回物体的边界框。 现在还有可以执行分割任务的神经网络(如DeepMaskSharpMaskMultiPath),即它们可以确定图像中的每个像素属于哪个对象。 我认为这些可以执行图像分割的神经网络将是确定卫星图像内道路和其他物体位置的理想选择。在未来的博客中,我会初探如何使用这些类型的神经网络来检测卫星和航空图像中的道路(或其他特征)。

锐眼洞察 | 2018年云架构趋势(翻译)

作者:Keith D. Foote 

原文:Cloud Architecture Trends in 2018

译者:TalkingData数据科学家 孙强

本译文禁止商用,转载请注明作者与来源!

人们不断想出新的智能方式来使用云。 因此,云计算架构设计和开发不断被调整和改进。 今天的企业需要灵活变通,快速行动,了解客户的期望。 为此,企业依靠云提供专用通信系统、数据存储系统和大数据处理系统。 随着云技术的发展,组织不断发现越来越多的用途。

云架构描述了用于提供云计算服务的“软件系统的组织”。 它通常涉及云中的多个元素,它们通过松耦合机制(例如消息队列)相互通信。 云的体系结构必须足够灵活,以允许各种系统访问。 可伸缩性和安全性是设计中的两个重要元素。

数据架构不应与云架构混淆,数据架构正在进行类似的演变。 这只是数据架构中更大的一个主题。

混合云

越来越多的组织将采用内部数据处理、私有云处理、公有云处理和软件即服务(SaaS)的组合来提供研究成果和商业智能。 虽然这种方法具有很大的灵活性,但它通常不是一个简单的系统,而且往往在管理上“不必要地”昂贵和笨拙。 最近的DATAVERSITY调研显示,在被调研组织中有47.7%正在使用混合系统。

混合云的体系结构涉及整合本地资源和云资源。 对于大多数具有本地技术的企业而言,云端即服务的使用需要在混合架构中运行。 某个云服务可能具有与客户的良好匹配的体系结构,而另一些没有选择具备兼容系统的云提供商的云服务商,因为无需投资设备和软件,可以将配置成本降至最低。

在调研云提供商时,考虑在云和内部部署系统上整合“信息提供应用程序”也很重要。 混合架构应该包括整合来自物联网的大数据和远程传感器的能力。 兼容的系统无需购买新硬件来支持应用程序,并且可以简化流程。

机器学习和深度学习

深度学习和机器学习都基于算法。 机器学习为计算机提供了使用重复性经验进行学习的能力。深度学习借助图形处理单元(GPU)和海量数据进一步推动了这一过程,并且经常用于训练AI实体。

许多企业领导者认为,机器学习将最大限度地从大数据获得洞察,并为他们提供竞争优势。 还有一些商业领袖还不确定机器学习是什么。 那些了解并使用它的人已经获得了有用的商业智能。 在短短的几年中,机器学习已经从实验室实验转变为非常有用的研究工具。

哈佛商业评论分析服务公司最近的一项调查显示,60%的受访者认为其组织未来的成功取决于机器学习。 许多人已经开始使用深度学习来开发模式识别、工作流程管理、预测建议以及检测欺诈行为。

AWS和微软Azure之间罕有的达成了合作伙伴关系,体现了机器学习和深度学习的重要性。 他们的合作伙伴关系是通过深度学习“开放源代码库”Gluon的方式实现的,旨在实现特定流程的自动化,从而使机器学习更加精简。 这两家公司以及IBM、Google和其他科技巨头都看到了云计算机学习的巨大潜力。

云容器

云容器(应用程序容器的版本)和容器管理平台将在2018年获得普及,因为它们是有用的、高效的和功能性的。 Forrester副总裁兼首席分析师Dave Bartoletti建议,目前有10%的企业正在生产环境使用容器,并且多达三分之一的企业已经开始对其进行测试。术语“应用容器”代表了一种提供一致性和设计效率的新技术。 基本上,它们是虚拟机和虚拟机管理程序的替代品。 容器比虚拟机更有效地使用存储资源、内存和CPU,从而可以使用相同的基础结构来支持更多的应用程序。

应用程序容器使用称为基于容器的虚拟化系统。 它是一个专为数据和处理而设计的“虚拟”存储容器,它将物理计算机环境中的所有内部元素隔离开来。 它以计算机为平台,独立运行。

这可以保护容器的应用程序和服务器,避免由于错误而损害对方。 IT专家声称,基于容器的虚拟化支持更高效的设计,无需在计算机上架设基础架构系统。 容器有自己的基础设施。

另外,云容器具有非常便携的特点。 一个容器可以很容易地上传到各种不同的服务器上。 容器可以很容易地复制,使得它们可以用于测试、开发和集成,而无需重新配置主机。 (注意:应用程序容器仍然是新的,并不总能理想的与所有服务器兼容,需要仔细检查容器的限制)。

人工智能

云提供商历来重视提供基础架构和软件。 然而,最近焦点转移到了提供智能云。仅支持自有云的 IBM Watson,已经在人工智能(AI)中处于领先地位。开发一个AI实体的主要挑战是在训练中涉及的时间和金钱。 云端GPU技术已被用于提供深度学习。

IBM最近宣布他们可以将AI实体的训练时间大幅缩短65%。 这被认为是一个重大的突破,也是迈向减少训练AI实体所需时间和金钱的重要一步。

很少有组织可以负担对人工智能的研究。 但是,主要的云供应商已经在AI研发方面投入了大量资金。 他们的目标是开发一种能够比竞争对手更快、更高效、更直观地与客户合作的云。 使用具有人工智能能力的云可以提供:

  • 廉价的人工智能研究:集成人工智能的云服务可以为企业提供人工智能研究和开发的资源,客户只需付出时间成本。 一个不成功的试点项目可以很容易地关闭,而无需处理不再需要的昂贵的硬件。
  • 易用性:云供应商一直在努力使自己的系统更加“用户友好”,并使用人工智能来实现这一目标。
  • 使用最新技术:使用AI云服务可以使企业保持技术领先的地位。面对竞争,主要的云供应商在不断提供新的AI服务。

人工智能和云的安全

为了安全目的,人工智能被期望越来越多地用于云内外。 在云中运行时,安全性是一个重要的考虑因素,AI提供了一种通过识别威胁和缩短响应时间来打击网络攻击的方法。在企业与多个系统进行交互的云中,云服务可能会受到更多的破坏,从而导致网络欺诈和对组织私有计算机的攻击。 安全性是选择云的重要因素。2017年10月,Vipre Cloud宣布使用人工智能来防止在线终端攻击。 他们正在努力通过将行为分析、众包数据收集、机器学习和统一管理相互关联的安全系统,来保护这个脆弱的区域。 Vipre Cloud不断更新最新的网络攻击信息,并在本地安装了一个配套代理,以确保端点的安全。

区块链

区块链是一种分布式账本技术(DLT),用于支持比特币和其他加密货币,可以通过使用计算机网络而不是单个本地化服务器来存储大量数据。 区块链本身不直接提供安全性,但可以创建安全应用程序。 ABI Research表示,区块链提供了三个支持安全性的基本功能:

  • 不可变性:数据创建后无法更改。
  • 透明:每个人都可以看到发生了什么。
  • 自治性:其是自我治理的。

这项技术理论上可以处理涉及金钱、货物或财产的任何类型的在线交易。 网上金融交易的潜力很大,从税收到允许移民向其他国家的家庭汇款,在这些应用场景中,银行业操作起来可能很困难。

在2017年10月,IBM创建了一个新的区块链支付平台,可以加快跨境支付。 几个国际银行在这个项目上共同合作,包括澳大利亚国民银行和Danamon银行。 10月下旬,香港和新加坡的中央银行同意使用区块链技术在跨境网络上进行合作。

数据虚拟化

数据虚拟化是一个术语,用于描述数据管理的一种方法,允许应用程序恢复和操作数据,而不需要数据的技术细节,例如数据位于何处或如何格式化。它从各种来源向多个用户提供实时的综合和抽象数据。 数据虚拟化模型被认为易于理解、易于构建和易于维护。

数据虚拟化过程涉及从不同来源传输数据。 使用数据虚拟化技术的主要目标是通过单点提供来自各种数据源的数据访问。 这允许用户访问应用程序而不需要其的确切位置。数据虚拟化最近已经适应了云计算,并将在2018年得到越来越多的使用。

锐眼洞察 | 不可错过的2018年Fintech趋势(翻译)

作者:Adriana Bickford

原文:Top Technology Trends to look for in 2018

译者:TalkingData市场部

本译文禁止商用,转载请注明作者与来源!

随着2017年接近尾声,我们展望新一年,制定目标并翻开新一页。这是一个沉思、想象并满怀雄心壮志进入2018年的时刻。
毫无疑问,2017年让我们认识到,科技已被证明对服务产生了颠覆。从比特币的价格冲上高峰,到人工智能的影响力日益增长,我们可以看到社会对替代性金融服务的需求是多么急切。

热门AI文章:

那么,2018年需要注意那些热门科技趋势呢?通过与行业顶尖专家、领导者与预言家的讨论,我们选出了以下三大趋势。

区块链

由于比特币的神秘性,可能会让很多公司不敢使用它,但事实上数字货币已经进入了市场。甚至进入了证券交易所。

面对比特币在2017年的高潮,我们预测,它会给像以太坊和莱特币等其他加密货币让路,以积蓄能量。已有猜测,以太坊的市值将在2018年超过比特币。

CB Insight预测,到2020年,数字货币将会成为主导货币。企业与政府已经开始聚焦协议如何将数字货币整合入他们的系统,从而不被排除在外。甚至投入更多开发自有的解决方案。在这新的一年,我们将开始看到对加密货币的更多试验和实际应用。

人工智能(AI)

我们已经看到科技如何通过机器学习、机器人科学与聊天机器人,来不断拓展科学与技术的边界。

在2018年,AI与机器学习将继续占领新闻头条。有预估,到2020年,将有85%的客户交互由AI完成。随着实验进行,我们开始看到自动化流程将消除错误并降低成本。在2018年,其将通过分析与大数据的形式来优化决策并提高服务速度,产生更大的价值

在2018年,AI将不仅仅是“可有可无”而是“必不可缺”。

数字化体验——这次针对后端

虽然,数字化转型的焦点之前都集中在前端,我们预测,2018年将借助科技来赋能后端流程与系统,从而为客户提供全面的、流畅的体验

系统必须整合从触点到渠道来提供实时的客户交互,从而提供转型的业务模型。

上面就是我对金融科技发展方向的预测。由于对数字化服务的需求的增长,我们将继续看到客户离开网点并通过他们的设备轻松进行交易。传统银行要注意这些预测,并快速向整体客户旅程从面对面服务升级到日常服务的阶段转变。

2017年已经过去,是时候聚焦2018年,并关注如何参与到即将改变未来金融大局的主流趋势中来。

锐眼洞察 | Apple开源机器学习框架 Turi Create 简介与实践

作者:TalkingData研发工程师 张永超

本文为TalkingData原创,未经授权禁止转载。申请授权请在评论中留言联系!

logo.png

日前,苹果在 GitHub 平台上公布了 Turi Create 框架,苹果表示,这个框架旨在通过简化机器学习模型的开发,降低开发者构建模型的门槛。详细说明如下:

Turi Create 概述

Turi Create简化了自定义机器学习模型的开发。你不需要成为机器学习的专家,即可为你的程序添加推荐,对象检测,图像分类,图像相似度识别或活动分类。

  • 易于使用:让你聚焦于任务而不是算法
  • 可视化:内置的流式可视化功能可以探索你的数据
  • 灵活:支持文本,图像,音频,视频和传感器数据
  • 快速和可扩展性:可在单台机器上处理大型数据集
  • 易于准备配置:模型导出到Core ML,即可用于iOS,macOS,watchOS和tvOS应用程序

使用Turi Create,你可以处理很多常见的场景:

你还可以使用基本的机器学习模型做成基于算法的工具包:

支持的平台

Turi Create支持:

  • macOS 10.12+
  • Linux(依赖于glibc 2.12+)
  • Windows 10(需要WSL)

系统要求

  • Python 2.7(即将支持Python 3.5+)
  • x86_64架构

安装

Linux不同变种的安装详细说明,参阅LINUX_INSTALL.md。常见的安装问题,参阅INSTALL_ISSUES.md

苹果官方推荐使用环境virtualenv,安装或建立Turi Create。请务必使用你的系统pip安装virtualenv。

WX20180117-182218

安装Turi Create的方法参照标准的python包安装步骤。要创建一个名为venv的Python虚拟环境,请参照以下步骤:

WX20180117-182233
要激活新的虚拟环境并在此环境中安装Turi Create,请按照下列步骤操作:

WX20180117-182243
另外,如果你使用的是Anaconda,你可以使用它的虚拟环境:

WX20180117-182306
在您的虚拟环境中安装Turi Create:

WX20180117-182315

GPU支持

Turi Create不一定需要GPU,但某些模型可以通过使用GPU加速。如果要在安装turicreate包后启用GPU支持,请执行以下步骤:

  • 安装CUDA 8.0(说明
  • 为CUDA 8.0安装cuDNN 5(说明

确保将CUDA库路径添加到LD_LIBRARY_PATH环境变量。通常情况下,这意味着将以下行添加到 ~/.bashrc文件中:

WX20180117-182326
如果你将cuDNN文件安装到单独的目录中,请确保单独添加它。下一步是卸载mxnet并安装启用CUDA的mxnet-cu80包:

WX20180117-182336

确保你安装的MXNet版本与turicreate依赖的版本相同(当前为0.11.0)。如果你在设置GPU时遇到困难,可参阅MXNet安装说明

当然,除了上述的安装方式之外,你还可以从源码构建,如果想要从源码构建,可参阅BUILD.md中的详细说明。

猫狗大战

Turi Create可以训练定制的机器学习模型。这意味着可以开发可识别不同对象的模型,只要您使用大量图像训练模型即可。

这里我们以识别猫狗为例,建立一个自定义的模型,可以识别图像是猫还是狗。

1. 下载猫和狗的图像

第一步是下载很多猫和狗的图像。这是必要的,因为我们将使用图像来训练我们的自定义模型。这里我使用的是Kaggle Dogs vs. Cats的数据集。如果你觉得在这里单独下载麻烦,可直接在Kaggle Cats and Dogs Dataset中下载全量数据集。

下载好图像数据集之后,我们解压到对应的文件夹内备用。

2. 标记数据、训练模型

在开始训练我们的模型前,首先需要对每一张图像标记其为‘cat’还是‘dog’。幸运的是Turi Create提供了标记基于不同文件夹的图像的功能,具体代码如下:

WX20180117-182352

标记完成后,可以看到数据集的全局情况:

上述代码的最后一行 data.explore(),会自动打开Turi Create的图像可视化查看工具,在这里你可以看到每张图像以及相应的标记,也是一种核查标记是否正确的方式。

数据集准备完成后,就可以进行模型的训练了。在训练的时候,会将数据集按照‘二八原则’进行训练集和测试集划分,然后进行模型训练:

WX20180117-182407

训练的过程可能会花一点时间,长短取决对机器的配置。在训练的过程中,Turi Create会打印出每一步执行的动作,如下:


……

最终我们得到的正确率为:0.986954749287,但看这个结果还不错。并且已经导出了mymodel.model和支持Core ML 的 CatsAndDogs.mlmodel

3. 移植模型到iOS应用程序

有了CatsAndDogs.mlmodel模型文件后,我们就可以将其移植到iOS应用程序中了。关于如何集成,可参考Apple官方的图像识别例子,这里不再陈述:

总结

本篇内容对Apple公开的Turi Create机器学习框架进行了简单的介绍,并实践了Turi Create在图像识别方面的一些基本用法。Turi Create不仅仅能用于图像识别,在其他方面能有很好的表现,目前Turi Create还刚开源不久,相信在社区的力量下,会带来不同的功能和体验,拭目以待。

锐眼洞察 | 数据管理的未来:一场工业革命(翻译)

作者:Amber Lee Dennis

原文:The Future of Data Management: An Evolution of the Industry

译者:TalkingData数据工程师 孙强

本译文禁止商用,转载请注明作者与来源!

DATAVERSITY最近采访了MapR创始人John Schroeder,以了解他对数据管理领域未来发展方向的想法。 Schroeder在企业软件领域拥有超过20年的经验,专注于数据库管理和商业智能。 这样的背景使Schroeder洞察到数据管理的世界如何随着时间的推移而变化,以及现在发生的主要趋势。

人工智能的重振

人工智能(AI)现在已经回到了主流讨论中,Schroeder说,它是涵盖了机器智能、机器学习、神经网络和认知计算的一个热门词汇。

人工智能将被快速采用,使用在大型数据集上部署的简单算法来解决重复的自动化任务。他说,与传统平台相比, “谷歌已经提到简单的算法,经常执行大数据集比使用更小集的其他方法产生更好的结果。”

他补充说:“使用现代和传统的处理模式,可以处理三个V的水平可伸缩平台:速度,种类和数量可以提供10-20倍的成本效率。”我们将看到应用人工智能 到高容量的重复性任务“。

Schroeder展示了一种简单的AI使用方法,它将特定的客户购物属性分组到聚簇。 他说:“聚类是非常基本的人工智能算法之一,因为一旦你可以聚集项,那么你可以预测一些行为。 现在可以调整大量数据的算法,以便聚簇变得更紧密、更快速,这使得数据保持新鲜和相关。 当单个聚簇中的点之间的标准偏差尽可能紧时,可以在整个聚簇中进行假设,并向该聚簇内的其他客户提供报价和服务,并具有合理的成功预期。

当将聚簇建立到像亚马逊或沃尔玛这样的在线零售商的运营系统时,影响行为的潜力是显著的。 他说,在一个静态定价的在线目录中,购物车的放弃率是“走到尽头”。 但是通过使用人工智能,商店可以推荐其他产品,同时实时搜索具有竞争力的价格,动态调整价格,提供店内优惠券和价格保证,让客户感觉到自己得到了最好的产品价格可用。

“这是世界的速度。 他说:“客户在切换到另一家公司之前,要实时向每一位用户实时提供个人信息。”

大数据治理vs竞争优势

“治理与数据价值”的拔河将从前沿向中心移动。 企业拥有大量有关其客户和合作伙伴的信息,现在正面临着法规遵从所需的数据治理与免费使用数据以提供业务价值,同时避免破坏性数据泄漏或违规行为之间的拉锯战。

Schroeder表示,主数据管理(MDM)是一个大问题,一段时间内,这是一个很大的问题。 对于任何组织来说,“跟上治理,血统,安全和访问”是非常非常非常困难的,尤其是在扩大组织中使用的数据量的时候。 他说,更聪明的组织正在问:“我们的数据的哪一部分必须被管理和遵从,还有其他哪些数据源不需要这些? 所以它可以让他们摆脱世界上所有的MDM的老鼠洞。”

“如果我说:’你今天晚上为什么不回家去,把你家里每件物品的Excel表格都打上电子表格,然后记录下任何人接触,使用或吃的东西’,你什么都做不了,对不对? 所以你不得不说,有人吃了香蕉,我得去更新数据库。“

他说,领先的组织将在受管制和非受管制用例之间应用数据管理。 受管制的用例需要数据治理,数据质量和数据沿袭,因此,监管机构可以通过对原始来源的所有转换来报告和跟踪数据。 这是强制性的和必要的,但是对非实时数据以及结构化和非结构化数据混合产生更有效的结果的非监管用例进行限制。

公司专注于数据湖泊,而不是沼泽

组织正在从“构建它,其他的都会跟来”的数据湖方法转向实现业务驱动的数据方法。 Schroeder说,使用案例导向驱动了分析和操作的结合。

一些公司梦想有一个数据湖,所有的事情都是在“一个集中的,安全的,全面管理的地方收集的,任何部门都可以随时随地访问”,Schroeder说。 这听起来很有吸引力,但是往往会导致数据沼泽,无法满足实时和操作用例要求,最终看起来更像是重建的数据仓库。

事实上,今天的世界发展速度更快。

Schroeder表示,为了与当今这个快速发展的世界展开竞争,企业需要分析和运营能力来解决客户的需求,并在个人层面实时处理设备与设备的接口。

“电子商务网站必须实时提供个性化的建议和价格检查。 医疗机构必须处理有效的索赔,并通过将分析与操作系统相结合来阻止欺诈索赔。 媒体公司正在通过机顶盒对内容进行个性化处理。 汽车制造商和乘坐分享公司正在与汽车和司机进行大规模的互动。“
有一个预定义的业务用例是不够的。 这个企业必须“足够有远见,以至于能够考虑接下来的几个用例,所以他们不想仅仅为第一个用例服务就把自己逼到一个角落”。

他预测,提前定义用例的企业将会是最成功的,因为“客户在表达需求方面做得更好,他们知道价值会是什么”,这与广义的“构建它,他们会来”的想法相反 。

提供这些用例需要一个敏捷平台,可以提供分析和运营处理,以增加从后台分析到前台运营的其他用例的价值。 组织将超越“提问”方法,构建推动初始和长期的商业价值。

数据敏捷性区分赢家和输家

Schroeder表示,处理和分析模型的发展将提供与DevOps类似的灵活性,因为组织认识到数据敏捷性(理解数据和采取业务行动的能力)是竞争优势的来源。

“公司可能会犯的错误是实施一个单一的方法。 他们会说,’我们真正需要的是能够做Spark处理。 所以我们要用一种只能做Spark的技术来做到这一点,然后他们在三个月的时间里就会说:’好了,现在我们必须把这个显示给很多用户,所以我们 需要做全球信息传递[但是]我们部署的平台不会这样做。 我们现在干什么?

与其引入另一种消息传递技术,并试图找到一种在Spark和全球消息传递之间传递数据的方法,然后设置访问控制和安全角色等等,企业可以使用技术使其更加敏捷, 而不是陷入一个特定的平台,他说。

“敏捷处理模型的出现将使相同的数据实例支持多种用途:批量分析,交互式分析,全局消息传递,数据库和基于文件的模型。 当单个数据实例可以支持更广泛的工具集时,分析模型更加敏捷。 最终的结果是支持最广泛的处理和分析模型的敏捷开发和应用程序平台。”

区块链转换选择金融服务应用程序

Schroeder表示:“金融服务中将出现选择性的转型用例,这些用例对数据存储和交易的处理方式有着广泛的影响。 他说:“区块链为消费者提供了明显的效率。 因为客户不必等待SWIFT交易,也不必担心中央数据中心泄露的影响。

Don Tapscott与Blockchain Revolution的合伙人Alex Tapscott在一篇名为“区块链将改变你的生活”的文章中写道:

“大银行和一些政府正在实施区块链作为分布式账本来革新信息存储和交易的发生方式。 他们的目标是值得赞美的 – 速度快,成本低,安全性好,错误少,消除了中心点和失败点。”

Schroeder继续说,作为一个信任协议,区块链提供了“一个全球性的分布式账簿,改变了数据存储和交易的处理方式。”由于它运行在遍布全球的计算机上,Tapscott补充道。

“没有中央数据库可以破解。 区块链是公开的:任何人都可以随时查看,因为它驻留在网络上,而不是在一个负责审核交易和保存记录的机构内。

事务存储在块中,每块指向前面的块,块都打上了时间戳,数据存储在一个不能改变的格式中,Schroeder说。 “对于企业来说,区块链提供了节约成本和增强竞争优势的机会。”

机器学习最大化微服务影响

数据管理将看到机器学习和微服务整合的增加,他说。 先前的微服务部署集中在轻量级服务上,那些已经包含了机器学习,通常仅限于应用于窄带数据流的“快速数据”集成,Schroeder说:“我们将看到一个发展转向利用大数据的有状态应用程序,并且使用机器学习方法,这种方法使用了大量的历史数据,以更好地了解新到达的流数据的上下文。”

锐眼洞察 | 大规模数据管理系统Data Tamer介绍(翻译)

作者:Michael Stonebraker、Daniel Bruckner、Ihab F. Ilyas、George Beskales、Mitch Cherniack、Stan Zdonik、Alexander Pagan、Shan Xu

原文:Data Curation at Scale: The Data Tamer System

译者:TalkingData数据产品经理 张雪渊

本译文禁止商用,转载请注明来源与译者!

注:

本文翻译自MIT关于Data Tamer的一篇论文,详细信息可查看

摘要

数据管理是发现兴趣数据源,清理、转换新的数据,在语义上将其与其他本地数据源进行整合,并删除重复数据的行为。现在有很多研究内容是针对数据管理的各个组成部分(特别是数据集成和重复数据删除)。但是,甚少有人将所有数据管理组件集成到一个端到端系统。

另外,以前大部分研究都不会扩展到我们在这个领域发现问题的规模。例如,一个Web聚合器需要管理80,000个URL,一个生物技术公司则需要管理8000个电子表格。在这样的规模下,数据管理不可能是手动(人工)工作,而机器学习方法,人工只在必要时给予协助。

本文介绍Data Tamer,是我们在麻省理工(M.I.T)、布兰代斯(Brandeis)、卡塔尔计算研究所(QCRI)建立的端到端管理系统。Data Tamer将一系列数据源添加到随时间构建的复合结构中。新数据源按照机器学习算法以执行属性标识,将属性分组到表格,转换输入数据及重复数据删除。 必要时可寻求人工帮助。此外,Data Tamer还包含数据可视化组件,个人可以随意检查数据来源或者手动指定数据转换过程。

我们已经在三个真实世界的企业管理问题上运行了Data Tamer,结果显示,相比当前使用的其他生产软件,Data Tamer降低了大约90%的管理成本。

1. 介

在数据集成方面已经有相当多的,特别是在提取,转换和加载(ETL)系统,数据联邦,数据清理,数据规格集成和实体重复数据删除。然而,我们相信未来系统将需要的但是现有方法(系统)通常缺乏以下四个特征:

  • 自动化的可扩展性

我们遇到的所有数据整合问题排除了以人为本的解决方案。下一代系统必将是自动化的算法系统,只有必要时才需要人的帮助。另外,机器学习的进步和统计技术的应用可以用来自动做出许多更简单的决定。

  • 数据清理

企业数据源不可避免地很脏。属性数据可能不正确,不准确或缺失。未来的问题需要自动化解决方案,只有在必要时才需要人工帮助。

  • 非程序员方向

当前提取,转换和加载(ETL)系统具有脚本语言适用于专业程序员。下一代问题要求非专业员工能够进行数据整合任务。

  • 数据一直增加

新数据源必须在未发现时逐步集成,数据整合任务从来没有完成的概念。

这四个问题应该在一个统一的架构中解决,我们称之为数据管理系统。 本文的目的是描述Data Tamer,基于上述需求所研发数据管理系统。 在第2节中,我们首先简要介绍Data Tamer设计要解决的三个示例数据管理问题。然后,第3节继续使用DataTamer实现的语义模型,接着在第4节中对系统的主要组件进行描述。最后,第五部分介绍了一系列关于现实世界的问题的实验。我们在第六部分总结了未来可能加强的部分。

2. 应用案

2.1 Web聚合器

这个聚合器集成了大约80,000个URL,收集有关“要做的事情”和事件的信息。事件包括讲座,音乐会和酒吧的现场音乐。“要做的事情”是指远足路线,气球游乐设施,雪地汽车出租等。层级目录概念被用来组织数据,所有的信息存储到这个结构中的某个层级。

从特定URL收集数据的决定是通过与本文不相关的手动和自动组合完成的。一旦决定,离岸“包装代工厂(etl数据处理工程师)”写代码从URL中提取数据。对于在给定的URL处发送的每个实体,封装器会输出一组键值对,例如(key1-name,value-1),(key2-name,value-2),::,(keyK -name,value-K)。不幸的是,源数据很少是web表,但通常在下拉菜单,文本字段等。 因此,网站封装是有价值的。

这个聚合器需要将这8万个数据源联合成一个语义上紧密的事实集合。80,000个数据源包含大约13M本地记录,大约有200K个本地属性名称。另外还有本地的信息可能不一致,重叠,有时不正确。因此,这个聚合器面临着一个困难的数据管理问题,他们使用一个特定的集合来解决这个问题和以人为本的技术。DataTamer的目的是以比现有解决方案更低的成本在这类问题上做得更好。

2.2 生物学

一家大型制药公司拥有8000名生物学家和化学家进行实验室实验。每个人维护一个“实验室笔记本”,通常是一个电子表格,记录他们的数据和观察结果。大多数科学家使用不同的技术和收集实验特定的数据,如浓度和密度。然而,这8000名科学家中的一些可能正在研究相同的反应,或者从同一个分子开始。整合这8000个来源是非常有价值的,所以所有的科学家都可以更好地了解所有实验研究的反应结果。

不幸的是,属性名称没有标准,没有计量单位的标准,甚至没有为文本语言标准(英语,德语等)。

这8000个电子表格总共包含大约1百万行,100000个属性名称。再次申明,问题的规模使当前的数据集成工具过于昂贵。Data Tamer的目标是比目前的软件以更低的成本做更好的工作。

2.3 健康服务应

Verisk Health为索赔记录进行数据集成,共收集了300家保险公司。他们已经为这些资源手动构建了一个全局数据格式,并正在寻找用更多的自动化手段取代他们的手动流程。 另外,他们的综合数据库包含2000万条记录,他们希望统一医疗提供者的索赔数据。 换句话说,他们希望汇总所有的索赔记录,按提供者分组。实际上,他们想要使用域的一个子集重复数据库。他们目前正在通过大量的人工干预来完成这项任务,并寻找一种成本更低,自动化程度更高的解决方案。DataTamer的目的是以比现有解决方案更低的成本获得更好的结果。

3. Data Tamer语义定义

3.1 角色

Data Tamer设置了以下人员角色:

  • Data Tamer 数据管理员(DTA)

这个角色类似于传统的数据库管理员。因此,DTA负责将角色分配给其他人,并决定在数据管理过程中采取什么行动。具体而言,DTA指定DataTamer必须设法收集的数据源。

  • 领域专家(DE)

这些领域专家可以被要求回答在数据管理过程中出现的问题。每个DE都有一个或多个专业领域,他们被组织成一个创新的众包组织,这将在4.3节中解释。

3.2 Sites and Schemas

Data Tamer假设DTA指定的网站由URL或文件名称。每个网站被假定为一个集合记录,每个记录包含一个或多个键值对。上游封装可能需要构造这种格式从网站实际存储的内容 在目前的时间,Data Tamer并不关注如何降低这类包装的成本。

Data Tamer假定每个本地数据源都有关于一个实体的信息。 因此,如果源是多方面的,则必须使用两个或更多的包装来确保每个源包含仅关于一个实体的数据。 如果每个站点都描述一个不同的实体,那么就没有整合的问题。 因此,Data Tamer的目标是将本地站点分为描述同一个实体的类。 在版本1中,没有必要确定实体之间的关系(例如可能存在于RDBMS中的外键)或者处理其他完整性约束。这些扩展留待将来研究。

对于每一类实体,都有三种可能的信息等级。这取决于数据管理是以自上而下的方式进行还是以自下而上的方式进行。在自上而下的模式中,DTA具有关于他试图实现的模式的信息。 因此,目标是部分或完全指定的。 在自下而上的模式中,这样的全球知识不见了,全球模式被拼凑在一起 从当地的数据来源,可能提示从DTA提供。 任何一个模型都可以用于某个特定的类别的事实导致了以下三个层次的信息。、

  • 等级3:完整的知识

在这种情况下,DTA使用自顶向下的方法给定类实体的完整全局数据规格。通常,DTA还将每个本地数据源映射到特定类别。 但是,如果不这样做,Data Tamer将包含自动执行此任务的算法。尽管Verisk应用程序提供了这一级别的知识,但我们发现级别3是在实践中相当罕见。

  • 等级2:部分信息可用

使用自上而下或自下而上的方法,可能会有部分信息可用。某些类别可能存在已知的特定属性的实体。 Web聚合器就是这种情况,因为它需要在其分类层次结构中为每个节点提供特定的属性。或者,可能有模板可用。模板是可能在多个实体类别中的一个中一起出现的属性的集合。例如,美国地址的模板可能是(数字,街道,城市,州,邮政编码)。请注意,模板只是一个复合类型,即通常一起出现的一组属性。 模板可以由DTA指定为“提示”,或者可以通过机器学习来识别如第4节所述。

  • 等级1:没有可用的知识

在这种情况下,类的结构信息和自下而上的整合都是不知道的。这种细节可能是真实的,例如,关于随机的HTML表格,这些表格是从网上抓取的。这就是像Web表格这样的系统的世界。虽然这是生物学应用的知识水平,但我们认为在实践中也是不常见的。

3.3 其他信息

此外,在许多领域,还有标准字典,这些字典应该被Data Tamer使用。字典是一些数据类型的数据值列表,可以填充某些数据源中的属性。 例如,美国有50个州,美国约有3万个城市等。 字典用于指定这些属性的名称和合法值。 有这么多的词典DTA希望指定。

字典被推广到权威的表格。 这些是已知具有正确信息的辅助数据表。 例如,(城市名称,机场名称,机场代码)列表可以是具有三列的权威表格。

此外,数据驯服容纳的同义词表单XXX是YYY。 例如,“工资”是“工资”或“镇“是一个”城市“。 在未来的版本中,我们可以扩展这个能力转化为更一般的本体论。

3.4 管理控制台和Data Tamer操作

网站,类别,模板,词典,权威表格,同义词可以通过一个DATA管理控制台,这是一个相当传统的图形用户界面。

这个控制台的一部分专门用于允许DTA指定Data Tamer执行的操作。 这些行动是:

  • 获取新的数据源,并将传入的数据存储到Postgres数据库中。在当前版本的Data Tamer,这个数据库存在于一个节点上;然而,把这个数据库分割到的多个节点和并行化要描述的算法是非常简单的。
  • 在数据源上执行属性标识,如4.1节所述。
  • 在数据源上执行实体合并,如第4.2节所述。

在属性标识或实体合并过程中的任何时候,Data Tamer都可以请求DE的人员帮助,如4.3节所述。 最后,如第4.4节所述,任何人都可以使用Data Tamer特定接口直观地显示任何数据集。我们可以切换到更复杂的Data Tamer可视化系统[1],从而在那个系统里支持可能的手动转换这个问题将在4.4节中进一步讨论。

在任何时候,DTA可以要求在所有站点上重新进行属性标识和/或实体合并。显然,由于Data Tamer系统中存在更多的站点,这是一个耗时的任务。 但是,更好的决定可能是基于存在的更大量的信息而可用。 因此,如果上面没有指定source-i或source-j,则Data Tamer应该运行要在所有数据源上描述的算法。

最后,Data Tamer保留了所有执行操作的历史记录,DTA可以将策展过程向后回溯到任何过去的历史点,这是通过使用不覆盖更新策略来实现的。

3.5 训练数

在我们与有企业数据管理问题的人的对话中,我们看到了Data Tamer使用两种不同的情况。 第一个适用于知识水平最低或没有先进知识的情况(即第一级和第二级以上)。 在这种情况下,Data Tamer只是最开始使用。最初是非常愚蠢的,必须定期向人们寻求帮助。 后来它变得越来越聪明,所以要求的次数越来越少。而且,由于增加了知识的好处,往往在已处理的网站上返回并运行属性标识和实体解析是很有意义的,可能更好地做出决定。 增加的知识。 因此,训练数据是由Data Tamer的众包组件随着时间的推移而积累起来。

第二个场景涉及更多信息已知的应用程序(上面的第3级)。 在这种情况下,我们观察到现实世界的应用程序通常有可用的培训数据。 具体而言,它们具有“已知重复”的实体和/或属性的集合。换句话说,它们具有已知匹配的本地标识符对的集合。不能保证他们找到了所有的匹配规则。因此,他们提供了一个匹配的属性名称或实体的集合,没有误报。我们已经注意到,提供虚假肯定的危险性在真实问题上很高,所以真实世界的DTA非常谨慎。 因此,他们提供手工收集已知的匹配。

在第一种情况下,我们开始运行Data Tamer系统,适当的时候请求人帮忙。 在第二情景,我们利用已知的重复作为初始训练数据。 我们在第4.2节中提供更多细节。

3.6 数据源更新

最后,一些数据源可能是动态的,并不断更新。在这种情况下,Data Tamer可以创建之前数据源-k的新快照。在这种情况下重新处理数据源是有意义的,因为信息已经改变了。在版本1中,没有接受实时数据反馈的概念。 这样的扩展留给将来的版本。

4. Data Tamer

Data Tamer的架构图如图1所示。图中显示的是管理控制台和规格集成的组件,实体合并,DE 支持和人的转变。 这四个子系统在本节中描述。在这里大部分描述的功能目前能够正常运行运作。

4.1 数据格集成

模式集成中的基本内部循环是从数据源中提取一个属性Ai,并以成对的方式将其与其他属性的集合进行比较。 对于每一对,我们都可以使用属性名称和值的集合。 我们的方法是使用一组算法,我们称为专家,每个算法返回0到1之间的分数。之后,将这些分数与一组权重进行合并以产生合成值。 Data Tamer配备了以下四位内置专家,可以通过简单的API插入其他专家。

  • Expert-1 使用三角余弦相似度对属性名进行模糊字符串比较。
  • Expert-2 将一列数据视为一个文档,用一个标准的全文分析器标记其值。然后,测量列之间的TF-IDF余弦相似度。
  • Expert-3 这位专家使用一种称为最小描述长度(MDL)的方法,使用类似于Jaccard相似性的度量来比较两个属性。 这个度量计算了两列数据交集的大小与它们并集大小的比值。 由于它依赖于属性之间的精确匹配值,因此非常适合分类和有限域数据。
  • Expert-4 最终专家计算韦尔奇的一对包含数值的列的t检验。 给定列的均值和方差,t检验给出列从相同分布得出的概率。

要比较的属性取决于Data Tamer可用的信息级别,如下一节所述。 此外,DTA可以为建议的映射设置一个阈值,从而可以自动采用高度的信任建议,而低的信任映射进入人员审查队列。

4.1.1 属性映射

Data Tamer将要考虑的属性映射取决于手头有哪些可用于处理问题的信息,如3.2节所述。 根据正在检查的级别,使用不同的策略。

  • level3 在这种情况下,Data Tamer知道全局模式,即所有类的实体及其相关的属性。有时,Data Tamer被告知传入数据源所属的类。 在这种情况下,它只能匹配两个属性的集合。 运行规格集成组件的结果是传入属性与全局模式中类的元素的配对。 如果 Data Tamer不确定配对,即匹配得分小于阈值,那么如4.3节所述涉及人。 在其他情况下,必须确定传入实体所属的类别。 在这种情况下,Data Tamer在所有类上运行上述算法,并计算属性的总计匹配分数。 然后选择最好的一个。当然,如果没有足够高的分数,或者如果有两个分数相似的类,那么人就参与决策过程。 应该注意每个传入的属性 该算法到目前为止所看到的属性数量是线性的。 因此,总的复杂度是二次的。 本节稍后讨论可伸缩性问题。
  • level2在这种情况下,Data Tamer可以确定属性的一个子集。 如果是这样,则运行上述算法。如果属性不匹配,则将其添加到模式中 DTA指定的类或算法标识的类。未来的数据源可以匹配更大的属性集合。 复杂性与之相同 3级。 如果模板可用,则考虑任何模板中的所有属性的集合S,以及任何字典名称和同义词.Data Tamer使用两遍算法。 首先,它将所有传入的属性与S的成员进行匹配,只保留得分最高的一个。 在第二遍中,如果其他属性与所选模板中的其他属性相匹配,则将传入属性的分数向上调整。然后,如果阈值高于阈值,则保持匹配。 此外,Data Tamer还会监视传入站点是否收集通常一起出现的属性。 如果是这样,它会自动将集合定义为新模板,并将新成员添加到模板字典中。
  • level1每个传入的属性都与以前看到的所有属性,同义词和词典进行比较。 对于所有级别来说,最坏情况的复杂度是属性总数的二次方。 第一个专家在成对的属性上运行起来非常便宜,因为它不会查看数据。另外三个专家必须检查数据列,而且要昂贵得多。 到目前为止,我们的属性识别算法的运行时间并不是一个惊人的,因为它们运行是“离线”,我们的第一个改进是将它们并行在一个计算机网络的多个节点上,方法是复制Postgres数据库,然后”分割“传入的属性。 这将产生几个数量级的改善。 之后,进一步的运行时间改进将需要两步处理,其中一个属性的子集具有便宜的第一通道和更昂贵的第二通道。 这种两步法将引入额外的专家,其运行时间与属性数据集的大小无关。现在的第一个专家比较属性名称就是一个例子。其他专家将根据属性元数据或从属性数据派生的样本进行比较。可用的元数据包括类型和描述字符串等数据集中的显式字段。尽管明确的元数据可能不可用,但总是可以计算有用的属性属性并将其存储在统计表中。有用的衍生元数据包括计数以及不同值的直方图,推断的数据类型等等。这些统计数据对于为其他专家构建样本也非常有用,例如,计算两个属性的最常用k值的Jaccard相似度的专家。这些首先通过的专家将作为高昂的通行证来处理更昂贵的二次通行证,并节省浪费的时间,几乎没有共同之处。

4.2 实体合并

实体合并有效地建模为重复消除。目标是找到足够相似的实体被认为是重复的。这个模块收到一个集合的记录,R1,: ::,Rn,来自一个或多个本地数据来源增量到达。我们假设这个属性 以前已经进行过鉴定。因此,所有记录具有来自一组属性的属性值A1,:::,Am。一般来说,数据可能会很嘈杂和稀疏的。

重复数据删除过程分为多个任务,我们在下面展示。

4.2.1 导训练过

最初,系统对重复数据删除规则了解不多。我们从已知重复和非重复的训练集中学习重复数据删除规则。我们假设重复的元组通常至少有一个具有相似值的属性。我们获得一组元组对,这些元组对可能会被重复呈现给专家用户,如下所示。设Simi表示属性Ai的值的相似性度量。对于每个属性Ai,我们将Simi的范围划分为若干个等宽分类,并且对于每个分类我们选择与属于这个分类的Simi的元组对的样本。然后将获得的对按属性相似性排序,然后呈现给专家用户进行标记。由于所呈现的对按照属性相似度从大到小的顺序排列,因此专家可以选择停止低于某一相似性阈值的标记对,并将剩余的未看见的对声明为不重复。我们用TP表示被标记为重复的一组对,而我们 用TN表示标记为非重复的一组对。

为了增加候选对中发现的重复项的预期数量,我们只考虑在获得候选项(例如标题,地址和电话)时具有相对大量不同值的属性,同时丢弃其他不太显着的属性 例如城市和州)。 原因是非独特属性之间的高度相似性不会增加重复的机会。

培训数据的另一个重要来源是已知的重复数据,可以在数据集中使用,如前所述。另外,Web聚合器还提供了几个手工制定的规则,用于高精度地识别重复数据。 再次,这是已知重复的来源。 我们使用现有的信息作为正面的训练数据(即TP)。 负面训练数据(TN)更容易找到,因为非重复数据非常频繁。 给定随机的一组元组对,专家用户只需要排除任何高度相似的非匹配对,导致负面的训练数据(TN)。

4.2.2 记录分类

记录分为多个类别,每个类别代表一组具有相似非空属性和相似属性值的同质实体。 那么可能会出现这种情况,例如如果西部的滑雪场看起来不像东部的滑雪场。 例如,两类记录中的垂直落差和基础高程显然是不同的。另外,由于强风的关闭可能通常报告为一个类,而不是另一个。记录分类的好处是双重的:首先,通过学习每个类别特定的重复数据删除规则,我们实现更高质量的规则,可以准确地检测到重复的元组。 其次,我们使用元组分类来减少重复检测算法中需要考虑的元组对的数量。 性能增益与当前用于大数据集中实体分辨率的阻塞技术(例如,[7,14])所获得的性能增益类似。

记录的分类可以使用分类器来完成。 在Data Tamer中,分类分两步实现。在第一步中,我们获得一组代表每个类别的代表性特征。 我们通过对可用来源的元组样本进行聚类来获得这些特征。 我们使用基于质心的算法,如k-means ++ [6]。 类别的数量是通过在引导阶段(第4.2.1节)获得的训练数据TP中的重复数据来确定的。

在第二步中,我们将每个元组分配到最近的类别(w.r.t.到一些距离函数,如余弦相似度)。 虽然类似于实现的性能增益中的阻塞,但这种两阶段分类与先前提出的分块算法是基本不同的,通常通过分簇来执行,索引或排序整个数据集是非常昂贵的操作,我们在分类算法中避免这些操作。

新数据集可用时,元组的分类可能会随时间而改变。我们通过添加新类别和/或在需要时合并/拆分现有类别来维护分类。例如,考虑与其他类别相比,给定类别的半径(由类别的代表性特征与类别的成员之间的最大距离测量)变得非常大的情况。 在这种情况下,我们分裂了 类别分为两个或更多个较小的类别。 有效的增量分类是我们目前的研究方向之一。

4.2.3 重复数据规则

重复数据删除规则分为两种类型:(1)属性相似性的截止阈值,它帮助修剪大量的元组对,如4.2.4节所示; 和(2)重复和非重复元组对的属性相似度的概率分布。我们从收集到的训练数据TP(这样本)和TN(负样本)中学习这些规则。 例如,一个规则表明具有相似的“Title”值的两个元组的概率是相似的,因为它们是重复的。 另一个规则表明,在重复项中具有“State”属性的不同值几乎为零。请注意,学习模块将选择忽略一些对学习重复概率无用的属性(例如,由网页聚合器收集的数据中的“用户评分”)。而且,由于它们在语义上是不同的,因此重复数据删除规则区分了缺失的属性值和不相似的属性值,我们分别了解每个事件的概率。

我们使用一个朴素贝叶斯分类器来获得元组对的属性之间相似性的概率。这个分类器聚合了所有属性的条件概率,以获得重复的边际概率(假设条件对属性的独立性)。

4.2.4 相似度

两个数据集之间的相似性连接的目标是检索所有重复的元组对。一旦获得了重复数据删除规则,如4.2.3节所示,我们执行相似性连接如下。我们获得所有候选元组对,其中每一对属于同一类别,并且至少一个属性具有超过其学习阈值的相似度。然后,我们计算候选对的属性相似度,并根据4.2.3节中学到的分类器使用这些相似性来识别重复记录。相似性连接是逐步执行的,以适应不断添加的新数据源。对于每个新源,我们首先对新源中的元组进行分类,对新元组执行自相似性连接,并在新源中的元组和新元组中进行元组之间的相似性连接。当增加新的训练数据是因为要求人类帮助解决不明确的情况时,我们更新重复数据删除规则,有效识别哪些元组受到这些变化的影响并重新分类。

4.2.5 记录聚合和合

一旦我们获得被认为是重复的元组对的列表,我们需要获得元组的聚类,使得每个聚类代表不同的真实世界实体。对元组进行聚类可以确保最终的重复数据删除结果是可传递的(否则,重复数据删除结果将不一致,例如将(t1; t2)和(t2; t3)声明为重复对,而声明(t1; t3)是不重复的。 我们依赖于[13]中引入的相关聚类算法的修改版本。给定一个相似度图,其节点表示元组,并且其边连接重复的元组对,我们执行如下聚类。该算法以所有单个聚类开始,并且重复合并随机选择的具有高于某个阈值的“连接强度”的聚类。我们将两个聚类之间的连接强度量化为跨越两个聚类的边缘的数量 即,两个群集的笛卡尔乘积)。当没有更多的集群可以被合并时,该算法终止。

当基础相似性图变化时(即,新的边和/或现有的边被删除),我们更新聚类如下。 我们确定图中所有与任何修改边相关的节点。 包含任何这些节点的簇被分割成单个簇。然后,我们在新的单个簇上重新应用相同的合并操作。

每个群集中的元组使用用户定义的规则进行整合。 首先丢弃空值,然后使用标准聚合方法(如Most-Frequent,Average,Median和Longest-String)来组合每个集群中元组的属性值。

4.3人机界面

在属性识别阶段和实体整合阶段,DTA可以要求DE(领域专家)提供输入。在属性标识的情况下,任务是确定两个属性是否相同。 在实体解决的情况下,任务是确定两个实体是否重复。 Data Tamer处理的两种情况将在后面两节中介绍

4.3.1 模式

如果需要人工干预的任务很少,或者只有几个DE,那么DTA可以手动将人工任务分配给DE。他这样做是通过使用一系列规则来规定应该发给特定个人的问题类别。或者,他可以手动分配任务。 在这两种情况下,人工请求的路由由DTA以最少的基础设施完成。

但是,如果问题很多,或者由于需要时间的差异,或者如果有很多DE来处理大量的问题,那么就应该采用更复杂的人群采购模式。 Data Tamer实现了下一节讨论的模型。

4.3.2 众包模式

大规模的数据管理可能需要招募更多专业知识较少的领域专家(DE)来帮助解决工作量。这些 DE可以被要求完成“简单”的任务,或者可以被众包来产生更高的正确性的结果,而不是任何一个人都可以假设的结果。 但是,大量多样化的DE人口需要解决以下几个问题:

  • 响应质量的确定。 当一项需要人工干预的任务被转交给一位专家时,可以认为所得出的答案是准确的。 但是一个由多个DE来解决的任务 可变的专业知识可能会导致质量变化的多重反应。 因此,由一组DE返回的一组不同的响应应该伴随着一个概率分布,它反映了每个响应中的总体置信度是正确的。
  • DE领域专业知识的确定。 对任务的每一个不同的反应的意见必须是那些给出这个回答的DE的给定任务领域的专业评级的函数。 这对如何表征和确定领域专业知识带来了挑战。
  • 有用和及时的DE响应的动机。 考虑到DE人口的多样性,个人DE的反应和反应会有所不同。 这里的问题在于如何鼓励DE成为优秀的公民来应对任务。
  • DE工作量的管理。 DE不仅具有变量领域的专业知识,而且具有可变的可用性回应任务。 因此,管理工作量是必要的,因为考虑到工作量的限制,使得DEs既没有负担过重,也没有充分利用。

我们已经建立了一个工具(Data Tamer Exchange或DTX),它作为一个基于市场的专家交换,帮助将需要人力投入的任务与可以提供它的个人或众包的DE相匹配。 DTX假定属性标识或实体解析问题的集合,必须经过验证或驳斥。 对于每个这样的任务,该工具显示一个DTA有多少个DE可用 与任务域相关联的某些特定专家类中的每一个,以及响应的成本和质量将如何根据每个类的多少DE来响应。

DTX的主要特点如下:

  • DE和响应的基于信念的度量。

DTX为每个DE都保留了一个基于信心的专业评估向量 在一组指定的领域中的每一个领域都具有专业知识的程度 由DTA。每个评级是介于0和1之间的值,表示DE对关联域中的任务产生正确响应的概率。DE对特定领域的专业评级是由其他更专业的DE和来自请求应答的DTA在该领域的每个回答所作的评估计算出来的。 使用类似的基于信度的度量来度量响应的质量(即响应正确的概率)。众包产生了一系列响应(TRUE或FALSE),并且使用贝叶斯证据收集(Bayesian Evidence Gathering)从投票选择的响应者的专业评级中收集每个投票的质量评级。更具体地,给出具有专业知识的n个响应者的问题 等级〜E和响应〜R,给定响应b的累积置信度为:

使得B和B是分别表示事件的随机变量,其中响应b分别是正确的和不正确的答案,或者是随机变量(X),使得上面的子产品是正确响应者正确的组合概率(Ri = X),不正确的响应者不正确(Ri != X)。

  • 专家类。

DTX根据DE在该领域的专业知识评级将DEs动态聚类为领域特定的专家类。例如,一个给定领域中最专业的DE可能被分配到专家级别#1的专业评级为0.9或更高。 当一个任务被提交给 DTX,工具通过呈现关于任务领域中的每个专家类别的统计信息,包括DE的数量,每个DE响应的成本(专家评级更高的类别,每个响应更多的类别)以及类别内的DE的最小专业评级。 在这个基础上,一个DTA决定每个级别,他将支付多少(如果有的话)个DE。

  • 对良好公民的经济激励。

DTX假定一个经济模型,由DE获得的回报是相称的与他的专家级。答复付款来自提供完成任务预算的DTA帐户。 系统向DE(与响应相同的速率)和DTA提供对DE响应评价的付款 (他们的工资被加到他们的预算中)。

  • 动态定价来管理工作量。

DTX动态调整每个响应所支付的价格 在每个专业水平,以鼓励选择 未被充分利用的DE和阻止选择 负担过重的DEs。

经济模式有助于解决大规模的两个问题:

1、鉴于可能会审查答复,DEs是激励 提供有用和及时的回应,以获得更高的专业评级,从而获得更高的薪酬。 2、鉴于DTA被分配了一个固定的预算来完成他们所有的任务,他们被激励尽可能少地花费在DE响应上。 通过鼓励DTA根据自己的困难对任务进行分类,并且征求最不专业(因此也是最便宜的)响应具有最低限度可接受的信心的响应,这有助于减轻专家DE的责任。

此外,对于评论的支付, 有助于确保信任评级的准确性 DE的专业知识和回应。

4.4

在任何时候,DTA或DE都可以调用我们的可视化 系统并将本地数据源传递到该系统。 它在屏幕上显示数据源(或源代码示例)。 人可以检查数据源的洞察力。

我们可能会将可视化系统切换到Data Wrangler访问他们的提取,转换和加载(ETL)运营。 这样一个Data Tamer用户可以手动应用Data Wrangler转换并转换数据类型和格式。 在这种情况下,我们可以记住应用转换并将其转换为数据图类型。 如果我们看到未来的数据类型,我们可以申请自动转换。 允许DTA “跟踪”的数据,我们总是采用一个不覆盖更新Postgres数据库中的数据策略。

或者,我们可以实现一个Data Tamer特定的可视化界面。通过这种方式,屏幕组件可以根据数据控制器的需求进行调整。 例如,实体合并系统想要显示可能的匹配簇和模式匹配器想要显示列来自可能匹配感兴趣属性的多个本地数据源。 Data Wrangler中不包含任何功能。

5. 实验验证

我们在网络使用的数据上运行Data Tamer系统在第2节中描述的聚合器。对少于50个人工标记的来源进行适度的培训后,我们的自动系统在90%的时间里成功地识别了正确的属性映射。整体成功取决于个人专家的结果。在80%的时间内,属性名称匹配成功,MDL为65%,模糊值匹配为55%。 由于汇总者的数字列(邮政编码和纬度/经度)很少,T检验专家只提供少于6%的属性的结果,但其结果在65%的案例中是正确的。 专家互相恭维:至少有一位专家为95%的属性确定了正确的映射。

聚合器 Data Tamer
总记录数 146690 146690
重复数据 7668 180445
共同重复数据 5437 5437
所有的重复数据(估计) 182453 182453
准确度 97% 100%
召回率 4% 98.9%

图2:Web聚合器数据实体合并的质量结果

我们使用一套评估我们的实体合并模块的50个数据源。 平均而言,每个数据源都包含 4000条记录,需要160秒才能进行重复数据删除并集成到中央数据库(使用一台机器)。 统计有关发现重复对在50数据源总结在图2中。我们比较了我们的结果到当前重复数据删除找到的重复对网络聚合器使用的算法。 总数数据源中的记录数是146690,Data Tamer报告了180445个重复对,而聚合者的算法只报告了7668个重复对。该聚合者报告的常见对的数量算法和Data Tamer者是5437。

我们假设两个算法均对是真实的重复。另外,我们假定这两个算法都没有报告是真实的非重复的。我们通过要求领域专家检查100对样本来评估剩余对(即一个算法报告的对,而不是另一个)的准确性。根据专家的反馈,90%的网络聚合器报告但是DataTamer 没有报告的是真实的重复,另外,所有的DataTamer 报告的重复,但是网络聚合器没有报告的数据也是真实的重复。因此,汇总者报告的真实重复(估计)数量为5437+(7668-5437)* 0.9 = 7444。报告的真实重复的数量 通过Data Tamer是5437 +(180445-5437)* 1.0 = 180445。数据集中真实重复的总数是5437+ (180445-5437)* 1.0 +(7668-5437)* 0.9 = 182453。Data Tamer的精度为180445/180445 = 100%,聚合器精度为7444/7668 = 97%。Data Tamer的召回率为180445/182453 = 98.9%,而聚合器召回率为7444/182453 = 4%。这些结果清楚地表明,我们的实体合并模块能够显着提高现有重复数据删除算法的召回率,同时保持相同的精确度水平。

我们还在2.2节讨论的生物学问题上运行了模式识别系统。Data Tamer成功映射了86%的属性。最后,我们在Verisk上运行了实体合并模块 医疗索赔数据集。 图3显示了成对记录对在成对相似性上的各种截止阈值的质量。我们将阈值范围[0,1]划分为10个等宽的子范围,并且从每个子范围获得15对的样本。我们依靠领域专家将抽样对分为真实重复和真实非重复。我们计算了每个相似性阈值(图3)的精度,召回率和F1-度量。 为了对这些结果进行透视,我们计算了Verisk使用的当前重复数据删除算法的准确性。 该算法的精度为12%,召回率为30%,F分数为17%。 另一方面,我们的算法在0.8的阈值处归档65%的F分数。

图片 1

图3:Verisk数据实体合并的质量结果

为了评估用户对我们众包交换的接受程度,我们正在对生物学数据进行两步评估之前提到。 该公司计划在他们的整个生物学问题上运行Data Tamer,拥有数百位专家作为他们的群体采购部分。作为第一步,他们想要做一个“空转”,以确保系统正常工作。 因此,他们要求33位领域专家参与系统的测试。 我们使用Data Tamer对其一部分集成问题执行模式映射。 为了验证Data Tamer的映射,我们使用DTX的专家工作者分配算法为33位专家分配了总共236个模式匹配任务。 在每个任务中,用户被要求将Data Tamer的建议匹配标记为True或False,如果是False,则建议替代匹配。 平均而言,每项任务被重复分配给2名专家。 这导致每个用户平均有7个任务分配。

在这个测试中没有给予用户经济激励,测试参与是自愿的。 在我们联系的33位专家中,有18位(54%)登录了系统。 每位登录用户都执行了所分配的任务。 总共,236项任务中有113个任务被完成,64%的任务至少收到一个响应。 自愿回应率低意味着需要通过经济激励对及时的回应给予奖励。完成指定的任务后,我们要求每个参与者以1到3分的来评估系统的可用性。用户给出的平均得分是2.6。

该公司正在在数百个领域专家的帮助下进行全面的系统测试。 我们计划按域分组数据源,然后将这些数据源中的每个用户的数据录入历史记录,来确定适当的初始域专业知识水平。 例如,如果用户是特定域中的数据源的创建者,那么在确定任务的正确答案时,该用户的响应可以比在那个域中没有输入数据的用户的响应更重。 我们期望在不久的将来报告这项研究。

6. 未来增的点

我们在本节讨论的增强功能,在论文的正文中我们指出了各种各样的未来要改进的部分。首先,我们期望并行化所有的Data Tamer算法,让它们可以运行在分裂和/或复制Postgres数据库或针对其中一个并行SQL DBMS。 鉴于许多算法都是通过SQL实现或用户自定义功能,这个扩展很简单。

格式集成模块可能需要加速通过使其成为如前所述的两步算法。 另外,我们还没有有效地考虑机制重做格式集成。由于我们的格式集成算法本质上是顺序敏感的,因此完全有可能在不同的结果下观察到不同的结果网站排序,因为这样一个有效的重做将是必需的特征。

我们的实体整合方案需要增量化,因此所有的子任务都可以在每个新的数据源被整合时和/或添加新的训练数据时被有效地运行。 而且,这个资源密集型模块的并行化将是特别理想的。

到目前为止,Data Tamer中唯一的数据清理操作是在实体合并系统中。 每当有多个记录对应一个实体时,我们都可以自动或在人工协助下生成一个干净的结果。虽然这是一项有价值的服务,但我们需要实施一个特定的清洁组件。 不幸的是,数据清理往往依靠异常值检测或清理的集合规则。 离群值不一定是错误;例如-99是通常用于指示数据丢失。 因此,找到一个在这种情况下,异常值相当于找到缺失值。另外,大多数清洁规则是非常复杂的,如果他们是有用。虽然很容易陈述年龄和薪水必须是非负面的,要说明这一点要困难得多。如果是冬天,靠近窗户的温度应该低于靠近散热孔的温度。 我们期望在不久的将来能够在这个组件上开展工作,并以用户在实践中实际发挥作用为指导。

同样,我们还没有系统地处理数据转换,例如转换本地数据相同的表示法,转换单位或将属性转换为通用含义(例如,不含销售税的价格)。我们的方法是维护Data Tamer数据类型的图表。每当用户练习可视化系统进行转换时,我们计划在图形中将其记为弧。 显然,用户应该能够用相应的代码添加弧来实现转换。 这个图可以用来在可视化引擎中建议转换。

7. 结论

本文介绍了Data Tamer的主要特点,即规格集成组件、实体整合组件、组织领域专家的众包模块及可视化组件。 将来,我们将添加更多的模块来执行数据清理和重复转换。

该系统已被证明对三个企业有价值。 目前,代码已被三家公司采用。

8. 参考资料

[1] http://vis.stanford.edu/wrangler/.
[2] http://www.compositesw.com/solutions/datafederation/.
[3] http://www.ibm.com/software/data/integration/.
[4] http://www.informatica.com/etl/.
[5] http://www.talend.com.
[6] D. Arthur and S. Vassilvitskii. k-means++: the advantages of careful seeding. In SODA, pages 1027–1035, 2007.
[7] R. Baxter, P. Christen, and T. Churches. A comparison of fast blocking methods for record linkage. ACM SIGKDD, 3:25–27, 2003.
[8] M. J. Cafarella, A. Y. Halevy, D. Z. Wang, E. Wu, and Y. Zhang. Webtables: exploring the power of tables on the web. PVLDB, 1(1):538–549, 2008.
[9] S. Chaudhuri, V. Ganti, and R. Motwani. Robust identification of fuzzy duplicates. In ICDE, pages 865–876, 2005.
[10] L. Chiticariu, M. A. Hern´andez, P. G. Kolaitis, and L. Popa. Semi-automatic schema integration in clio. In VLDB, pages 1326–1329, 2007.
[11] P. Christen and T. Churches. Febrl. freely extensible biomedical record linkage, http://datamining.anu.edu.au/projects.
[12] A. K. Elmagarmid, P. G. Ipeirotis, and V. S. Verykios. Duplicate record detection: A survey. IEEE Trans. Knowl. Data Eng., 19(1), 2007.
[13] C. Mathieu, O. Sankur, and W. Schudy. Online correlation clustering. In STACS, pages 573–584, 2010.
[14] A. McCallum, K. Nigam, and L. H. Ungar. Efficient clustering of high-dimensional data sets with application to reference matching. In KDD, pages 169–178, 2000.
[15] T. M. Mitchell. Machine learning. McGraw Hill series in computer science. McGraw-Hill, 1997.
[16] E. Rahm and P. A. Bernstein. A survey of approaches to automatic schema matching. VLDB J., 10(4):334–350, 2001.
[17] V. Raman and J. M. Hellerstein. Potter’s wheel: An interactive data cleaning system. In VLDB, pages 381–390, 2001.

锐眼洞察 | 脉冲神经网络——下一代的机器学习(翻译)

作者:Devin Soni

原文:Spiking Neural Networks, the Next Generation of Machine Learning

译者:TalkingData研发副总裁 阎志涛

本译文禁止商用,转载请注明来源与译者!

译者注: 现在的深度学习基本上是基于第二代神经网络的学习。第二代神经网络能够解决一些问题,不过离我们想要达到的未来还有很多的路要走,而已经有很多人在研究新一代的神经网络,也就是脉冲神经网络。让我们先对它有一个粗浅的了解。

每个对机器学习近期进展有所了解的人,都应该听说过目前用于机器学习的第二代人工神经网络。第二代人工神经网络通常是全连通的神经网络,它们输入连续的值,然后输出连续的值。 虽然其让我们在许多领域取得了突破性的进展,但其在生物学上并不是非常的准确,并没有模仿到我们大脑神经元的实际机制。 第三代神经网络——脉冲神经网络(spiking neural networks),旨在弥合神经科学与机器学习之间的鸿沟,使用接近真实的生物神经模型来进行计算。脉冲神经网络(SNN)与机器学习社区所了解的神经网络具有根本性的不同。SNN使用脉冲来进行操作,脉冲是在时间点上发生的离散的事件,而不是连续的值。脉冲的出现是由代表不同生物过程的微分方程决定的,其中最重要的是神经元的膜电位。当神经元的膜电位到达特定值的时候,脉冲会被触发,然后该神经元的值会被重置。最常见的模型是LIF(Leaky Integrate-and-fire)模型。另外,SNN通常是稀疏连接的,并且通过特殊的网络拓扑结构来实现。 乍一看起来,SNN似乎是一种倒退,我们现在的神经网络已经从连续的输出转变为了二元输出,并且这些脉冲训练不容易解释。
LIF模型的微分方程
脉冲发生时神经元的膜位
然而,脉冲训练给了我们更强大的处理时空数据的能力,而这些时空数据通常就是我们的真实世界的感官数据。 空间方面指的是神经元只与其本地的神经元相连接,因此它可以分别处理输入块的输入(类似于CNN使用过滤器一样)。 时间方面指的是脉冲训练是随着时间发生的,因此我们损失了二进制编码,但是获得了脉冲发生时间相关的信息。 三个神经元的脉冲训练
这使得我们可以非常自然的处理时间相关的数据而不需要引入RNN而带来复杂性。实际上已经证明,脉冲神经元从根本上来讲,是比传统的人工神经元更为强大的计算单元。
 
全脉冲神经网络
既然SNN理论上比第二代人工神经网络更为强大,我们自然会问为什么它们没有被广泛的使用呢?SNN目前的主要问题是如何训练。尽管我们有无监督的生物学习方法,比如Hebbian和STDP,但是还没有找到比第二代生成网络更为高效的有监督的SNN训练方法。由于脉冲训练是不可微分的,我们不能在SNN训练中使用梯度下降而不丢失脉冲的精确时间信息。因此,为了使得SNN能够应用于现实世界的任务,我们需要开发一个有效的监督学习方法。这是一个非常难的任务,因为我们需要了解人类大脑如何真正的进行学习,从而给定这些网络生物的现实性。 另外一个我们将要解决的问题是,在通用硬件上模拟SNN是非常的计算密集型的,因为它需要模拟不同的微分方程。但是类似于IBM的TrueNorth等模拟神经元的硬件通过特殊的模拟神经元的硬件可以来解决这个问题,它可以利用神经元脉冲的离散和稀疏的特性。 SNN的未来仍旧不清晰,一方面,它是我们目前的神经网络的天然继承者。但是,另外一方面,对于大部分的任务来讲,它还不是一个可以实用的工具。在实时图像和音频处理方面有一些SNN的实际应用,但是相关的实际应用的资料还非常少。SNN的大多数论文要么太理论化,要么就是比一个简单的全连接的二代网络性能还差。然而,有很多团队正在开发SNN的监督学习规则,我对SNN的未来仍就保持乐观。
1_HiorFaHQ59K0XktcGrvGyw.png