如今大数据、云计算、人工智能是人们热议的词汇,那么它们之间到底存在什么关系呢?大家都知道人工智能在发展过程中经历过三次热潮和两次寒冬,而这其中的一次热潮正是由于大数据、云计算、深度学习算法的快速发展。简言之,云计算为大数据提供处理平台,人工智能从云计算中寻找规律并学习,从而来管理云计算和大数据,而深度学习则是人工智能的一个子集,属于人工智能的一个学习方法。下面将分别对大数据、云计算、深度学习进行介绍。
生活在大数据时代,见证数字设备、网络、数据存储和计算系统的彻底扩展和集成。随着互联网技术的应用和普及,数据的产生和消费正成为人们日常生活的重要组成部分。在企业领域,许多公司不断地收集大量数据集,这些数据集存储客户交互、产品销售、网络广告活动的效果及各种类型的其他信息。“大数据”一词是为了反映世界数字数据的巨大增长而创造的,数字数据的来源和格式多种多样。大数据吸引了研究领域和工业界的大量研究和开发者,其目标是创造处理、分析和充分利用这些数据的最佳方法,并提高不同领域的运作效率,为整个社会经济集成化带来便利。既然大数据对人类的生活产生了巨大影响,那么大数据究竟是指什么呢,它的研究方法又是什么呢?接下来将详细介绍大数据的概念、关键技术、计算模式及其应用。
大数据是什么?其实就是海量资料的聚集,这些资料来自世界各地随时产生的数据。在大数据时代,任何微小的数据都可能产生不可思议的价值。大数据有四大特点:数据量大(Volume)、数据类型多样(Variety)、高速(Velocity)和价值密度低(Value),一般称为4V。
大数据的特征首先就体现在“大”上,信息技术的飞速发展使得大量的数据产生,主要包括来自社交网络(微博、Twitter、Facebook)、移动网络、各种智能和服务工具的数据。淘宝的近4亿会员每天产生约20TB的商品交易数据。Facebook大约10亿用户每天生成超过300TB的日志数据。因此,一个具有实时统计、分析和预测的大数据智能平台成为一种需求。
广泛的数据来源,决定了大数据形式的多样性。任何形式的数据都有其用途,目前应用最广泛的是推荐系统,如淘宝、网易云音乐、今日头条等,这些平台都会通过对用户的日志数据进行分析,从而进一步推荐用户可能喜欢的东西。日志数据是结构化明显的数据,还有一些数据结构化不明显,例如,图片、音频和视频等,这些数据因果关系弱,就需要人工对其进行标注。
大数据的产生非常迅速,主要通过互联网传输。生活中每个人都离不开互联网,也就是说每个人每天都在向大数据提供大量的资料。并且这些数据是需要及时处理的,对于一个平台而言,也许保存的数据只有过去一个月内乃至几天内的,再久一点的历史数据就要及时清理,否则耗费资源巨大。基于这种情况,大数据对处理速度有非常严格的要求,服务器中大量的资源都用于处理和计算数据,很多平台都需要做到实时分析。数据无时无刻不在产生,谁的速度更快,谁就有优势。
这也是大数据的核心特征。现实世界所产生的数据中,有价值的数据所占比例很小。在大数据与传统小数据的对比中,大数据可以从大量毫无关联的不同数据类型中挖掘对未来趋势预测起作用的数据。为了在大量数据中发现新的知识和规律,可以采用机器学习、人工智能的方法对数据进行深入的挖掘和分析,再将这些新知识和新规律运用到不同的领域,主要包括教育、医疗、金融和汽车等其他行业,并最终促进科学研究,提高生产效率,改善社会管理。
资源下载码:R2649m
通常来说,大数据是指数据和大数据技术的结合。数据包含结构化、非结构化和半结构化数据,而大数据技术是针对数据进行处理,从而获得数据分析和预测结果的一种数据处理技术。
大数据和传统数据的处理过程没有太大区别,主要不同在于:大数据处理的主要是非结构化数据,所以所有处理环节都可以采用并行处理。目前,Hadoop、MapReduce和Spark等分布式处理方式已经成为大数据处理各环节的通用处理方法。
大数据的基本处理流程包括采集、预处理、存储和分析,在存储和分析之间最重要的就是大数据的计算。数据的采集主要是来自网站、传感器、摄像头及行业中的各种系统,但是在采集的数据中存在数据种类繁多、数据缺失和语义模糊这些特点,因此无法直接使用大数据分析技术进行分析,这就引出了预处理过程,即把数据变为一个可用状态。数据的预处理主要包含清洗、转换和集成3个步骤。将经过预处理后的数据进行存储和管理,大数据的存储包括:基于块的存储,块级存储可以被认为是服务器中的硬盘驱动器;基于文件的存储,将数据以层次结构进行维护;基于对象的存储,对象存储系统可以在不同的级别实现,包括设备级、系统级和接口级。数据作为对象公开和管理,其中包括可用于更好地索引或管理的额外描述性元数据。元数据可以是任何信息,即从安全性、隐私和身份验证属性到任何与应用程序相关的信息。
另外在存储过程中,大数据技术会根据数据的类型不同,采取不同的存储方式,它主要包含一种新型的结构化数据库集群,结合了大规模并行处理体系结构的高效分布式计算模式;通过对Hadoop生态体系的技术扩展和封装对半结构化和非结构化数据的存储和管理;采用MPP并行数据库集群与Hadoop集群的混合来实现对结构化和非结构化数据的存储和管理。接下来是数据的处理和分析,数据的处理主要是根据不同数据之间的相互关系进行数学建模的过程,将机器学习和数据挖掘算法融合进编程模型和计算框架中对数据进行处理和分析,并将数据结果进行可视化展示。最后谈及数据就不免涉及安全和隐私,因此需要建立良好的安全体系对数据进行保护。
因此大数据的关键技术主要包含4个方面:数据采集和预处理、数据存储和管理、数据处理和分析、数据安全和隐私保护。另外大数据两大核心技术是分布式计算和分布式存储。
大数据计算模式是一种对大量的不同类型的数据进行建模和高层抽象的过程,主要从数据特征和计算特征两个方面进行计算。
(1)批处理计算。
批处理主要是对大规模数据的批量处理,其中最具有代表性的两个技术是MapReduce和Spark。MapReduce可以并行执行大规模数据处理任务,用于大规模数据集的并行运算(单输入、两阶段、粗粒度数据并行的分布式框架)。对数据关系简单且易划分的大规模数据采用“分而治之”的并行处理思想,把一个大数据集切分成多个小数据集,分布到不同的机器上进行并行处理,促进了分布式编程,并使用Map和Reduce两个抽象的操作去记录和处理大量的重复数据。最后通过一个并行计算框架去计算系统层的细节,从而为程序员的编程带来极大的便利,减轻了程序员的负担。
Spark是一个针对超大数据量的伪实时的数据处理引擎,基于数据片集合(RDD)进行小批量的数据处理来近似模拟实时计算,简单点说就是用小批量的数据批次处理来模拟实时计算,所以就造成其数据处理存在一定的延时,只能支持秒级计算。它启用了内存分布数据集,可以提供交互式查询、优化迭代工作负载。在MapReduce中,数据流有一个稳定的来源,在进行一系列加工处理后,流出到一个稳定的文件系统(如分布式文件系统,HDFS)。而Spark则用内存替代HDFS或本地磁盘来存储中间结果,因此要快很多。
Flink是一个新兴的完全的流式处理引擎,支持毫秒级的计算,其中Flink的批处理是用流式计算来模拟的,这与Spark完全相反。用它提供的编程方式与Spark有很多相似之处,但是Flink有更丰富的窗口机制和强大的处理乱序事件数据的能力,这是Spark所不能比拟的。但是Spark对SQL的支持比Flink对SQL的支持范围要大一些,另外Spark支持对SQL的优化,而Flink对SQL的很多功能还在不断扩展和完善当中。但是由于其数据处理速度的优势,越来越多的公司开始将大数据计算迁移到Flink集群上。
(2)流计算。
流计算主要针对的是流数据,流数据是指在时间分布和数量无限的动态数据集合体,数据的价值会因为时间的流逝而降低。而流计算是一种高实时性的计算模式,需要对一定时间窗口内应用系统产生的新数据完成实时的计算处理,避免造成数据堆积、丢失和重复计算。因此它可以计算不同数据源的连续的流数据。流计算主要针对网购数据、游戏内玩家活动、金融交易大厅、地理空间服务及来自数据中心内所连接设备的数据,因为这类数据需要实时处理,并及时给出响应,否则将失去商业价值。现在国内有三类流行的流计算框架与平台,第一类是商业级的流计算框架,第二类是开源流计算框架,第三类是公司为支持自身业务开发的流计算框架。代表技术主要有Strom、S4、Stream等其他技术。
(3)图计算。
图计算主要用来解决一些图或网络形式的数据,如网络中的传播路径、交通事故后的路况等。传统图计算的解决方案无法解决大型图的计算问题,因此,就需要设计能够用来解决这些问题的通用图计算软件。针对大型图的计算,目前通用的图计算软件主要包括两种:第一种主要是基于遍历算法的、实时的图数据库,如Neo4j、OrientDB、DEX和Infinite Graph;第二种则是以图顶点为中心的、基于消息传递批处理的并行引擎,如GoldenOrb、Giraph、Pregel和Hama。这些图处理软件主要是基于BSP模型实现的并行图处理系统。
(4)查询分析计算。
查询分析计算主要针对大规模数据的查询分析,提供一种实时的查询系统,能够在短时间内完成对万亿张表的聚合查询,可以让用户操作PB级的数据。目前这一领域知名的平台有十余个,包括Google开发的Dremel和PowerDrill, Facebook开发的Presto, Hadoop服务商Cloudera和HortonWorks分别开发的Impala和Stinger,以及Apache项目Hive、Drill、Tajo、Kylin、MRQL等。
如今大数据在很多行业广泛应用,其中包括电视媒体、医疗、金融、电商、能源、公路交通和汽车制造等行业。
在电视媒体方面,RUWT是一款追踪所有体育赛事的应用程序,可以在iOS和安卓设备及Web浏览器上使用,通过分析体育数据流,让球迷知道应该切换到哪个频道才可以看见自己想看的节目,并对赛事进行投票。
医疗行业是最先开展大数据分析的传统行业之一。医药行业有大量的病例、病理报告、治疗方案、药物报告等,可以将大量数据整理用于帮助医生和病人。未来,在大数据平台的帮助下,通过对病例、治疗方案、患者基本特征的分析,可以建立一个针对疾病特征的数据库。随着未来基因技术的发展,可以根据患者的基因序列特征对患者进行分类,建立患者分类数据库。医生诊断患者时,可以参考患者的疾病特点、检测和化验报告及疾病数据库,快速帮助患者明确疾病类型。医生可以根据患者的遗传特点,将具有相似基因、年龄、种族、身体状况的有效治疗方案进行提取,制定出适合患者的治疗方案。这些数据还可以帮助制药行业开发更有效的药物和医疗设备。
在欧洲智能电网已经配备了智能终端,智能电网将每隔5~10分钟收集一次用电数据,根据收集的数据来预测客户的用电习惯,从而推断出在未来2~3个月里,电网需要的用电量。
大数据在金融行业得到了广泛的应用。一个典型的例子是,花旗银行使用IBM Watson计算机为理财客户推荐产品。美国银行(Bank of America)利用客户对数据集的点击来为客户提供服务,如确定或调整信贷额度。招商银行分析客户刷卡、存取款、电子银行转账和微信点评等行为数据,定时给用户发送有价值的广告信息。
电商平台拥有大量的数据,数据类型繁多且相对集中,因此未来在大数据的应用下将会有更好的发展前景。可以通过大数据对用户的消费水平、喜好进行预测,从而为用户个性化地推荐商品。大数据还可以为整个电商进行消费业绩的预测和评估等操作,通过整理电子商务报告,能够有利于物流行业的资源调度与分配、品牌企业的生产计划和库存管理,以及生产供应商的产品设计管理。
云计算的实质是一种并行计算,是由并行计算到集群计算再到网格计算,然后发展而成的。而“云计算”最初是为了推广Google的计算资源而提出的一个新概念,是用于资源到架构的全面弹性管理平台。云计算平台可以分为3类:以数据存储为主的存储型云平台、以数据处理为主的计算型云平台及计算和数据存储处理兼顾的综合云计算平台。下面将从云计算的概念、关键技术和应用3个方面进行详细的阐述。
云计算,为当今的业务提供了有效的计算基础设施,无论何时何地都可以使用。许多企业已经将他们的IT(信息技术)资源转移到云上,因为云计算这个模型提供了一种更经济有效的方式来服务他们的客户、合作伙伴和供应商。相比之下,许多企业在考虑其业务流程和智力资产的安全性时更加谨慎地看待这个模型。云计算的最大优势是它消除了传统计算环境中的许多复杂约束,包括成本、空间、时间和功率。
云计算是分布式技术的一种,目的在于通过网络将庞大的计算程序拆分成许多小程序,再由多个服务器分别进行计算,最后反馈给用户,而现在的云计算主要通过Internet云服务平台按需提供计算能力、数据库存储、应用程序和其他IT资源,它起到一个共享池的作用,采用使用量付费模式,并且这些资源可以快速地部署,只需要很少的管理工作或很少的与服务供应商的交互。
云计算三大服务模式包括软件即服务(SaaS)、平台即服务(PaaS)、基础设施即服务(LaaS),如图4-3所示。SaaS是人们每天都会接触的一层,大多是通过网页浏览器来接入的,并且任何一个远程服务器上的应用都可以通过网络来运行。例如,大家常用的Google,它是一个网页服务,同时可以提供娱乐和商务。PaaS主要提供各种开发和分发应用的解决方案,如虚拟服务器和操作系统,通过平台向用户提供应用软件的开发、测试和快速部署,帮助用户快速实现更多应用功能;而且主要针对互联网公司,可以节省时间和资源。LaaS主要是用来提供场外服务器、存储和网络硬件,目前中小型企业或用户都是购买这类基础性框架服务。
三种服务模式的关系是层层递进的,PaaS是基于LaaS实现的,SaaS的服务又在LaaS之上。下面用一个例子方便大家理解三者之间的关系。如果用户想建立一个网站,不想采用云服务,则需要买服务器,安装服务器软件,自己编写程序。但是如果购买LaaS服务,意味着用户不再需要购买服务器,只需自己装服务软件;如果采用PaaS服务,则不需要买服务器、装服务软件,只需要自己开发网站程序;还有一种情况,如果选择SaaS,将不需要自己编写程序代码,可以采用在线网点的服务,他们将负责程序的升级和维护。
另外,云计算按照部署模式可以分为公有云、私有云、混合云。公有云中的“公有”说明了这类云服务不是单独为某个用户而设计的,而是面向广大用户提供的一种计算资源的服务。公有云(Public Cloud)是一种计算模型,其中互联网数据中心(Internet Data Center, IDC)服务商或第三方通过Internet向公众提供计算资源。这些资源包括硬件、网络、存储、服务和应用程序。公有云服务可以是免费的,也可以按使用量付费。有些公司(包括Oracle Corporation)提供数据库云服务,它有两个主要组件:RESTful Web服务访问(允许通过简单的URI访问数据库云服务中的数据)和Oracle应用程序Express(用于在基于浏览器的环境中创建和部署各种应用程序)。数据库云服务易于获取和管理,并且易于开发和部署所有类型的应用程序。此外,公有云的简单性意味着降低了IT人员的开发成本。通过浏览器对公有云组件的通用访问极大地简化了基于云的解决方案的维护开销。通过公有云交付的应用程序可以从各种各样的客户端平台访问,但移动设备不利于控制云端资源,存在数据安全和网络匹配问题。
私有云(Private Cloud)能够对企业中的传统数据依据功能提供存储容量和处理能力。它主要依靠其安全性和非共享资源得到企业的青睐,与公有云最大的区别就是它的数据归属于客户独享,每个客户都可以在私有云的技术设置上控制程序的部署方式,同时这也使得数据安全和服务质量得到更好的保障。它可以让企业能够对安全性、服务级别和功能拥有完全的控制和可见性。
图4-3 云计算三大服务模式
混合云(Hybrid Cloud)平台由不同模式(私有或公有)云平台组合而成。但是公有云和私有云平台依然是分开的,它们使用标准化或专有技术进行绑定,并能够在两者之间迁移数据和应用程序。一个组织机构可以利用公有云的可伸缩性和成本优势将辅助应用程序和数据部署到公有云,同时利用私有云的安全性将关键任务应用程序和数据放置到私有云中。
云计算主要包含5个关键技术,即虚拟化技术、数据存储、数据管理、编程方式和云平台管理。接下来将从这5个方面对云计算技术进行介绍。
(1)虚拟化技术。
虚拟化技术是如何出现的呢?由于x86服务器的限制,许多IT组织必须部署多个服务器,每个服务器只能以其容量的一小部分运行,以满足当今的高存储和处理需求。但结果是效率低下,运维成本过高,因此引入虚拟化技术。
虚拟化是指将物理的实体,通过软件模式,形成若干虚拟存在的系统。也就是一台计算机虚拟为多台逻辑计算机,其实真正运行还是在实体上,只是进行了若干区域及时域划分,但是每个逻辑计算机相互独立,可运行不同的操作系统。因此应用程序可以工作在相互独立的空间,以此提高计算机的工作能力,同时降低所有规模企业的IT开销。
虚拟化软件的使用将IT资源重新划分,达到了动态分配资源、资源的灵活调度和不同域之间共享资源的目的,从而使得资源的利用率更高,让IT资源成为一种为各行业服务的基础设施。
虚拟化有3种类型:服务器虚拟化、网络虚拟化和桌面虚拟化。服务器虚拟化支持将多个操作系统作为高效的虚拟机在单个物理服务器上运行,主要代表有vSphere。网络虚拟化通过复制物理网络,支持应用在虚拟网络上运行,就像在物理网络上运行一样,但它具有更大的运维优势并可实现虚拟化的所有硬件独立性。桌面虚拟化将桌面部署为代管服务,使IT组织能够更快地响应不断变化的工作场所需求和新出现的机会。还可以将虚拟化桌面和应用快速、轻松地交付分支机构、外包和离岸员工,以及使用iPad或Android系统平板电脑的移动员工。
如今比较典型的虚拟化技术包括KVM、VMware和Xen等,例如,KVM能在不改变Linux或Windows镜像的情况下同时运行多个虚拟机,即多个虚拟机使用同一镜像,并为每一个虚拟机配置个性化硬件环境,包括网卡、硬盘和图形适配器等。
云计算离不开虚拟化技术,但是它们是不能互换的,虚拟化是一种使计算环境独立于物理架构的软件,而云计算是通过网络的按需求缴费的资源共享服务平台。
(2)数据存储。
云计算为了实现高可靠、高访问、在线迁移和复制、负载均衡、元数据和数据分离,采用分布式存储的方法,主要代表有Google的GFS(Google File System)和Hadoop的开源系统HDFS(Hadoop Distributed File System),大部分IT厂商,包括Yahoo、Intel的“云”计划都采用的是HDFS的数据存储技术。
(3)数据管理。
云计算系统对大数据集进行处理、分析,向用户提供高效的服务。因此,数据管理技术必须能够高效地管理大数据集。另外,如何在规模巨大的数据中找到特定的数据,也是云计算数据管理技术所必须解决的问题。云系统的数据管理往往采用列存储的数据管理模式,保证海量数据存储和分析性能。云计算的数据管理技术最著名的是Google的BigTable数据管理技术,同时Hadoop开发团队开发了BigTable的开源数据管理模块HBase。
(4)编程方式。
对于海量的数据采用单指令方法进行计算,已经远远不能满足快速处理数据的要求,因此云计算提供了分布式的计算模式,客观上要求必须有分布式的编程模式。云计算采用了一种思想简洁的分布式并行编程模型MapReduce。MapReduce是一种编程模型和任务调度模型,主要用于数据集的并行运算和并行任务的调度处理。在该模式下,用户只需要自行编写Map函数和Reduce函数即可进行并行计算。其中,Map函数中定义各节点上的分块数据的处理方法,而Reduce函数中定义了中间结果的保存方法及最终结果的归纳方法。
(5)云平台管理。
云计算资源规模庞大,服务器数量众多并分布在不同的地点,同时运行着数百种应用,如何有效地管理这些服务器,保证整个系统提供不间断的服务是一项巨大的挑战。云计算系统的平台管理技术能够使大量的服务器协同工作,方便进行业务开通和部署,快速发现和恢复系统故障,通过自动化、智能化的手段实现大规模系统的可靠运营。
从目前的发展状况来看,云计算的应用已经在各个行业迅速发展起来,包括金融、海洋探测、医学和汽车等行业,接下来介绍一个云计算在金融行业中的典型应用,即云会计。
云会计是一个完整的复式云计算应用程序,它允许随时与业务保持联系。当今经济竞争激烈的市场环境要求管理者不断改进工作和决策方式,而管理者又需要及时准确的信息。传统的桌面会计系统根本无法满足这些高标准需求,只有利用最新技术的力量才能满足。云会计的目标是将大部分枯燥的记录工作从业务中移除,应用程序将接管所有简单而单调的任务。例如,只需单击几下鼠标,它就会自动执行所有周期任务,如结账、将结账余额转发等。它还可以方便地记录所有的买卖交易、账单支付等。另外,应用程序可以立即处理和检索业务事务,因此可以更快地响应客户、供应商和债权人的反馈信息,确保更好的业务关系。此外,它还可以快速方便地生成专业的财务报告和会计记录。云会计将腾出更多的时间,用于改进业务的其他领域。无纸化的环境意味着更少的工作量,因为所有的信息都已经信息化,可以立即访问,计算机系统也将产生更准确的记录。在这个应用程序中创建的逻辑确保所有信息都可以正确发布,并且关键财务数据的计算都正确完成,这大大降低了手工会计系统中普遍存在的人为错误的可能性。由于云会计内部固有的结构,围绕计算机的会计系统将会被简化。因此,在商业周期的所有阶段的信息流将更加合理和有效。更重要的是应用程序内置的安全功能,确保只有经过授权的人才能访问公司的敏感财务信息。在这个应用程序中,用户将定义自己的安全级别,允许用户只访问属于用户安全级别以内的内容,让数据保持安全、易于维护。当然云计算还存在一些不足之处,例如,数据安全管理及因为数据量太大造成设备易发热损坏等问题。
近年来,深度学习作为人工智能的核心技术,在图像和语音等领域都取得巨大突破。它是目前流行的机器学习算法,并将传统机器学习算法推到另一个高度。其难点主要在于“深”,因此深度学习其实就是深而复杂的,以神经网络为基础的一种算法。下面将从深度学习的概念、算法特征和优势及应用3个方面进行介绍。
简单地说,深度学习就是通过多层非线性变换对高维复杂的数据进行处理。神经网络是深度学习的基础,但是区别在于深度神经网络有更多的神经元和隐藏层,还采用一种逐层训练的方式,每一次的逐层训练都是对特征的再一次学习,而神经网络(特指一般的浅层神经网络)的特征则是通过大量的历史数据人工手动构建特征。简单地说,在神经网络上多增加隐藏层和神经元就变成了深度学习。然而复杂的模型容易造成过拟合,那么为什么还要研究如深度学习这样复杂的模型呢?那是因为大数据和云计算带来了深度学习的高潮,它们的计算能力和数据量能够降低过拟合风险。
深度学习可以根据结构分为3类,包括生成型深度结构、区分型深度结构和混合型深度结构。生成型深度结构主要是针对数据高阶相关性,观测数据与其类别的概率分布;区分型深度结构是通过后验分布提供对数据模式识别的能力;混合型深度结构则包含了区分型和生成型两种结构的特点。最常见的深度神经网络(Deep Neural Networks, DNN)有生成神经网络、卷积神经网络和循环神经网络等。
深度学习在一定程度上就是包含多个深度网络结构的一种学习过程,整个深度网络框架如图4-4所示。这里主要介绍3种深度网络,即前馈深度网络(Feed-Forward Deep Networks, FFDN)、反馈深度网络(Feed-Back Deep Networks, FBDN)和双向深度网络(Bi-Directional Deep Networks, BDDN),这3种深度网络的主要区别为是否包含编码器和解码器。编码器是提取输入数据特征的一种映射,而解码器则是从提取的特征空间中,重构出与输入数据相似的数据。
前馈深度网络是一种只包含编码器的深度网络,在这个网络里,信息只有一种流向,只能从输入到输出,不构成一个闭合环路。常见的前馈深度网络包括多层感知机(Multi-Layer Perceptrons, MLP)和卷积神经网络(Convolutional Neural Networks, CNN)等。
反馈深度网络是一种包含多个解码器的深度网络,在这个网络里,并不是对输入信号进行编码的过程,而是对输入数据的基进行编码,也称解码,包含对数据进行稀疏分解或重构。常见的方法包括反卷积网络(Deconvolutional Networks, DN)和层次稀疏编码网络(Hierarchical Sparse Coding, HSC)等。
双重深度网络则与前两种网络不同,同时包含了编码器和解码器的过程,对于每一层隐藏层可能只存在解码过程,也可能只存在编码过程,但解码和编码过程也可能同时存在,是前馈深度网络和反馈深度网络的结合。常见的方法主要有深度玻尔兹曼机(Deep Boltzmann Machines, DBM)、深度信念网络(Deep Belief Networks, DBN)和栈式自编码器(Stacked Auto-Encoders, SAE)等。有兴趣的读者可以上网收集相关算法进行研究。
图4-4 深度网络框架图
深度学习已经在很多领域都展现出以往算法不可比拟的优势,主要体现在图像识别、语音识别、视频分类和行为识别等领域。下面将从深度学习与浅层神经网络相比所体现的优势和深度神经网络的应用来介绍。
首先是相对于传统的神经网络,浅层神经网络要表达和深度神经网络相同的函数,需要更多的网络参数和训练数据。然后深度学习具备数据特征自我学习能力,不需要人工提取特征,具有较强的学习能力和特征表示能力,并且可以联系上下文信息。深度神经网络是全局表示,而浅层神经网络通常是局部表示。深度神经网络之所以可以表示全局,是因为每个隐藏层的作用都不同。例如,在人脸识别中,可以将深度神经网络的一个隐藏层作为刻画图像的局部边缘和纹理,中层隐藏层作为边缘的组合,描述人脸器官的不同构成,高层可以看作是对人脸整体的描述,这种层层递进由粗到细的学习方式使得深度学习相对于传统的神经网络能够学习更为复杂的模型,表现出较大的性能优势。
应用方面,深度学习能够分析大量的高维数据,可以将现有的预防性维护系统提升到一个新的水平。通过分析麦克风和摄像头等的数据,从而得到预测维护方法。深度学习可以通过结合平面模型数据、维护历史、发动机振动数据异常检测等物联网传感器数据,以及发动机状况的图像和视频,来延长一架货机的寿命。人脸识别和指纹识别是现在手机的一个流行验证方式,也都引入了深度学习,通过将人脸的特征分成不同的部分,逐层提取特征,最后重构人脸。其他应用还包括分辨率重建、纹理识别、行人监测、门牌识别和场景标记等。