PDF 物理页索引 2390
文件中的第 2391 页 · 印刷页码:未识别
图3-3 手机百度的“为你写诗”生成的七言诗
注:使用手机百度或智能革命App扫描图片可见AR效果。
人类的数据镜像
人类在科技产品的娇惯下,口味日渐挑剔,大数据能从那些枯燥乏味的选择之上给出一抹亮眼的色彩。以前的电视机不会回应我们的喜怒哀乐,但现在成熟的视频网站正在耐心仔细地收集着我们的每一种反馈,不管是收藏还是下载,是关闭还是快进,都一一记录,然后利用大数据计算出我们的喜好、消费能力等各种指标。
美剧《纸牌屋》风靡一时,剧中政客们斗牌,剧后则是大数据在下一盘看不见的大棋。出品人为美国著名的网络电视公司Netflix。它深谙大数据分析的妙处,除了以上提到的用户行为,还会尽力收集观看时段、观看设备、观看人数和场景,分析用户喜欢的节目中的主演状况、导演是谁等。通过大数据分析,断定《纸牌屋》的题材会火爆,于是从BBC(英国广播公司)手中高价购买了翻拍版权,并预测凯文·史派西是最合适的主演人选。最终结果证明了Netflix对于《纸牌屋》的押注完全正确。当我们在荧幕前感叹史派西所扮演的总统拥有掌控一切的智慧时,却没有意识到“数据总统”的威力。
美国新任总统特朗普就是一位充分利用数据竞选的总统。据彭博等媒体报道,他的技术团队通过脸书、推特等平台上的用户公开数据,如点赞、转发、收藏行为等,精准描述选民画像,向他们推送因人而异的竞选广告。甚至特朗普的每条推特、每条脸书都是有针对性的,不同内容对不同网民可见。
PDF 物理页索引 2391
文件中的第 2392 页 · 印刷页码:未识别
通过大数据对用户进行精准画像,这也是百度大脑擅长的领域。2016年十分火爆的电影《魔兽》的出品方传奇影业与百度大脑合作,根据对百度海量用户的分析,将电影广告精准推荐给潜在观众。虽然这部电影在北美市场票房不佳,但在中国大卖2.21亿美元。当魔兽粉丝在影院里高喊“为了部落!”的时候,也许正是大数据悄悄赋予了他们原力。
中国人都说“民以食为天”,比起挑选电影,怎么能“吃好”更是全民关心的热门话题。2013年百度曾发布过一个《中国十大“吃货”省市排行榜》,让网友乐此不疲。这个榜单利用了百度知道和百度搜索的大数据,根据网友们多达7700万条关于“吃”的问答,总结出了各地不同的饮食习惯和特色。
海量数据中被挖掘出了不少有趣的现象:“吃什么水果减肥最快”有多达30万人提问过,看来许多网友在吃的同时还不忘顾及身材;“昨天晚上还活着的螃蟹死了,还能吃吗?”这一问题有高达6万条回复,看得出中国“吃货”对于螃蟹的热情特别高。当然更多的还是诸如“××能吃吗”“××怎么吃”这类的日常问题,光是“菠菜和豆腐能不能一起吃”就引起了无数讨论。
这些问题数量庞大并且看似混乱重复。但重复正是大数据的妙处。大数据可以从中捕捉到更深刻的含义。如福建、广东地区的网友经常会问某种虫是否可以吃的问题;而西北网友则对海鲜的吃法颇感疑惑。不同用户关心的食材、做法各不相同,百度大数据正是从中归纳出了各省市的“吃货”属性。在这背后大数据考量了网友的地理位置、提问回答的时间、问题中关于吃法或者做法等信息,甚至将网友使用的手机品牌等各种维度都纳入计算当中。
除了对人类关注信息的描摹,大数据甚至在构造我们的身体。现在许多人都十分熟悉的健身腕带,就是通过收集我们日常运动作息的数据,例如,行走步数、卡路里消耗、睡眠时长等来分析我们的健康状况并提出建议。更进一步,未来我们可以将个人数据上传,通过大数据检测我们罹患各种疾病的可能性或者潜在威胁,更好地预防疾病。
PDF 物理页索引 2392
文件中的第 2393 页 · 印刷页码:未识别
关于生活中的大数据有许多例子。我们现在用到的绝大部分成熟的互联网产品,无论是计算机还是智能手机,背后都或多或少有大数据的身影。当我们理所当然地使用这些服务时,就已经邀请大数据进入我们的生活。它默默注视着我们生活中的每一个细节,潜移默化地鼓励和劝告我们做出选择,强化了我们的角色。
突破<sub>:</sub>机器学习与人工智能
1950年,阿兰·图灵创造了一个针对机器的测试方法,即后来大名鼎鼎的“图灵测试”。这位充满传奇色彩的科学家认为,如果一台机器能够与人类展开对话(通过电传设备)而不能被辨别出其机器身份,那么就可以认为这台机器具有智能。这一简化使图灵能够令人信服地说明“思考的机器”是可能的,而“图灵测试”直到现在也被当作判断人工智能的重要标准。
这个标准已经暗示了一个新的路径,只要机器表现得像人类,我们可以不必过分关心机器的运作规则是什么。有人提出让机器自己来学习规则的办法,人类不用操心那些规则是什么。
1949年,唐纳德·赫布基于神经心理学的学习机制,踏出了机器学习的第一步,创造了此后被称为赫布学习规则的方法。赫布认为神经网络的学习过程发生在神经元之间的突触部位,突触的联结强度随着突触前后神经元的活动而变化,正确的反馈会让两个神经元的联系得到强化。这个原理机制类似巴甫洛夫的条件反射实验:每次给狗喂食前都先响铃,时间一长,狗的神经系统就会将铃声和食物联系起来。赫布用一套加权公式来模仿人类的神经网,权重就代表神经元之间联系的强弱。赫布给机器创造了一套可以简单区分事物的方法,对于每个数据,让决策树程序做出判断,判断对了就奖励(提高函数的权重),判断错了就惩罚(降低函数的权重)。他利用这个方法创造了一个分类器,可以提取数据集的统计特性,把输入信息按照它们的相似程度划分为若干类。看上去如同人类在观察某种现象时,会观察和总结并区分事物,但机器的这种“观察”更接近一种通过训练达成的条件反射,并非如人类那样思考,重视的是数据中蕴含的相关性关系,而非人类思维中的因果性关系。
PDF 物理页索引 2393
文件中的第 2394 页 · 印刷页码:未识别
之后的十几年中,关于人工智能的研究愈发热烈,灵感一个接一个地涌出。1952年,IBM科学家亚瑟·塞缪尔成功开发了一个可以下得越来越好的跳棋程序。他创造了“机器学习”的概念,并将它定义为“可以提供计算机能力而无需显式编程的研究领域”。
1957年,Rosenblatt(罗森布拉特)提出了感知机的概念,成为日后发展神经网络和支持向量机(Support Vector Machine,SVM)的基础。感知机就是一种用算法构造的“分类器”,是一种线性分类模型,原理就是通过不断地训练试错以期寻找一个合适的超平面把数据分开(超平面可以这样理解:三维坐标空间里二维的形状称作平面,能划分三维空间。如果数据是多维的,那么N维坐标空间里,N-1维就是超平面,能划分N维空间)。如同你把写着“正确”和“错误”的两堆球输入进去,感知机可以为你找出这两堆不同球的分界线。
感知机好比在输入和输出之间只有一层的神经网络。当面对复杂一点的情况时就力不从心了,比如当“正确”和“错误”的球互相混合的时候,或者又有第三种球出现的时候,感知机就无法找到那个分类的界线。这使感知机很难在一些即使看似简单的问题上有所突破。
如今,不需要人类输入规则(编程),而是让机器自己寻找规则,这样看上去机器就有了自己的智能。今天的人工智能便是在机器学习的基础上发展起来的,只是成长速度受到硬件和方法的限制。
PDF 物理页索引 2394
文件中的第 2395 页 · 印刷页码:未识别
如果多台电脑、多个芯片联网进行机器学习,而且具备多个芯片网络层次,就进入了所谓的“深度学习”的范畴。在20世纪70年代末,Geoffrey Hinton教授等人已经发现,如果能实现多层的神经网络,就可以逐层递进找到模式中的模式,让计算机自己解决复杂的问题。那时他们就开发了“反向传播”算法神经网络。但是多层神经网络的复杂性也导致对其训练的难度大大增加,数据不足和硬件计算能力成为掣肘。
从20世纪60年代中期到20世纪70年代末,机器学习的发展步伐几乎处于停滞状态。这种情况一直到20世纪80年代才有所好转。随着计算机性能的突飞猛进和互联网的到来,人工智能研究终于如虎添翼,在20世纪90年代,现代机器学习初步成形。
互联网在20世纪90年代投入商用,使分布式计算方法获得长足发展。超级计算机造价昂贵,而分布式计算技术则发挥了“人多力量大”的优势,让多台普通计算机可以协同工作,各自承担计算任务的一部分,并把计算结果汇总,效率可以超过超级计算机,而且分布式的结构正好适应了日渐增多的数据量。
计算机神经网络生长与深度学习
由于传统人工智能一味依赖科学家输入的规则模型,导致它只有在解决一些规则比较清楚的问题时才比较有效,比如击败卡斯帕罗夫的“深蓝”就是这样一种“人工智能”。当面对识别一张图片这类人类在婴儿阶段就能学会的简单问题时,这类人工智能却无计可施,因为这种认知类问题只有一个模糊的概念,没有清楚简单的规则。而计算机神经网络的特点就是它不需要人类提前告知规则,它会自己从海量的基础数据里识别模式(规则)。
PDF 物理页索引 2395
文件中的第 2396 页 · 印刷页码:未识别
顾名思义,神经网络类似人类大脑,由一个个神经元组成,每个神经元和多个其他神经元连接,形成网状。单个神经元只会解决最简单的问题,但是组合成一个分层的整体,就可以解决复杂问题。
Geoffrey Hinton认为,传统的机器学习方法只利用了一层芯片网络,在遇到真正复杂的问题时,处理效率就会变得十分低下。深度学习的最核心理念是通过增加神经网络的层数来提升效率,将复杂的输入数据逐层抽象和简化。也就是说,将复杂的问题分段解决,每一层神经网络就解决每一层的问题,这一层的结果交给下一层去进行进一步处理。
有一层神经网络,就可以找到简单的模式;有多层神经网络,就可以找出模式中的模式。以人脸识别为例,神经网络的第一层只专注于边长几十个像素之类的图像区域,从中识别出一些形状(形状就是模式)——眼睛、鼻子、嘴巴等。再把这些已经识别出的形状交给下一层神经网络,下一层网络在已有的识别结果里,又发现了更大的模式——眼睛、鼻子、嘴巴可以组合成人脸。如果描述得更数学一点,当下流行的深度神经网络可分为应对具有空间性分布数据的CNN(卷积神经网络)和应对具有时间性分布数据的RNN(递归神经网络,又称循环神经网络)。
CNN往往用于图像识别,正如上文描述的,网络的第一层被训练成可以完成这样一个“小目标”——识别图像中局部的独立模块,如一个方块、一个三角形,或者一个眼睛。在这一层,人类输入大量图片数据,只为让该层神经可以辨别基本的局部图形“边缘”,即一个像素旁边没有任何东西。接下来的每一层都在前一层得出的信息中寻找更高层次的模式。这种方法模拟了人眼组合信息的方式,丢弃次要细节,优先识别出某种显著模式。如几个小块和一个圆圈合在一起成为一张脸,不论它出现在图像中的什么位置,人眼会首先注意这张脸,而不是平均注意图像的所有部分。
PDF 物理页索引 2396
文件中的第 2397 页 · 印刷页码:未识别
RNN则往往用于语音识别和自然语言处理。因为语音和语言是一种按照时间分布的数据,下一句的意义和上一句有关。RNN网络可以记住历史信息。假设我们需要开发一个语言模型,用前面的句子预测后面的词汇。给定“I was born in China in 1976. My college majoris mathematics. I speak fluent \_\_\_”这句话的最后一个词显然是Chinese(汉语),这对人类很简单,计算机神经网络则需要能够调取到之前的“China”(中国)信息才能做到,这就需要有一种循环设计,使神经网络能够具有一种时间上的深度。
深度神经网络大大优化了机器学习的速度,使人工智能技术获得了突破性进展。在此基础上,图像识别、语音识别、机器翻译等都取得了长足进步。语音输入比打字快得多,机器翻译让我们基本可以看懂一篇外文资讯,图像识别则早已可以凭借一张少年时期的照片就在一堆成人照片中准确找到这个人,甚至可以把很模糊的照片恢复成清晰且准确的照片。
基于深度学习的人工智能和过去的人工智能原理不同,但与我们所了解的数据挖掘有相似的逻辑:先得到结果,反向寻找模式。这个过程被称作训练。
我们用简单的数学知识就能把机器学习、训练和深度学习的基本思维方式解释清楚。
这个方法堪比数学领域的哥白尼式倒转,以简单函数为例可以很好地说明这个倒转。
过去我们解决数学问题,一般是先知道公式(函数),然后输入数据,求出结果。就以y=ax+b这种类型的函数为例。比如,已知y=2x+1,令x=1,可以求出y=3。这里x就是“输入”,得到的y就是“输出”。
PDF 物理页索引 2397
文件中的第 2398 页 · 印刷页码:未识别
更高阶一点的数学能力是知道公式和输出,要把输入值求出来,比如已知y=2x+1,令y=5,求x。
再进阶一步,就触摸到了机器学习。当我们不知道a、b这些系数,但是知道y和x的值,需要把a和b求出来,也就是已知输入和输出,要把函数系数求出来。在y=ax+b这个函数里,我们只需要知道两组x、y的值就能确认a和b。
更进一步,假设我们有一组输入和输出数据,但完全不知道函数的形式,又该怎么办呢?这就需要构造函数。比如,已知x=2,y=5,求f(x)。这在输入和输出数据很少的情况下是无法计算的,f(x)可能是2x+1,也可能是1x+3,甚至是x<sup>2</sup>+1,以及无数种其他情况。但是如果x和y的数量充足,数学家就能通过“逼近计算”方法,不断调整公式权重,近似求得这个函数。
问题来了,现代生产和生活中产生的数据都无比巨大复杂,如果要从中求得蕴含的函数就需要非常“高能”。人类的脑力已经无法胜任,但是可以把这项工作交给计算机。拟合函数就在这里大显神通。深度学习神经网络模拟了人脑的神经节点,每个节点实际上就是一个函数调节器,无数函数彼此交叉连接起来。通过数学上的矩阵、优化、正则式等各种方法,深度学习过程不断调整着每个函数系数的权重,在数据充分、构造原理合适的情况下,不断演化的函数会越来越准确地拟合大部分数据,于是我们就可以通过这套函数来预测尚未发生的情况。这个过程就是我们所说的“训练”。
吴恩达在谷歌工作的时候,领导团队训练出了著名的计算机识猫系统。
如果用老式的符号式人工智能方法来编程,那么人类首先要对猫进行细致的定义,如尖耳朵、圆眼睛、直胡须、四条腿、长尾巴……把这些特征定义转化为函数输入计算机,然后向计算机展示一张图片。电脑就会分解图片中不同的元素,然后再将这些元素和程序中的规则进行比对。符合尖耳朵、圆眼睛、直胡须、四条腿、长尾巴等特征,那么这就是一只猫。
PDF 物理页索引 2398
文件中的第 2399 页 · 印刷页码:未识别
而机器学习的方法大相径庭,科学家不会预先编写猫的定义,而是让计算机自己去寻找。科学家只是把图片大量“喂”给计算机,让计算机输出标签——是猫或者不是猫。在识别猫的神经网络中有无数的通路,正如人的脑神经一样,每个通路都会输出自己的结果,如果答对了,科学家就会给这条通路加权(可以理解成亮绿灯);答错了,就降低权重(可以理解成亮红灯)。经过足够多的尝试,如用10万张各种猫的图片做测试之后,那些得到加权的神经通路就组成了一个识别装置(一组复杂的函数联结)。然后在没有科学家告诉它识别结果的情况下,也可以识别出新的图片中的猫来。训练数据越多,这个函数集合就越复杂但也越精确。
这就是“监督学习”——依赖大量有标签的数据。吴恩达领导的识猫项目甚至可以从零开始学习,不依赖标签就可以辨识出猫。当研究者向神经网络展示了几百万帧静态的猫图片,神经网络自己就获得了一个稳定的模型,从此,它可以和所有的儿童一样,毫不犹豫地识别出猫的脸。
吴恩达的博士研究生夸克·维·乐为此撰写了论文,表明机器学习同样能识别原始的无标签数据,并建立自己的知识模式,它的意义绝非只在于识别猫。
二十多年前,凯文·凯利以“蜂群效应”开始了杰出的新科技著作《失控》的叙述。他以此预测了分布式计算等新技术的出现,那时他可能还没有看到“蜂群效应”中蕴藏的机器学习原理。每一个蜜蜂的运动都是随机的,但是蜂群总能向着一个方向飞去。大量蜜蜂各自的行动(输入)汇总成一个总的运动(输出),中间的逻辑(函数)就是“蜂群效应”。计算机神经网络里的信息运动就像超音速飞行的蜂群采集着数据花粉。在它们看似狂乱的飞舞轨迹中,一张猫的脸庞凸显出来。百度大脑识别猫的能力已经远超人类,它甚至能够精确区分不同种类的猫。
PDF 物理页索引 2399
文件中的第 2400 页 · 印刷页码:未识别
所以对人类而言,机器学习往往在自己的“内部”形成一个“黑箱”。有人警告这种超越人类理解的黑箱会带来危险,因为我们不知道机器如何思考,是否产生了危险思维。不过更多时候,深度学习会给人带来意想不到的惊喜。
深<sup>“</sup>度<sup>”</sup>往事
百度语音识别开发团队的刘洋工程师说过一件趣事:一位语音团队成员在家测试语音识别程序时,无意间清唱了几句歌词,然后歌词竟然被准确识别了出来。这令他很吃惊,其他公司的语音识别技术都还做不到这个事情。而百度团队也并没有针对清唱这种形式做过训练,也没有制定过这个目标。系统怎么做到的他们也不知道,只能说训练数据达到了足够大的程度,程序在不断训练、学习的过程中,自己修得了这项令人称奇的技能。
人们对世界的变化往往后知后觉。在没有深度学习的日子里,世界似乎也一切正常。但有些看不到的代价在被一些人默默承受。周克华这个连环杀手十多年间神出鬼没,为了擒获他,公安部门调集了几乎所有的视频监控材料要发现他的踪迹。那时候公安干警怎么检索视频?全靠肉眼去看!几百甚至几千个小时的视频一段段去看,有的干警甚至累昏在岗位上。而基于深度学习技术的视觉识别将改变这一切。目前先进的监控系统背后都有强大的人工智能支持,在经过大数据训练之后,可以瞬间从视频里识别出人脸、车牌、车型等,并且加以语义化,方便人类检索。然后只要给计算机几张嫌疑人的照片,神经网络就可以飞快地从海量视频中把与嫌疑人有关的镜头都找出来供人类参考。安防企业宇视科技就开发了这样的智能摄像系统,再结合百度地图,就可以迅速定位嫌疑人或者车辆的运动轨迹。