欧宝体育官网登录:日子中难以发觉的高科技:海量数据实时处理靠的是什么数学?
看起来仅仅一个一般的灯泡,但其价格或许到达了 3000 美元一个,因为这是一个用在高能物理试验中的光电倍增管。
这是知乎上的一个高赞答复描绘的物品,其问题是“你的范畴有哪些看起来平平无奇,实则科技含量满满的事物?”。在这个问题下,得到了超越 100 个答复。
有句话说的好,叫“透过现象去看实质”,在科学技能范畴,有许多看似一般,但却凝聚了无数人的才智和科技成果。今日要要说的,也和这个主题有关,讲一讲数据处理背面那些不简单被发现的科学实质。
撰文 董乾(中国科学院软件研讨所)、刘歆(中国科学院数学与系统科学研讨院)
现在,市场上干流手机摄像头的清晰度现已到达两千万像素,国内某闻名手机制造商最新推出的一款盘绕屏手机的清晰度更是超越了一亿像素,一张相片的容量就要到达100MB。手机的电子防抖功用,手机软件的去噪功用,这些终究都归结为数学模型中的最优化问题,可是不管数据量怎么增大,人们对这些功用的要求都是瞬时供给成果。
医用CT机(电子核算机断层扫描仪)拍照的图画容量更是能够到达GB量级。医学作业者想依托断层扫描的成果重构人体三维结构需求求解一个几许问题(可归结为最优化问题);想经过千千万万个患者的CT陈述信息来总结疾病的规则,中心是核算问题(可归结为最优化问题),这些数学模型的数据量超越了一般核算机可具有的最大内存。
给咱们蓝色的美丽地球拍照的遥感卫星,它拍照的相片往往是以TB计,因为卫星本身容量、能量都有限,这些相片会在紧缩后实时传回地球上的接收站。地上获取数据后的解压进程需求求解一个被称为稀少优化的数学模型。而实时不断传回的数据往往会使得用来处理数据的核算机不堪重负。
为了能够“瞬时”处理“实时”到来的“大规划”数据,人们想到了运用具有多个核算单元的超级核算机来进行分布式、并行核算。下面咱们就带咱们细细品味分布式优化的宿世此生。
最优化问题是运用数学的一个分支,望文生义,是指在必定的条件约束下,选取某种计划使得方针到达最优的一种办法。许多科学工程范畴的中心问题终究都归结为优化问题。跟着大数据、机器学习和人工智能的迅猛开展,作为这些运用问题的中心数学模型,最优化问题遇到了千载一时的开展机会。
另一方面,跟着数据量的增大,问题复杂性进步,这给最优化办法的研讨带来了巨大的应战。传统最优化办法的规划思维首要是经过传统的串行核算完结的,无法与硬件的并行架构完美兼容,这降低了传统最优化办法在具有大数据布景的运用范畴的可适用性,约束了求解来源于相关运用范畴的最优化模型的精度和功率。为了打破这一窘境,以分布式存储为根底,以并行核算为中心的分布式优化应运而生,这也使得最优化办法得到了比以往任何时候都愈加广泛的运用。
跟着信息技能的跨越式开展,近年来,人工智能迎来了一波喷涌式开展。在人工智能的这次开展浪潮中,机器学习奠定了人工智能在核算意义上的根底和合理性,对应的优化算法和配套的硬件核算才能保证了人工智能在完结上的正确性和有用性。
换句话说,现在图画辨认、方针检测、语音辨认等算法在准确性上所表现出的明显进步离不开机器学习及其对大数据的练习办法。而所谓的“练习办法”,首要是指运用练习数据集找到一组参数,使得由这组参数决议的函数或映射能够尽或许匹配练习数据的特征标签,一起能在必定范围内对其它数据的特征做出猜测,给进一步决议计划供给参阅。这儿的参数估量问题,便是一个以拟合度为方针的最优化问题。咱们依据方针函数的函数值、梯度值等信息,规划求解最优参数的迭代算法,因为数据量极大,所以传统的最优化办法往往不能担任。最优化办法同人工智能的联系能够参见图1。
在这个大数据年代,一方面,数据的发生由手动办法转变为自动化,各种类型的传感器被人们运用到出产、日子以及科学研讨中来获取信息,数据的搜集变得愈加快捷经济;另一方面,具有巨大数量用户的互联网无时无刻不在发生规划巨大的数据。以上要素的联合效果,导致了数据集规划的爆破式增加,图2[1]展现了全球数据量的增加趋势(1PB=1024TB,1EB=1024PB)。
单个的存储单元数据的分布式收集以及数据量不断扩张进一步催生数据分布式存储结构的呈现。可是,数据爆破给传统最优化办法带来了巨大的应战。可是,传统优化办法所处理的数据集规划较小,并且往往是串行算法。所以,关于求解现在大规划和分布式存储的数据问题,一方面,对小规划数据集的传统优化办法并不见得对大数据问题有用;另一方面,以现在单核处理器的核算才能,数据规划的爆破使得串行算法难以在可忍受的时间内进行求解。
走运的是,现代核算机的并行架构为咱们由传统优化办法转到开展分布式优化以求解上述问题带来了机会。从图3[2]中能够发现,跟着晶体管电路逐步挨近功能极限,处理器(CPU)由单核逐步过渡到多核。例如,图4[3]中展现的Intel Xeon系列处理器中的一款CPU具有6个中心单元。
不只仅是CPU,近年来快速开展的图形处理器(GPU)也具有很多的核算单元,然后发生很强壮的浮点运算、并行核算功能。例如,NVIDIA公司的TURING TU102 GPU内建4608颗CUDA中心,576颗Tensor中心,如图5[4]所示。
当然,单个CPU或许GPU的核算才能仍然非常有限。所以,运用多个CPU、GPU构建的大规划集群/超级核算机,成为现在干流的核算硬件资源,比方2015年百度运用36个服务节点搭建了深度学习专用服务器Minwa[5]参与当年的核算机视觉应战赛(ILSVRC)。更多的全球超级核算机介绍及排名可见[6]。不管是多核CPU、GPU,仍是超级核算机,都是并行的硬件架构。为充沛有用运用核算资源的并行架构,咱们需求结合这一架构特色进行并行程序的规划开发。
分布式优化办法归于并行核算中的一类办法。与将一个问题分解成一系列离散的指令,由单个中心顺次逐个履行这些指令的串行核算不同,并行核算是一起运用多个中心来求解一个核算问题,如图6[3]。具体地说,并行核算要首先把一个问题分解成若干个能够一起核算的子问题(部分),并将每个子问题进一步细分为一系列离散的指令;然后,选用全面操控/和谐机制,运用多个中心一起履行每个部分的指令。
而分布式优化,便是考虑怎么把大使命分解成若干子使命,安排给多个中心、运用多个中心来完结对一个大问题的并行快速求解。现在,在算法规划上,分布式优化能够分红代数层面的分布式优化和模型层面的分布式优化两类。比较于并行核算,分布式核算的概念要愈加广泛,用在事务处理和科学核算中;而并行核算一般呈现在科学核算中。不过两者之间并没有清晰的分界线,咱们运用“分布式”来着重数据的分布式存储以及分布式内存。
将已有的高效串行算法中的数据矩阵(如图7所示)和对应的变量分块,在代数运算层面上将可并行的运算进行并行化完结,这被称为代数层面的分布式优化。这类办法是传统并行核算与已有传统优化办法的直接结合,长处是仅需求剖析已有串行算法中的可并行部分,一起关于数据并行景象简单估量实践的核算量,然后运用传统并行核算中的负载均衡技能,即恰当分配每个中心的核算使命,使得中心之间分配大约持平数量的作业,以使一切中心始终保持繁忙,防止呈现图8中展现的大都进程空等候的景象[7]。
尽管上述分布式优化办法简单易行,可是仅仅是依据已有的串行办法来完结数值核算上的并行,并不能得到新办法。别的,这种并行化的办法不只依赖于算法的结构,其可扩展性与求解问题的特色有亲近的联系。想要打破传统并行算法仅在运算层面上并行的办法,就需求依据核算机的并行架构来规划模型层面上的分布式/并行算法。
模型层面上的分布式优化办法,其基本思维是将大规划问题分解成若干个小规划/子块的子问题进行一起求解,完结算法的分布式/并行核算。与代数层面的传统优化办法并行完结有着实质的不同,模型层面的分布式优化需求指定每个核算中心需求存储的数据、处理的变量,以及各中心间的通讯等,到达从模型层面将求解大使命划分为并发履行的小使命的方针,使得算法的并行结构与硬件的并行架构之间一起、和谐,然后发挥呈现有核算资源的强壮才能。
关于代数层次的分布式优化,简单经过并行数值核算方面的负载均衡技能,使得多个中心发挥出各自的核算功能,防止呈现中心的空等候。可是,关于模型层次的分布式优化办法,在每个迭代步中,变量的更新是在一切进程求解完子问题之后再一起进行的。这时,假如每个进程所担任子问题的求解难度不一起,或许每个进程的核算才能不均,就会呈现有些进程现已完结子问题的求解,然后等候其它进程完结子问题求解的景象,如图9[8]左面所示。
因为从算法流程上子问题的求解进程无法再进行切割,所以模型层次的分布式优化办法无法像代数层次的分布式优化那样直接运用并行数值核算方面的负载均衡技能。为了处理这一问题,异步核算近年来得到了广泛重视,也即每步迭代中变量的更新只运用当时信息,而缺少了大局同步的进程。
本文从分布式优化的运用布景和硬件根底下手,介绍了分布式优化的基本概念、首要办法和关键问题。不难看出,分布式优化是以大数据为根底的人工智能年代中优化范畴不可或缺的研讨方向;分布式优化的研讨离不开布景问题和用来完结算法的核算机系统结构,包括硬件环境和软件系统;它的研讨需求结合模型规划、算法规划和并行程序开发,归于跨学科的穿插研讨方向,非常具有应战性。
经过对数据处理的这番介绍,想必你对其背面包括的精巧数学原理有了一些了解。回到开篇被很多评论的问题,它是来自于知乎「向科学要答案」活动评论,不知道是否是在指那些横亘在咱们面前的科学问题,会有科学带给咱们答案。
本文为汹涌号作者或组织在汹涌新闻上传并发布,仅代表该作者或组织观念,不代表汹涌新闻的观念或态度,汹涌新闻仅供给信息发布渠道。请求汹涌号请用电脑拜访。