深度学习与人工智能革命:part IV

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
NLP自然语言处理_高级版,每接口累计50万次
NLP 自学习平台,3个模型定制额度 1个月
简介: 本文是该系列内容的第4部分内容,主要讨论深度学习为何使用MongoDB数据库,并提供相关使用实例。

本篇是系列博客的第部分,如果没有看过前面两部分内容的读者建议阅读一下。

I部分内容中,主要是讲解人工智能的历史以及它现在高速发展的原因;

II部分内容中,将讨论一下人工智能、机器学习和深度学习之间的区别;

第III部分内容中,将深入研究深度学习以及在为新项目选择数据库时需要评估的关键事项;

在今天的第IV部分内容中,将讨论深度学习为何使用MongoDB,并提供相关使用实例;

由于本文内容是第IV部分内容,讨论深度学习为何使用MongoDB,并提供相关使用实例。如果读者想快速将四部分的内容全部看完,可以下载本文的附件。

为什么MongoDB适合深度学习?

如果你没有阅读第III部分的内容,强力推荐阅读一下,以更多地了解在做深度学习项目时选择数据库应该考虑的关键因素有哪些。在以下的讲解部分中,开发者和数据科学家可以利用MongoDB作为一个灵活、可扩展、高性能的分布式数据库来满足人工智能应用开发的严峻考验。

灵活的数据模型

MongoDB的文档数据模型,便于开发者和数据科学家存储和结合其他任何数据库的数据,且没有放弃利用复杂的验证规则来管理数据的质量。该模式可以在不停用应用程序或数据库的情况下动态地修改数据,这是由关系数据库系统的模式修改或重新设计的代价高所引起的。

这种数据模型的灵活性对于深度学习是特别有价值的,这需要不断的实验来发现新的见解和预测:

输入数据集可以包括快速变化的结构化数据和非结构化数据,这些数据集可以从点击流、日志文件、社交网络和物联网传感器流、CSV文件、txt文本、图像、视频等,这些数据集很多都不能映射成关系数据库固定的行和列格式。

深度学习的训练过程中往往会增加新的隐藏层、特征标签、参数以及输入数据,这需要频繁地修改底层数据模型。

因此,一个支持各种输入数据集的数据库能够无缝地修改模型训练的参数,这对于深度学习而言是不可多得的。

丰富的编程和查询模型

MongoDB为开发者和数据科学家提供本地驱动程序和认证连接来建立深度学习模型,PyMongo驱动器是一个用于MongoDB的Python工具,也是一个被推荐的Python操作MongoDB数据库的方式。社区也开发了R语言的MongoDB客户端,这也可用于R语言程序员。

MongoDB的查询语句和丰富的二级索引使得开发人员能够开发应用程序,可以以多种方式查询和数据分析。数据可以在毫秒级的响应时间内通过单键、范围、文本搜索、图表和地理空间查询到复杂的聚合和MapReduce任务。

为了在分布式数据库集群上并行处理数据,MongoDB提供了聚合管道(aggregation pipeline)和MapReduce。MongoDB聚合管道是仿照数据处理管道的基本原理设计,数据经过一个一个的阶段,每阶段将数据处理后的结果传递给下一个阶段,最终得到多重处理后的结果。其中,最基本的管道阶段提供像查询等操作的过滤器及输出文档格式的转换等功能,其它管道操作提供按特定字段对文档进行分组、排序以及聚合数组中的内容等功能。此外,管道阶段可以使用操作符进行相关计算,比如计算跨文档集合的平均值或标准差等。MongoDB同样也提供了原生MapReduce操作,使用JavaScript函数来执行相关的map和reduce阶段。

除了原生的查询框架外,MongoDB同样也提供了针对Apache Spark的一种高性能连接器,该连接器连接了Spark所有的库,包括Python、R、Scala和Java。对于机器学习、图表以及SQL API等分析而言,MongoDB数据可以作为其数据帧和数据集。

针对于Apache Spark的MongoDB连接器可以利用好MongoDB的聚合管道以及提取、筛选和处理其所需数据范围的二级索引。比如,分析特定地理位置的所有客户这一任务,简单的非关系数据存储不支持二级或在数据库中聚合。而在这种情况下,Spark需要基于简单的主键提取所有数据,这意味着数据科学家和工程师们在进行该过程时需要更多的时间上和硬件上的开销。为了最大限度地提高性能,对于分布式数据集而言,MongoDB连接器可以将弹性分布数据集(RDDs)和源MongoDB节点同地协作,进而最小化跨集群之间的数据移动并减少延迟。

可升缩性和冗余性

模型的训练时间可以通过建立一个深度学习平台以及可扩展数据库层来减少,MongoDB提供了以下一些措施来尽可能地增大吞吐量以及尽可能地减少深度学习工作负载的延迟。

WiredTiger是MongoDB的默认存储引擎,也是世界上部署最广泛的嵌入式数据管理软件,它是基于现代多核架构,并使用了多种编程技术,如风险指针、无锁算法、快速锁定和消息传递等。WiredTiger尽可能地增大每个CPU核和时钟周期内的计算工作量,此外,WiredTiger使用紧凑的文件格式和压缩存储尽可能地减少磁盘开销。

对于大多数对延迟敏感的深度学习应用而言,MongoDB可以配置存储引擎。基于WiredTiger这个存储引擎,可以在不牺牲传统数据库提供的丰富灵活查询、实时分析和可升缩能力的情况下,为用户提供内存计算的好处。

为了并行地进行模型训练以及缩放输入数据集,MongoDB使用分片(sharding)技术。MongoDB分片是完全弹性地、自动地调整集群中的数据作为输入数据集的增长,或者是添加和删除节点。

在MongoDB集群中,每个分片数据自动分发到多个驻留在不同节点上的多个副本,其副本集提供冗余性以在训练数据发生故障时恢复数据,并减少检查点的开销。

可调一致性

在一般情况下,MongoDB具有强一致性。启动深度学习应用程序可用立体读取已写入的数据库中的内容,从而避免了最终一致性系统导致的开发人员复杂。强一致性会为机器学习算法提供最准确的结果,然而,在某些情况下,如随机梯度下降算法(SGD),其结果不是很好但尚可接受。

MongoDB人工智能部署情况

基于MongoDB具备上述讨论的性质,MongoDB已经作为许多人工智能和深度学习平台的数据库,不同应用程序和行业用户的选择如下:

IBM Watson:分析与可视化

沃森分析是IBM的云托管服务,提供智能数据发现来指导数据探索、自动预测分析和可视化输出。沃森分析应用场景十分广泛,比如银行、保险、零售、电信、石油和政府应用等。MongoDB被用来管理数据存储,提供所有源数据集的元数据和分析可视化,并存储在丰富的JSON文档结构中,可以支持数以万计的用户并发访问服务。

x.ai:个人助理

x.ai是智能驱动的个人助理,它能够为用户安排会议。用户将他们的日历连接到x.ai上,然后只要邮件抄送给amy@x.ai,该公司的虚拟私人助理Amy就能接手你的会议日常安排。MongoDB作为x.ai的整个平台记录系统,支持所有的服务,包括自然语言处理、有监督学习、分析和电子邮件通信等。MongoDB灵活的数据模型成为使得x.ai迅速适应于训练集和输入数据集的关键,同时也支持复杂的数据结构。更多内容可以看此案例了解

汽车贸易商:预测价值

英国最大的汽车市场广泛应用机器学习,使用的关于车的规格及细节数据都存储在MongoDB中。比如,先前车主的个数、颜色、里程数、保险历史等。这些数据由汽车贸易商的数据科学团队编写的机器学习算法提取得到,并建立模型以预测准确的价值,然后再写入数据库中,选择MongoDB由于其灵活的数据模型和分布式设计。更多内容可以看此案例了解

Mintigo:销售和市场预测

Mintigo是一家以企业为重点的预测市场和销售的平台。在B2B营销领域,Mintigo利用数据进行营销分析和预测,识别最有可能购买其产品的潜在客户,帮助公司客户提升销量。Mintigo运行在AWS上,是用Python编写的机器学习算法。MongoDB被用来存储TB量级的数据集,这是看中了其数据流采集和存储的可扩展性和灵活性、高效的查询框架和二级索引,而无需扫描数据库中的所有记录。更多内容可以看此案例了解

零售定位分析

一个美国的移动APP开发者在MongoDB上建立的智能引擎,实时处理和存储数以百万计顾客的丰富地理空间数据点。该智能引擎使用可伸缩的机器学习和多维分析技术来展示行为模式,允许零售商通过移动设备预测和定位目标客户。MongoDB支持具有复杂索引和查询的空间数据结构,为机器学习算法提供基础。MongoDB的分片扩展设计使得公司可以容纳10-100百万的客户数据点。

自然语言处理(NLP)

一个北美的人工智能开发者已经构建了由主要消费电子产品嵌入到智能家居和移动设备中的自然语言处理软件。设备和用户之间的所有交互都存储在MongoDB中,然后反馈给学习算法。选择MongoDB的原因是其架构的灵活性,且支持快速变化的数据结构。

将数据科学引入人才招聘

该公司与财富500强的人力资源部门合作,利用数据科学和员工情况处理成堆的简历和候选者。该公司通过将人工智能应用于简历以外的数据数千个信息源,包括公共的和企业数据,为申请者提供实时分析和优先次序。通过人工智能算法产生的预测分析,招聘人员可以立即确定主动申请以及潜在的应聘者中最佳的候选人,加快整个招聘过程、降低雇佣成本。选择MongoDB作为底层数据库是由于其数据模型的灵活性和可伸缩性,此外,大范围的安全管理权保护了个人可识别信息(PII)。

作者信息

Mat Keep,产品营销总监,目前就职于MongoDB团队。

个人主页:https://www.linkedin.com/in/matkeep/

本文由北邮@爱可可-爱生活老师推荐,阿里云云栖社区组织翻译。

文章原标题《Deep Learning and the Artificial Intelligence Revolution: Part 4》,作者:Mat Keep,译者:海棠,审阅:袁虎。

文章为简译,更为详细的内容,请查看原文

 

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
7天前
|
机器学习/深度学习 人工智能 自然语言处理
探索人工智能的未来:机器学习与深度学习的融合之旅
【9月更文挑战第35天】在这篇文章中,我们将深入探讨人工智能的两大支柱——机器学习和深度学习。我们将通过代码示例和实际应用案例,揭示它们如何相互补充,共同推动AI技术的发展。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的见解和启示。
26 0
|
3天前
|
机器学习/深度学习 人工智能 监控
人工智能与未来医疗:革命性的技术融合
本文将探讨人工智能在医疗领域中的应用及其对未来医疗模式的深刻影响。通过分析AI在疾病诊断、个性化治疗、医疗影像分析等方面的表现,我们将揭示这一技术如何提升医疗服务的效率和精准度,进而推动整个医疗行业的变革。
|
1天前
|
机器学习/深度学习 存储 人工智能
人工智能与未来医疗:革命性技术的潜力与挑战
【10月更文挑战第2天】 本文探讨了人工智能在医疗领域的应用及其潜在影响。通过分析当前AI技术的发展现状以及在医学诊断、治疗和患者管理中的具体应用,揭示了这一技术如何提升医疗服务质量和效率。同时,讨论了AI在医疗领域所面临的伦理、隐私和安全等挑战,呼吁建立相应的监管和标准以确保其安全有效地发展。
|
1天前
|
机器学习/深度学习 人工智能 自然语言处理
软件测试中的人工智能革命:现状与未来展望
【10月更文挑战第2天】 本文深入探讨了人工智能在软件测试领域的应用现状、面临的挑战以及未来的发展方向。通过分析AI技术如何提高测试效率、准确性和自动化水平,文章揭示了AI在改变传统软件测试模式中的关键作用。同时,指出了当前AI测试工具的局限性,并对未来AI与软件测试深度融合的前景进行了展望,强调了技术创新对于提升软件质量的重要性。
14 4
|
19天前
|
机器学习/深度学习 人工智能 算法
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
文本分类识别系统。本系统使用Python作为主要开发语言,首先收集了10种中文文本数据集("体育类", "财经类", "房产类", "家居类", "教育类", "科技类", "时尚类", "时政类", "游戏类", "娱乐类"),然后基于TensorFlow搭建CNN卷积神经网络算法模型。通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型,并保存为本地的h5格式。然后使用Django开发Web网页端操作界面,实现用户上传一段文本识别其所属的类别。
43 1
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
|
5天前
|
机器学习/深度学习 人工智能 自然语言处理
软件测试中的人工智能革命:效率与准确性的双重提升
随着人工智能技术的不断进步,软件测试领域正经历着前所未有的变革。本文将探讨人工智能在软件测试中的应用及其对效率和准确性的提升。我们将分析传统软件测试的局限性,展示AI如何通过自动化测试、智能缺陷识别和预测性维护来克服这些挑战。此外,我们还将讨论AI在测试过程中面临的伦理和安全挑战,以及如何应对这些挑战。通过综合分析,本文旨在为读者提供一个关于软件测试中人工智能应用的全面视角,强调其在提高效率和准确性方面的巨大潜力。
|
3天前
|
机器学习/深度学习 人工智能 自然语言处理
探索人工智能:深度学习在自然语言处理中的应用
探索人工智能:深度学习在自然语言处理中的应用
|
3天前
|
机器学习/深度学习 人工智能 自然语言处理
探索人工智能:深度学习与自然语言处理
探索人工智能:深度学习与自然语言处理
13 1
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
软件测试中的人工智能革命:挑战与机遇
在本文中,我们将深入探讨人工智能(AI)如何改变软件测试领域的基本面貌。从自动化测试的崭新可能性到提高测试效率和准确性的先进方法,我们将全面分析AI带来的各种挑战和机遇。通过具体案例和实践指南,希望为读者提供清晰的理解和应用方向。
|
9天前
|
机器学习/深度学习 人工智能 自然语言处理
软件测试中的人工智能革命:提升测试效率与质量的新篇章
随着人工智能技术的不断成熟,其在软件测试领域的应用正逐渐改变传统测试方式。本文将探讨AI在软件测试中的应用现状、优势以及面临的挑战,并通过具体案例分析展示AI如何提高测试效率和质量。最后,我们将讨论未来AI在软件测试中的发展趋势及其对人类测试工程师角色的影响。

热门文章

最新文章