深度学习与大数据

——除了上帝,我只相信数据
在数据呈指数增长的这个数字世界中,深度学习和大数据是最为热门的两个技术趋势。深度学习和大数据是数据科学领域相互关联的两个话题,而在技术发展方面,两者紧密关联且同样重要。
数字数据和云存储遵循名为摩尔定律的通用定律,摩尔定律我们在之前就有提到过。因特尔创始人摩尔认为数据每两年就会翻一番,而存储该数据的成本却大致以相同的速率下降。这些丰富的数据产生了更多的特征和真理,因此为了从中提取所有有价值的信息,我们应当试图创建更好的深度学习模型。
数据的高可用性也为多个行业带来了巨大的机遇。此外,大数据及其分析为数据挖掘、数据应用和从数据中提取隐藏信息带来了巨大挑战。在人工智能领域,深度学习算法会在大规模数据的学习过程中产生最佳输出。因此,随着数据以前所未有的速度增长,深度学习在提供大数据分析解决方案方面也同样起着至关重要的作用。
在这个EB数据规模的时代,数据仍以指数级速度迅速增长。出于各种目的,许多组织和研究人员以不同方式对数据的快速增长进行了分析。国际数据公司(International Data Corporation,IDC)的调查显示,互联网每天处理约2PB(1PB=1024TB,1TB=1024GB)的数据。2006年,数字数据的规模约为0.18ZB(1ZB=1024EB,1EB=1024PB),而到2011年,这一规模已经达到了1.8ZB。
截至2015年,该数字已达到10ZB之多。预计2020年全球数据量将增长到30-35ZB左右。在数字的世界中,这些海量的数据被正式定义为“Big Data”也就是大数据。
Facebook有两亿左右用户,超过20PB数据,而美国橡树岭国家实验室的Jaguar超级计算机拥有超过5PB的数据。这些存储数据增长得如此迅速,因此在2018年——2020年可能会使用EB规模的存储系统。
数据的这种爆炸式增长肯定会对传统的数据密集型计算产生直接威胁,并引出使用分布式和可拓展存储架构来查询和分析大规模数据的需求。大数据的一般思路是,原始数据非常复杂、混乱,且持续增长。一个理想的大数据集应由大量的无监督原始数据和少量的结构化/分类数据组成。因此,在处理这些大量的非固定结构化数据时,传统的数据密集型计算往往会失败。具有无穷多样性的大数据需要复杂的方法和工具,以提取模式并分析大规模数据。大数据的增长主要是由现代系统计算能力的增长及低廉的数据存储成本促成的。
大数据的所有这些特征可以分为4个维度,通常称为4V:即数量(Volume)、多样性(Variety)、
速度(Velocity)、真实性(Veracity)。
在当今这个数据密集型技术时代,收集和获取数据的速度与大数据的其他参数(即数量和多样性)同样重要。随着数据的生成,如果未能及时收集和分析数据,那么重要的数据就会面临巨大的丢失风险。虽然可以选择将快速转移的数据保留在大容量存储中以便后续再批量处理,但是处理这种高速数据的真正重点在于将原始数据转换成结构化和可用格式的速度。具体来说,如果数据没有立即保留下来或进行系统的处理,那么飞机票价、酒店房价或某些电子商务产品的价格等时间敏感信息就会过时。大数据的真实性这一参数关系到数据分析结果的准确性。随着数据变得越来越复杂,保持对大数据隐藏信息的信任将会是一大挑战。
为了提取和分析这种复杂数据,我们需要一个更好的、精心规划的模型。理想情况下,与处理少量数据相比,模型应该能够更好的处理大数据。然而,情况并非总是如此。接下来通过一个实例来进行更为深入的讨论。
使用小型数据集时,最佳算法的性能比最差算法的性能好n%。然而,随着数据规模的增大(大数据级别),性能会成指数级增长到k%。这种现象也可以在其他实例中找到,他们清楚地表明了大型训练集对模型性能的影响。然而,使用最简单的模型时,只有大数据集才能达到最佳性能,这种观点是完全错误的。
算法一是朴素贝叶斯模型,算法二是基于内存的模型,算法三是Winnow算法。从图中可以看出,当使用小型数据集时,Winnow算法的性能要低于基于内存的模型;而在处理大数据集时,朴素贝叶斯模型和Winnow算法的性能比基于内存的模型要好。因此,从图中很难判断出那个简单模型在大数据集条件下是较优的。对于使用大数据集时基于内存的模型性能相对较差,一种较为直观的解释是,由于需要等待大量数据加载到内存,算法要消耗很多时间。这纯粹是与内存相关的问题,只使用大数据是不能解决问题的。因此,影响性能的重要因素应该是模型复杂度,而深度学习模型恰恰长于此项。
即使有大数据,思维狭隘也不会有进步!大数据需要思维突破。
深度学习与大数据形成鲜明对比。行业中的各种产品已经成功应用了深度学习,而且各类研究人员也通过大规模数字数据广泛应用了深度学习。Facebook、Google、苹果等世界知名科技公司每天都会收集和分析大量数据,并且在过去几年中在各种深度学习相关的项目中取得了不俗的进展。
Google在大量非结构化数据上部署了深度学习算法,这些数据的来源包括Google街景、图像搜索引擎、Google翻译和Android语音识别等。
苹果公司的Siri时iPhone的虚拟个人助理,提供了大量服务,如体育新闻、天气预报、用户问答等。Siri整个应用都是基于深度学习的,他收集来自不同苹果服务的数据并获得其职能授权。微软和IBM等其他企业同样以深度学习为主要方式来处理大量的非结构化数据。IBM类似人脑的计算机Watson和微软的Bing搜索引擎也是主要使用深度学习技术来利用大数据的。
目前的深度学习架构包括数百万甚至数十亿的节点。此外,数据增长规模阻止了模型的过拟合,计算能力的快速增长也使得先进模型的训练变得更加容易。
下表展示了近期的研究是如何应用大数据和流行的深度学习模型从数据中充分提取信息的。
借助分层学习方法,深度学习算法可以从输入的原始数据中提取有意义的通用特征。一般来说,在更高层次上,更复杂和抽象的数据特征是从先前的层和多层学习模型的抽象水平稍低的数据中学习的,那么这些模型看起来会更具吸引力,从而更有助于生成大量非结构化数据的一些有意义的模式和特征。
在处理大规模无监督数据时,深度学习算法可以比浅层学习架构更好地提取数据点之间的通用模式和关系。以下是接受大规模为标记数据训练时,深度学习算法的几个主要特征。
1.从抽象和特征的较高层次来看,可以从深度学习模型中获得大数据的语义和关联性知识。
2.即使是一个简单的线性模型,也可以有效地从大数据集极为复杂和抽象的特征中获取知识。
3.来自无监督数据的各种数据特征为学习其他数据类型(比如文本、音频、视频、图像等等)打开了大门。
因此,可以肯定的是,随着GPU(图形处理单元)处理能力的进一步增强和存储容量的提升,深度学习将成为大数据情感分析、预测分析等不可或缺的组成部分。

大数据深度学习面临的挑战

大数据的潜力值得关注。然而,想要充分提取有价值的信息,还需要创新的、实用的算法来解决相关的技术问题。例如,为了训练模型,大多数的传统机器学习算法将数据存储在内存中。但如果数据量庞大,这种方法肯定是不可行的,因为系统可能会耗尽内存。为了克服所有这些棘手的问题,并通过深度学习技术从大数据中挖掘出有用的信息,我们迫切需要头脑风暴。
前文中说过,大规模深度学习在过去十年取得了很多成就,但这一领域还处于不断发展的阶段。大数据正在不断提高其4V的限制。因此,为了解决这些问题,模型还需要进行更多改进。

海量数据带来的挑战(第一个V——Volume)

海量数据给深度学习带来了巨大机遇同样也带来了巨大挑战。大数据具有非常高的维度(属性)、大量的实例(输入)和类型繁多的分类(输出),因此通常会增加模型的复杂度以及算法的运行时间复杂度。海量数据使得使用集中式存储及其有限的处理能力来训练深度学习算法几乎不可能。为了给这个挑战提供一个可能,在海量数据推动下,具有并行服务器的分布式框架应运而生。升级后的深度学习网络已经开始使用CPU和GPU集群来提高训练速度,并且不会影响算法的准确性。为实现模型并行和数据并行,各种新策略已经形成。
在这些类型中,模型或数据被分割成块,以便与内存中的数据相匹配,然后分布到各个节点,进行前向传播和后向传播。Deeplearning4j是一种基于Java的、用于深度学习的分布式工具,为将数据分布到各个节点而使用数据并行性。我们将在之后详细说明。
庞大的数据量往往会伴随着不相关数据(噪声)和不完整的数据(损坏),这为大规模深度学习的训练带来了重大挑战。大数据在很大比例上是由未标记或非结构化数据组成的,其中噪声标签是最主要的。要解决这个问题,需要对数据进行人工处理。例如,在过去一年内,所有搜索引擎都用于收集数据。需要对这些数据进行过滤,尤其需要去除冗余数据和低价值数据。先进的深度学习算法对处理这些冗余噪声数据来说至关重要。此外,相关的算法应该能够容忍这些混乱的数据集。还可以应用某种更有效的代价函数和更新的训练策略,以充分克服噪声标签的影响。此外,半监督学习有助于强化与这种噪声数据相关的解决方案。

数据多样性带来的挑战(第二个V——Variety)

多样性是大数据的第二个维度,它代表了具有不同分布和多种来源的所有类型的格式。呈指数级增长的数据来源众多,其中包括大量音频流、图像、视频、动画、图形,以及来自不同日志文件的非结构化文本。这些数据类型具有不同的特征和表现。数据集成可能是处理这种情况的唯一方法。正如之前所说,深度学习能够从结构化或者非结构化数据中学习特征。深度学习能够以分层的方式执行无监督学习,分层的方式是一次执行一个层次的训练,且较高层次的特征由直接下级来定义。深度学习的这个特征可以用于解决数据集成问题。自然解决方案可以是从每个单独的数据源中学习数据特征,然后将学到的特征集成到后续层级。
已有实验成功证明,深度学习可以很容易地应用于异构数据源,以显著提高系统性能。然而,深度学习仍有许多悬而未决的问题。目前,大多数的深度学习模型主要是在双模式(只有两种来源的数据)上进行测试,但在处理多模式时,是否可以提高系统性能呢?多个数据来源的信息可能相互冲突。这种情况下,模型如何以富有成效的方式消除冲突并整合数据呢?考虑到深度学习能够学习中间特征以及与数据多样性相关的潜在因素,他似乎非常适用于整合具有多种模式的不同来源的数据。

数据快速处理带来的挑战(第三个V——Velocity)

数据的急速增长对于深度学习技术造成了巨大挑战。对于数据分析而言。极速创建的数据也应该得到及时的处理。在线学习是学习高速数据的一个解决方案。然而,在线学习使用顺序学习策略,即整个数据集应保存在内存中,这对传统机器学习来说非常困难。虽然已经成为在线学习修改了传统神经网络,但这个领域深度学习仍然有巨大的进步空间。作为在线学习的替代方法,随机梯度下降法也同样适用于深度学习。在这种类型中,一个具有已知标签的训练样本会输入到下一个标签,已更新模型参数。此外,为了加快学习速度,也可以在小批量处理的基础上进行更新。这个小批量可以在运行时间和计算机内存之间提供良好的平衡。之后会详细说明为什么说小批量数据对分布式深度学习来说最为重要。
与数据的这种高速相关的另一个更大挑战是,这些数据在本质上是极其多变的。随着时间的推移,数据的分配过于繁重。理想情况下,随时间变化的数据被分割成从较小时间段内提取的小块。其基本思想是,数据在一段时间内保持稳定,并具有一定程度的相关性。因此,基于大数据的深度学习算法应该具有将数据作为流来学习的特征。可以从这些非平稳数据中学习的算法对深度学习来说至关重要。

数据真实性带来的挑战(第四个V——Veracity)

虽然与大数据的其他三个维度同等重要,但数据的真实性、不准确性或不确定性有时会被忽略。由于大数据种类繁多且快速增长的特点,任何组织不能再依靠传统模型来衡量数据的准确性。根据定义,非结构化数据包含大量不精确和不确定的数据。例如,社交媒体的数据本质上是非常不确定的。虽然一些工具可以自动化进行数据规范化和清理,但大都还处于早期萌芽阶段。

拓展阅读:分布式深度学习和Hadoop
https://blog.csdn.net/weixin_43106248/article/details/100803342

你可能感兴趣的:(深度学习,Hadoop,大数据)