大数据的时代来临,这是最近在各种媒体经常听到的一句口号或者一个概念。数据当然是数学的事情,可是在媒体中参与大数据讨论的人里有很多前几天还在讲自己作为学生时最痛恨的学科是数学。许多人只是赶时髦或者把它当成装饰品。大数据浪潮的到来,肯定伴随大量的泡沫。我们还是回归数学,当然也期望发现以前数学研究中的遗漏。
处理数据的基本手段是统计,在60年前就有CC的中统与军统,最近有美国斯诺登事件的中央情报局。他们都是为了国家安全处理大数据的国家机构。也就是说,大数据并不是一个新的概念,它们首先被应用在军事及国家安全,近年来人们越来越认识到数据分析与日常生活联系在一起,不但是国计同时也涉及大量的民生,从而引起越来越多的一般民众的关注。特别是互联网快速发展的今天,数据及数据传输、数据分析几乎无处不在。本文不是讲中统、军统与中情局的内幕,而是从数学出发,尽量地朝着棘手问题的任务目标,浅显介绍它们之间分析方法的共同点与不同点的。而介绍“大数据”本身,就是一个大数据的问题,是一个大数据分析的过程。
数据的基本构成是数,数字在语法上属于名词类,名词也就是给某种概念定义一个名字。但是数不仅仅只是一个名字,更为重要的是运算。一开始我们只对整数给了名字。新的数(如零)就是由运算演绎得到的。正整数来自实际,而零及负数是通过运算演绎的结果。这是数学的精髓。我们用数学刻画看到的世界(如整数),装备上运算(如加法、减法),就可以得到或演绎出看不见的零以及负数。现代科学发展的一个众所周知的例子是我们用望远镜发现了天王星,然后用数学的方法演算出了海王星、冥王星。从数学中可以得到比我们原来已经知道的更多的东西。这些东西是通过演绎、推理获得的,更为重要的是它们还真实存在。这也是数学作为科学发展领头羊的根本原因。现代科学的许多结果都是数学先算出来,然后用实验实现验证。大数据就是利用实验采集的大量可能异构、异源的数据,还可能是通过经验整理过的、已经经过演绎推导的各种类型的数据,再用数学的方法去演算一下,期望得到或发现原来不知道的至少还是模糊的结论。
数据科学的对象是数据。那么,什么是数据?它有哪些类型?
数学方面对数据的理解可以是单个数、数组、数列、函数(要表现它们,可以用基表示下的系数来刻画),问题还可能是多元的;还有矩阵、张量、多元函数、多值函数、方程组、算子。数据的英文是“data”,中国大陆翻译成“数据”,在台湾则被译成“资料”,好像台湾的翻译包含的内容更多。事实上,在计算机数字化时代,任何资料都可以是数据或都可以被记录成数据,所以英语都用“data”一词。
社会方面对数据的理解如下:账本是表格,是矩阵;文本是数列簇,是向量;单词是基本数簇,句子是高一级的数簇,段落、篇章是更高级的数簇;声音也是数据,也是一个向量;图片也是数据,是一个矩阵,彩色图片是3个矩阵,分别表示红、绿、蓝3种颜色。图片作为n×m矩阵当然是n×m维空间上的点。一个人人脸的照片是在这个高维空间的低维流形上,所有人脸的照片在一个较高维的流形上,所有动物的脸部照片在更加高维的流形上,当然与所有的照片所在的空间比较,这个流形的维数还是非常低的。互联网信息是流动的数据,是分别储存在各地的数据簇,而且重要的是它的流动性及流动状况。我们说,图书馆的图书、工厂的设计CAD及加工CAM,甚至小道消息都可以用网络传播或者说数字传播,即数据的传播。数字三维打印、数字电视、数字相机、数字手机、数字遥控机器人、集群无人机的数字遥控精确打击,这些名词告诉我们,世界上任何与我们有关的东西都可以甚至几乎都已经数字化了。
数据的记录通常是有容余的,同时又是不全面的。譬如,我们有一个人在不同环境下的大量照片。有些部分是重复的,通常脸部最多,但又不完全重复,因为角度可能不同,光照可能不同,表情可能不同。大数据分析中有一个关键词叫“redandency”,我们把它翻译成“容余”而不是“冗余”,是想说明这些信息虽有重复,但它对信息重构是有用的,甚至起着决定的作用。
数据处理的一个重要组成部分是数据的降维,譬如,人脸识别。如果我们可以简单刻画(用简单函数表示)这个人的照片所在的那个低维流形,那么就能容易地识别出那个人。如果这个流形可以用某种基的线性组合表示,那么就可以用这个线性组合的系数作为这个流形的身份证号码,或者说作为这个人的身份证号码。人们希望身份证号码尽可能地短,那么就要找到这个低维流形,并且用合适的基函数,使在这个基的表示下比较短。
降维的主要数学方法是主成分分析,也就是提取特征。统计中的均值方差都是数据的某种特征。可以说任何科学及数学问题的处理无不遵循这个原则,即找出主要矛盾与主要矛盾之间的关系。譬如,勾股定理或者毕达哥拉斯定理的原意是划出方块的土地,地球是圆的,根本没有方块的意义,我们的先贤把它看成是在一个平面上的问题,得到了这个漂亮的结果,并且广泛地进行了应用。现在看来在地球表面上用勾股定理画方块,显然是错的。欧几里得空间是数学的基础,但也经常限制了人们的思想自由。爱因斯坦就是发现世界上根本就没有直线或者平面,光线走的并不是直线。这里不是单纯的数学问题,而是一个哲学问题——时空的关系,我们是用地球绕太阳转一圈来定义“年”的,或者更加精确地用光走的路程来定义“秒”的,同时在应用中又用时间来定义路程。
所以为了更好地处理数据,人们也经常地对数据进行升维处理,在一个更加高的思维层面上考虑问题,以便更好地看到主要矛盾之间的关系。还是讲一个数的问题,当发现了乘法的逆运算后,整数不够了,引进了有理数,但还不是维数上的突破。当有了次方及次方的逆运算开根后,发现要引进复数。复数事实上是两维的,但将很多实空间的问题放到复空间里,问题就变得非常简单。曲面是一个两维问题,上面讲过勾股定理,这实际上是伟大的数学家欧几里得的思想局限。这里问一个基本的哲学问题——宇宙是有限的还是无限的?这个问题要放到四维以上的空间才能更好地进行描述。人在三维空间内,总认为我们所处的空间是平直的。毕达哥拉斯已经生活在三维空间了,他还把地球球面看成平面,更何况一个只能生活在地球表面的两维空间里的小虫!可以设想我们生活的空间在更高维的空间不是平直的,称为流形,那么它是怎么弯曲的呢?从三维看两维,弯曲分成椭圆、抛物、双曲等类型。如果是椭圆形的,那么可能是有限的,否则可能是无限的。还有个问题是什么叫宇宙?如果把宇宙定义为可以到达并且回来的所有位置,庞加莱猜想说所有的闭曲线可以收缩为一个点的流形可以同胚于球面的一部分,也就是没有亏格,或者形象地说没有洞。如果有亏格,那么就是环面或者多个黏在一起的环链面。在三维空间中我们看到过平面吗?平面只是想象出来的东西。我们看到的三维空间中的曲面都是某个有限实体的表面或者说边界。它们都同胚于多个黏在一起的环链面。
作为大数据,数据的类型、层次都是极大地多样化的。一般来说,数据与整个社会结构相似。粗糙地说,数据的层级至少是两层,基层的(或基础的)与高层的领导层。基层的数据处理主要是具体问题的具体处理,即应用问题的数学描述,最具代表性的就是数值逼近。利用算子、函数的离散化(在应用数学中,算子可以看成矩阵或张量,函数可以看成向量或矩阵),数值逼近或逼近论希望利用数学方法来近似描述这个问题,所以数值逼近及逼近论是数据处理的基石。当然,现在的数据及数据处理越来越与随机及统计联系在一起,但基本还是属于数值逼近的范畴或者叫随机逼近,即从采样数据出发寻找密度函数或分布函数。譬如,模式识别是寻找由此导出的条件期望。高层的数据处理方法一开始是并行算法,领导者把问题分解,分配给下级完成。或者说是设计的方法,由设计者、服务器来设计,把大问题分割成一些小问题,分配给它可以控制的计算机完成。该层次的关键是怎么组织计算工程。20世纪末有大量这方面的研究,但新的问题又提了出来。当数据及问题的规模越来越大时,云计算的概念浮出水面,因为没有一个人或者一台服务器可以担当起这个设计及领导的作用。每个人或每台计算机都可以提出自己的设想,这个设想一般是不完整的,甚至有些部分是不合理的。领导者需要利用自己的个人魅力去影响其他的计算结点来进行他所希望的工作,同时从别人的成果中获取自己所需要的部分结果,对应地也贡献自己的成果。简单地说,低级的计算主要是函数逼近问题及函数的表示;高级的计算问题主要是图及随机图的描述与相关的逼近问题,是图的关系问题和数据流的动力学问题,其关键的问题都是希望找到简化的表示与逼近。用一个时髦的例子来说:基因只是数的排列,当然对两个相似的基因,有对其祖先来源、子孙趋向等数据分析的问题。由于这样的基因排列,会导致或者影响蛋白质的卷曲形状。这样的卷曲形状更容易与某另一形状的蛋白质相结合或者相排斥,从而决定较容易感染某种疾病或具备某种免疫力。而后一个问题属于较高层的问题,更为困难,更为复杂。
数据从数学上来说主要是点:向量是高维速度空间的点,函数离散化以后也还是点,算子离散化以后是矩阵或张量,仍然是高维空间的点。通俗地讲,数据处理就是处理高维空间的点之间的关系。而点之间的关系是由距离或连接图、连接路径组成。数学上是用转移矩阵表示的,或者说是复杂网络的动力学问题。要找到点之间的关系,通常首先要给每个点一个地名,这个地名通常是模糊的,它由这个抽象的点所表示的具体对象的一些关键词组成,这时学习理论的两个根本问题就出现了:一个是模拟,寻找关键词、特征;一个是分类或者聚类,把相近或相异的关键词用数学表示出来。接下来是一个在数学上还只是皮毛的问题,就是用数学来研究词典、语义学、句法分析、段落大意及文章主题。
对网络上各计算机结点的描述,最基础的是每个计算机上的文件(文本、声乐、视频,以及驱动这些文件的软件程序)、本地联系或连接处理,完成本地计算机的工作功能。进一步地还有计算机间的连接与问题处理,网络间联系可以处理远程计算、远程云查病毒和杀病毒。
网络连接有一个代表性的问题是网页排名,我们在看新闻时经常看到下面的链接,一种是网站通过经验统计认为的重要网页,还有一种完全是由实时统计获得的“看过此网页的人较多地还看了”,博客是博主通过点击率提升自己的地位的。大家都知道科技文章中有个影响因子,即有多少文章在引用这篇文章,ISI网页上不仅可以查到引用情况,还统计了二次引用,即有多少文章在引用曾经引用过这篇文章的文章。这个结果不仅反映了这篇文章的引用情况,还确切地反映了被这篇文章的工作影响的研究人员地位,从而更加全面地反映这篇文章的影响力。这些都可以被认为是在做云计算,在不知不觉中把有意义的作品推到大家面前,节省了搜寻的时间。(www.daowen.com)
讨论大数据问题,通常我们认为有个cps三元结构:cyber,physics,social。
例:对于大楼,我们得到的是物理真实存在的一些不完整的信息,在人脑中形成对大楼的了解。物理存在的内容是完整的事实,而可以看到或了解的不可能是全面的。譬如,只是一张斜角包含大半个正面的照片,但由对称性等经验,在人脑中形成的影像会更全面。如果我们有高楼下面几层的照片,其中窗户是清晰的,同时又有该高层建筑的远距离照片,窗户不怎么清晰,那么在人脑中形成的将是一张窗户清晰的整体照片。人脑有非常强的数据解构、重建及根据经验再融合重构的能力。数据科学就是希望利用数学通过计算机来实现这个能力,并且希望比人类做得更好、更快,特别是大数据分析希望完成利用人力几乎不可能完成的任务。
从一个数的数据开始分析。譬如24,一个数当然也是数据,一个数的数据有什么可以分析的呢?数学告诉我们有非常多的东西可以分析。
首先可以分解,24=3·8=4·6=2·12=(2·3)·(1+3)。这是我们小时候用扑克牌玩的24点。24点玩得好,就是对24这个数分析得比较好。记得小时候有一道题比较难,就是用1,5,5,5计算出24,这是分解后的融合与重构。小孩的游戏算24点还引导出更为复杂和一般的数据分析理论。为什么有人算24点算得比别人快?通常那个输了的小孩会说对方是背出来的。但是你也可以背出来啊,为什么还是比他慢呢?这就涉及人脑是怎么处理这种问题的问题,这同时也是编制计算机程序的关键。我们只有知道自己是怎么想问题的,才能告诉计算机怎么去想类似的问题。一个模型是人们把不同的可以算成24的算式都排序、存储在脑子里,当看到4张牌以后就要做一个搜寻,在脑子里找到与之匹配的算式。你让计算机来算24点,计算机就可以这么去做。这需要给所有的算式一个数据结构。最简单的是字典排列,但可能搜寻的速度太慢。稍微聪明一点是倒过来:把最后的运算是加法还是乘法的先分成两类,乘法的再分成1·24,2·12,3·8,4·6这几类,加法的可能要分成从1+23到12+12(共12类),然后每个子类再分成若干类,譬如将3·8分成由加法或乘法得到3或者8(共4类);然后反向地进行完全的分类。24点玩得好的孩子一定是自觉或不自觉地利用了概率论,采用了概率模糊算法,也就是以出现的概率大小排列算式。当打出自己手上的两张牌时,已经进入了包含这两张牌并可能算成24点的那个算式类,在这个类里又以其他两张牌出现的概率排序得到一个搜寻的模式。而这个概率排序的模式是他实战经验的积累,或者说是现代随机逼近的学习结果,而且还是云计算的结果。每次的实战过程都改进了他的搜寻算法,但他自己未必讲得出这是怎样的一个搜寻过程。
这只是算术层面的数据处理,是抽象的数的处理。数学的一个基本概念就是抽象。把应用问题中的数据处理问题提炼出来,变成一个纯粹的数学问题。这也是数学发展的根本法宝。正是凭借这个法宝,奠定了数学在科学中的地位。抽象、系统演绎、得出普遍结论,是数学发展的根本内动力。
随着科学的发展,数学这样自我封闭的单一法宝,在一定层面上已经成为数学发展的瓶颈。问题驱动,也就是外部对数学施与了越来越多的压力。但如果只是抽象的数据,没有充分体现数据,背后伴随的信息往往就能充分地利用数据。对于上面那个数24的处理问题,应用数学会希望添上单位,也就是它的物理背景,如24千克,这样就多了许多信息,人们会根据经验联系到:我能不能举起它,它大概的体积,可能的结论是拉杆箱吧。如果再告诉你,是体重24千克,可能我们脑中会出现一个小孩子,应该是一个奔跑跳跃的形象,并且可能会继续出现一些模糊的结论与问题:应该上学了吧?可能是几年级?应用数学是问题驱动的,在不断地提出问题的同时,我们对本质问题的理解也就越来越清晰,越来越接近目标,或者说“逼近”了。
当数据进入人脑,人脑一般会根据经验知识将与这个或这些数据有关的链接都调动起来,对数据进行拆解、融合、重构,给出可能问题的可能模糊影像,同时准备回答下一个可能的模糊问题。
一个数据的信息通俗地讲是一维的。在前述问题中,如果再告诉年龄、身高等,那么可以联系起来的内容或者说演绎出来的内容就有维数型地增长,离目标更加接近,目标的形象也更加清晰。但如果体重为24千克,身高两米,不对,那不会是人,那应该可能是一条蟒蛇;体重为24千克,年龄刚出生一周,那可能是小老虎。刚才我们由经验获得的结论方向——小孩,一开始可能是错误的。错误的原因是我们希望获得的结论是在经验积累中最有可能出现的人类。为了有效回答问题,出现这样的可能引导到错误结论的经验推断通常是必须的,用数学语言说这是一个先进的算法。先生出触角,因为需要的结论更可能与人类有关,人类毕竟更加关注自身。我们就在探索过程预先激发起与可能结果更为有关联的方向或领域。我认为在大数据时代,对于数学就是要如何演绎生长出这样的研究触角,如何合理利用异构的经验型的数据,并把经验型的后台数据与前台数据集合起来。信息越多,可以得到的结论越多,更为确切地,这里应该把结论说成概念——一种模糊的结论,这些数据可能与某种特性有更强的联系,有可能导出更为广泛的或更为清晰的结论。这些结论或者更为精确地说——概念,可能还是模糊的,但确实更为可能提供更为充分的信息。可喜的是,概率论的发展为数学的发展提供了一个新的法宝。
现在许多案件的破获都利用摄像头的视频信息。譬如,波士顿爆炸案由一系列的模糊信息得出越来越清晰的结论:炸弹包裹是黑色手提包,有带黑色棒球帽者曾提着黑色手提包,带黑色棒球帽者经常与带白色棒球帽者在一起。带白色棒球帽者的脸部清晰照片经警察局比对后,发现该人有案底记录。但要处理这些照片需要很多工作量,这些工作有时只靠人力还不行。每个人只能处理一部分照片,而更为关键的是将各照片中的模糊结论或模糊概念联系起来的模糊结论。首先,整理这些照片,得到一些关键词,最好在照片的拍摄过程中照相机就已经进行了自动处理(离线处理、预处理),放在照片附带的说明文件中,更好的就是做成文件名,这相当于给每张相片提供了一个身份证号码。而关键词或者说标签最好是标准化的,当然越标准化越会流失一些模糊信息。由于视角的不同与关心问题的角度不同,每个人的关键词或者标签的选择也是不同的,这样又导致个性化关键词的语义模糊匹配问题。在数学上,对个体智能或低层数据处理的研究已经达到很高的阶段,并且可以说已经看到基本解决此类问题的曙光。但对群体智能,如何融合多个个体智能的高层数据结构处理、描述、传输,以及动力系统行为的研究还处在一个起步与黑暗的阶段,也就是说,大数据处理的高层云模糊设计的数学描述,是大数据处理是否可以有所斩获的关键。具体就是如何整理非结构化的数据,使之成为半结构化或者结构化的数据,同时又不丢失可能有用的信息。
用数学语言描述大数据处理问题,总结起来有这么几个关键:(1)标准关键词或者说基的选择;(2)拟合及数值逼近;(3)特征提取、分类;(4)多结点关系的动力学行为。
大数据处理经常与并行计算与云计算两个名词联系起来。要理解大数据研究的进步,就要了解它们的区别:两个概念都是处理大数据问题,都是在多个结点上计算的综合与融合。并行计算是由软件总设计师将某个问题拆开来分成一些小问题,分配给一些人,让这些人一起分别计算;云计算是让每个可以计算的人都来参与计算,同时每个人都可以获得别人计算的结果。可以用一个生物学的实验来说明什么是云计算。在一块玻璃板上放一些麦片,然后放上一点黏性霉菌。麦片是按照东京附近的城市位置与规模大小摆放的。第二天玻璃板上出现的是什么?这是一张东京附近的交通流量图,与实际的地图几乎一样,这为设计高速公路、铁路以及它们的承载能力提供了蓝本。这是因为几代黏性霉菌不自觉地用生命参与计算所获得的成果。可见,对于云计算,关键是提供并从别人那里得到有用的信息。如何数学描述这个问题,是大数据云计算的核心问题。
复旦大学数学科学学院 吴宗敏
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。