有一层神经网络,就可以找到简单的模式;有多层神经网络,就可以找出模式中的模式。以人脸识别为例,神经网络的第一层只专注于边长几十个像素之类的图像区域,从中识别出一些形状(形状就是模式)——眼睛、鼻子、嘴巴等。再把这些已经识别出的形状交给下一层神经网络,下一层网络在已有的识别结果里,又发现了更大的模式——眼睛、鼻子、嘴巴可以组合成人脸。如果描述得更数学一点,当下流行的深度神经网络可分为应对具有空间性分布数据的CNN(卷积神经网络)和应对具有时间性分布数据的RNN(递归神经网络,又称循环神经网络)。
CNN往往用于图像识别,正如上文描述的,网络的第一层被训练成可以完成这样一个“小目标”——识别图像中局部的独立模块,如一个方块、一个三角形,或者一个眼睛。在这一层,人类输入大量图片数据,只为让该层神经可以辨别基本的局部图形“边缘”,即一个像素旁边没有任何东西。接下来的每一层都在前一层得出的信息中寻找更高层次的模式。这种方法模拟了人眼组合信息的方式,丢弃次要细节,优先识别出某种显著模式。如几个小块和一个圆圈合在一起成为一张脸,不论它出现在图像中的什么位置,人眼会首先注意这张脸,而不是平均注意图像的所有部分。
RNN则往往用于语音识别和自然语言处理。因为语音和语言是一种按照时间分布的数据,下一句的意义和上一句有关。RNN网络可以记住历史信息。假设我们需要开发一个语言模型,用前面的句子预测后面的词汇。给定“I was born in China in 1976. My college major is mathematics. I speak fluent_____”这句话的最后一个词显然是Chinese(汉语),这对人类很简单,计算机神经网络则需要能够调取到之前的“China”(中国)信息才能做到,这就需要有一种循环设计,使神经网络能够具有一种时间上的深度。
深度神经网络大大优化了机器学习的速度,使人工智能技术获得了突破性进展。在此基础上,图像识别、语音识别、机器翻译等都取得了长足进步。语音输入比打字快得多,机器翻译让我们基本可以看懂一篇外文资讯,图像识别则早已可以凭借一张少年时期的照片就在一堆成人照片中准确找到这个人,甚至可以把很模糊的照片恢复成清晰且准确的照片。
基于深度学习的人工智能和过去的人工智能原理不同,但与我们所了解的数据挖掘有相似的逻辑:先得到结果,反向寻找模式。这个过程被称作训练。
我们用简单的数学知识就能把机器学习、训练和深度学习的基本思维方式解释清楚。
这个方法堪比数学领域的哥白尼式倒转,以简单函数为例可以很好地说明这个倒转。
过去我们解决数学问题,一般是先知道公式(函数),然后输入数据,求出结果。就以y=ax+b这种类型的函数为例。比如,已知y=2x+1,令x=1,可以求出y=3。这里x就是“输入”,得到的y就是“输出”。
更高阶一点的数学能力是知道公式和输出,要把输入值求出来,比如已知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,甚至是x2+1,以及无数种其他情况。但是如果x和y的数量充足,数学家就能通过“逼近计算”方法,不断调整公式权重,近似求得这个函数。
问题来了,现代生产和生活中产生的数据都无比巨大复杂,如果要从中求得蕴含的函数就需要非常“高能”。人类的脑力已经无法胜任,但是可以把这项工作交给计算机。拟合函数就在这里大显神通。深度学习神经网络模拟了人脑的神经节点,每个节点实际上就是一个函数调节器,无数函数彼此交叉连接起来。通过数学上的矩阵、优化、正则式等各种方法,深度学习过程不断调整着每个函数系数的权重,在数据充分、构造原理合适的情况下,不断演化的函数会越来越准确地拟合大部分数据,于是我们就可以通过这套函数来预测尚未发生的情况。这个过程就是我们所说的“训练”。
吴恩达在谷歌工作的时候,领导团队训练出了著名的计算机识猫系统。
如果用老式的符号式人工智能方法来编程,那么人类首先要对猫进行细致的定义,如尖耳朵、圆眼睛、直胡须、四条腿、长尾巴……把这些特征定义转化为函数输入计算机,然后向计算机展示一张图片。电脑就会分解图片中不同的元素,然后再将这些元素和程序中的规则进行比对。符合尖耳朵、圆眼睛、直胡须、四条腿、长尾巴等特征,那么这就是一只猫。
而机器学习的方法大相径庭,科学家不会预先编写猫的定义,而是让计算机自己去寻找。科学家只是把图片大量“喂”给计算机,让计算机输出标签——是猫或者不是猫。在识别猫的神经网络中有无数的通路,正如人的脑神经一样,每个通路都会输出自己的结果,如果答对了,科学家就会给这条通路加权(可以理解成亮绿灯);答错了,就降低权重(可以理解成亮红灯)。经过足够多的尝试,如用10万张各种猫的图片做测试之后,那些得到加权的神经通路就组成了一个识别装置(一组复杂的函数联结)。然后在没有科学家告诉它识别结果的情况下,也可以识别出新的图片中的猫来。训练数据越多,这个函数集合就越复杂但也越精确。
这就是“监督学习”——依赖大量有标签的数据。吴恩达领导的识猫项目甚至可以从零开始学习,不依赖标签就可以辨识出猫。当研究者向神经网络展示了几百万帧静态的猫图片,神经网络自己就获得了一个稳定的模型,从此,它可以和所有的儿童一样,毫不犹豫地识别出猫的脸。
吴恩达的博士研究生夸克·维·乐为此撰写了论文,表明机器学习同样能识别原始的无标签数据,并建立自己的知识模式,它的意义绝非只在于识别猫。
二十多年前,凯文·凯利以“蜂群效应”开始了杰出的新科技著作《失控》的叙述。他以此预测了分布式计算等新技术的出现,那时他可能还没有看到“蜂群效应”中蕴藏的机器学习原理。每一个蜜蜂的运动都是随机的,但是蜂群总能向着一个方向飞去。大量蜜蜂各自的行动(输入)汇总成一个总的运动(输出),中间的逻辑(函数)就是“蜂群效应”。计算机神经网络里的信息运动就像超音速飞行的蜂群采集着数据花粉。在它们看似狂乱的飞舞轨迹中,一张猫的脸庞凸显出来。百度大脑识别猫的能力已经远超人类,它甚至能够精确区分不同种类的猫。
所以对人类而言,机器学习往往在自己的“内部”形成一个“黑箱”。有人警告这种超越人类理解的黑箱会带来危险,因为我们不知道机器如何思考,是否产生了危险思维。不过更多时候,深度学习会给人带来意想不到的惊喜。
<h2>
深“度”往事</h2>
百度语音识别开发团队的刘洋工程师说过一件趣事:一位语音团队成员在家测试语音识别程序时,无意间清唱了几句歌词,然后歌词竟然被准确识别了出来。这令他很吃惊,其他公司的语音识别技术都还做不到这个事情。而百度团队也并没有针对清唱这种形式做过训练,也没有制定过这个目标。系统怎么做到的他们也不知道,只能说训练数据达到了足够大的程度,程序在不断训练、学习的过程中,自己修得了这项令人称奇的技能。
人们对世界的变化往往后知后觉。在没有深度学习的日子里,世界似乎也一切正常。但有些看不到的代价在被一些人默默承受。周克华这个连环杀手十多年间神出鬼没,为了擒获他,公安部门调集了几乎所有的视频监控材料要发现他的踪迹。那时候公安干警怎么检索视频?全靠肉眼去看!几百甚至几千个小时的视频一段段去看,有的干警甚至累昏在岗位上。而基于深度学习技术的视觉识别将改变这一切。目前先进的监控系统背后都有强大的人工智能支持,在经过大数据训练之后,可以瞬间从视频里识别出人脸、车牌、车型等,并且加以语义化,方便人类检索。然后只要给计算机几张嫌疑人的照片,神经网络就可以飞快地从海量视频中把与嫌疑人有关的镜头都找出来供人类参考。安防企业宇视科技就开发了这样的智能摄像系统,再结合百度地图,就可以迅速定位嫌疑人或者车辆的运动轨迹。
深度学习在许多用户看不到的地方改变了我们的生活。为了采集和维护地图信息,需要通过采集车拍摄沿路的图像。传统的采集车上要坐两个人,采集过程分为内部作业和外部作业两部分,外部作业就是要开车出去,把沿途的东西都录下来。除了录像,副驾驶要负责用声音记录,每经过一个地方,要说前方这里有一个探头,那里有一个红绿灯,这里是四车道,左转、直行、右转……这是传统的方式,就是一定要把所有看到的东西通过录像和声音的方式记录下来,然后再把数据存储寄到数据处理中心。数据处理中心负责内部业务的人员再一分钟一分钟地去记录比对资料,最后把路面上的这些元素在地图上标识出来,这基本上是一个劳动密集型的工作方式。
<img src="/uploads/allimg/200412/1-2004120Q236155.jpg" />
图3-4 百度地图采集车
而应用了智能图像识别技术以后,我们先通过深度学习训练机器去辨识红绿灯、车道、探头等路面元素,之后我们只需要将沿路拍摄的全景图像直接交给机器辨识,就能得到完整的地图信息。这就极大地节省了人力,也极大地提高了效率和准确性。
深度学习除了软件算法,还有一件关于硬件的往事堪称佳话。历史上有很多发明在后来的应用中偏离了初衷。比如作为炸药的硝酸甘油可以用于心脏病急救,为了发明战略物资橡胶的人工合成替代品,结果却造出了橡皮泥……在深度学习领域,GPU的作用也被改变了。GPU本来是显卡,用来渲染图像,给图形计算加速,后来却成为深度学习的主要硬件。因为显卡芯片具备比CPU更强的浮点运算能力,原本就用于处理图像这种矩阵数据,非常适合机器学习领域对数据的计算。早期当吴恩达团队率先使用GPU进行机器学习的时候,很多人并不理解。不过今天这已经成为主流。
但最深的往事还是来自搜索引擎。
<h2>
搜索引擎:人工智能的命运细线</h2>
对于今天的中国网民来说,遇到问题“百度一下”已经成为一种习惯。与百度今日的影响力和规模相对的,百度在人工智能领域的专注反而引起一些不理解。更专业的疑问是:电商、游戏、社交、通信……从PC到移动互联设备,无数个风口过去了,百度为何只对人工智能情有独钟?
问题的答案可能与很多人的思维相反,与其说是百度选择了人工智能,不如说是人工智能选择了百度。这是百度基因里的使命,辜负这个使命,会是百度、中国甚至世界的损失。
<h3>
一切都源于搜索</h3>
搜索引擎对于一般用户来说只是一种工具,可以帮助他们找到需要的信息;对于提供内容的网站来说,搜索引擎是一种媒介,帮助它们将自己的内容传递给有需要的用户。在这个过程中,首先搜索引擎要“倾听”用户的需求,即小小搜索框里敲下的那几个关键词,究竟是想要找到什么;其次,搜索引擎要“检索”数量庞大的内容,从中挑选出最符合要求的那些结果提供给用户。
我们审视一下这个过程,是否和我们描述过的深度学习概念模式十分相像?输入和输出在这里都有了,甚至每一次搜索行为都可以看作是对搜索引擎的一次训练。那么谁来告诉搜索引擎输出结果的好坏呢?是用户。用户的点击就是一种回答,如果用户没有点击排在前面的结果,而是去点击第二页的结果,这就是对系统的推荐做出了降权举动。
在这个过程中,搜索引擎不仅提高了推荐的准确性,还越来越懂得判断所收录网页的“好”与“坏”,渐渐学会了像人类一样去分辨网页。最初,它只会读取标题、关键字、描述等页面元素;而现在,百度这样的搜索引擎已经可以辨识出哪些是隐藏的虚假信息,哪些是广告,哪些是真正有价值的内容。
人通过搜索引擎获取信息的行为就是人与机器对话的过程。与以往的人机交互不一样,这个过程基于“自然语言”。相比图像识别、语音识别等,自然语言处理(Natural Language Processing,NLP)是搜索引擎最核心的基础技术。
王海峰认为思考和获得知识的能力成就了今天的人类,这种能力需要通过语言来找到思考的对象和方法,并外化为我们看、听、说和行动的能力。相对于这些能力,语言是人类区别于其他生物的最重要的特征之一。视觉、听觉和行为能力不仅为人类所拥有,动物也有,甚至很多动物的视觉、听觉,包括行动能力比人类还强,但是语言是人类特有的。而建立在语言之上的知识总结、提炼、传承以及思考,也都是人类特有的。
从人类历史之初,知识就以语言的形式进行记录和传承,用来书写语言的工具不断改进:从甲骨到纸张,再到今天的互联网。所以不管是百度还是谷歌,都认为自然语言处理对整个人工智能的未来都是非常大的挑战。相比之下,语音识别,如声音到文字,或是文字到声音,实际上解决的是一个信号转换问题,但语言不是,语言和人的知识、思维整体相关。
像AlphaGo这样的项目,对于普通人来讲是一件非常震撼的事情,我们也认为它是一个很大的成绩。但是我们不能忽略它的特点:基于完全信息、规则是明确的、空间是封闭的和特定的。为围棋训练出来的智能系统下象棋就不好用。相比较而言,自然语言的处理是更难解决的一个问题。对于下围棋来说,只要计算能力和数据充分,就几乎没有不确定性,而语言问题存在太多不确定性,如语义的多样性。
为了让计算机能够“理解”和生成人类语言,科学家做了大量的工作。在百度,基于大数据、机器学习和语言学方面的积累,研发出了知识图谱,构建了问答、机器翻译和对话系统,建立了可以分析、理解问题(query)及情感的能力。
仅就知识图谱来说,基于不同的应用需求可分为三类:实体图谱(entitygraph)、关注点图谱(attentiongraph)和意图图谱(intentgraph)。
在实体图谱里,每一个节点都是一个实体,每个实体都有若干个属性,节点之间的连接是实体之间的关系。目前百度的实体图谱已经包含了数亿实体、数百亿属性和千亿关系,这些都是从大量结构化和非结构化数据中挖掘出来的。
现在我们来看一个例子,假如有人搜索:窦靖童的爸爸的前妻的前夫。
这句话里包含的人物关系是非常复杂的,然而,我们的推理系统可以轻松地分析出各实体之间的关系,并最终得出正确答案。
百度的自然语言处理技术还可以分析复杂的语法,甚至辨识句子的歧义,而不仅仅是字面匹配。
<img src="/uploads/allimg/200412/1-2004120Q23A00.jpg" />
图3-5 人物关系图1
再来看另外一个例子:梁思成的儿子是谁;梁思成是谁的儿子。
<img src="/uploads/allimg/200412/1-2004120Q236159.jpg" />
图3-6 人物关系图2
如果使用传统的基于关键词的搜索技术,我们将会得到几乎相同的结果。然而,经过语义理解技术的分析,机器可以发现这两个句子的语义是完全不一样的,相应地就能从知识图谱中检索到完全不同的答案。
还有第三句话:谁是梁思成的父母。从字面上来看,这跟第二个句子不同,但是经过语义理解技术,机器发现这两个句子要找的是同一个对象。
深度学习技术进一步增强了自然语言处理能力。百度从2013年开始在搜索引擎中应用DNN模型,至今已经对这个模型进行了几十次的升级迭代,DNN语义特征是百度搜索里非常重要的一个特征。其实,不仅搜索结果相关度变得更高,在篇章理解、关注点感知和机器翻译等方面也都有大幅提升。
搜索所需要的技术基础也正是人工智能所需要的技术基础。比如就云计算来说,主管百度云工作的张亚勤认为,搜索是最大的云计算应用,没有云就没有办法做好搜索,百度是在云里出生的。
<h3>
搜素引擎的继续进化</h3>
随着移动互联网和人工智能的兴起,搜索的形态在发生很大的改变。比如搜索入口变化了,除了通过网页搜索框发起搜索外,基于不同平台和硬件的搜索也在增加,语音或图像搜索部分代替了文字搜索。在人主动搜索信息的同时,信息也被推荐给需要的人。很多人从表象上看,认为这个过程是对搜索引擎的挑战。但王海峰认为,搜索引擎一直同步感知着这个变化过程。
就以“信息主动找人”来说,做Feed(信息流)是当下很多互联网企业的共识。但是“人找信息”和“信息找人”,或者搜索和Feed之间并不是非此即彼,而是相辅相成的关系,在不同场景、不同时段发生不同作用,各司其职,也会互相配合。比如有时候你需要主动找点东西,有时需要朋友推荐,有时候需要系统能猜测你的喜好并推荐。假设别人推荐一篇文章给你,阅读过程中发现一个词不太理解,这时你又需要发起搜索去查找词义。当然机器也会猜哪些词用户可能有兴趣。Feed不可能每天推送给你相同的内容,所以一条内容过了最热的时候,你再想找它又得到搜索引擎里找。在不同的状态和场景下,用户对于搜索和Feed的需求会相互转换,而如何判断这些状态和场景,正是对系统智能化的考验。有越多的数据和技术储备就越可能做好。
有了做搜索的技术储备和数据,做Feed至少在技术上是不难的。而单纯从Feed起家,想去弥补搜索和数据的缺失就比较困难。百度搜索引擎采集分析的网页量有上千亿,如此规模的大数据为百度持续提升Feed产品效果提供了必要的保障。
搜索引擎在数据洪流中持续进化,Feed只是下一个必要的环节,最终形成无所不在的搜索引擎+推荐。越来越智能化的机器可以做到“举一反三”,到最后用户只说几个词,机器就可以知晓用户想要表达的整个意思。另外还可以自动分析用户所在的位置、身份、习惯等,利用这些信息来决定向用户提供哪些搜索结果。未来在很多时候,我们无须再主动“搜索”,基于搜索引擎的Feed可以主动猜测并推送我们需要的信息。设想一下,比如在一个餐厅吃饭时,搜索引擎已经根据用户之前的搜索内容推测出用户下一步的安排,即使用户还没“问”,都会主动帮用户收集好之后需要的信息,比如当前有什么电影上映,最近的电影院在哪里等。这种设想已经在百度的产品中有所尝试。即使对于用户暂时不关注的信息,不出现在Feed里,也会合理存储起来,像一座无形的图书馆,供用户以后前往探寻。智能化的搜索引擎正在伴随我们一起成长。
<h3>
搜索是最大的人工智能项目</h3>
搜索引擎一刻不停地工作着,它就是人类学习精神的镜像,每时每刻收集处理着大量数据,抓取整个互联网上的页面和内容,不管是电商、社交媒体还是新闻门户,搜索引擎都会“访问”它们。
搜索引擎是播种机、实验场和数字对撞机,结合语音识别、图像识别和机器翻译,通过大量用户的实际使用又可以采集回来更多有价值的数据,反过来帮助神经网络优化训练效果,形成一个良性的发展闭环。
自然语言处理技术的发展会带来更多的惊喜。机器除了可以快速写作具有一定格式的财经、体育新闻,即便在文学方面,机器写出的“唐诗”也令人难辨真假。看篮球、足球比赛时,解说机器人不但能够迅速通报赛场状况,还可以同时回答很多人的提问。这有点像科幻电影《Her》里的智能程序萨曼莎,她可以同时和无数人谈恋爱。恋爱大概是人类最深度的语言、思想、情感交流。萨曼莎堪称自然语言处理技术的一个高级象征,描绘出人类与机器的深刻关系。也许未来,搜索引擎真的会像萨曼莎一样,穷尽符号信息,闯进语言与意义的空隙之处,超出人类的想象。
严格来说,人工智能是一种“体力活”,要有足够的体力才能经受住那样巨大的数据和计算。而在一般的大学高校或者较小的互联网公司,数据量和硬件成本上的门槛使得发展人工智能受到很大的限制。即使不考虑CPU、GPU等硬件的购置费用,光是运维这些硬件的成本就很高,AlphaGo下一场围棋就要耗费3000美元电费。现在百度除了传统的服务器、带宽等基础设施,还拥有数百台支持人工智能运算的GPU服务器,最高配置的服务器上可以安装16张GPU卡。在这一切的基础之上,将数据储备、硬件基础、市场规模和人才团队统筹起来,最大限度地发挥优势,所追求的就不是一时一地的得失,而是最大、最基础的人工智能平台,为人类“知道更多,做到更多,体验更多”而努力。
<h3>
人工智能,这是百度的命运</h3>
可以说,人工智能对于百度、谷歌这样的公司,是一种内在的诉求,也是互联网、移动互联网和数据大爆发自身的诉求。国内在这个领域很难有其他公司能与谷歌、微软这些拥有规模优势的公司抗衡。建立基础设施基地和人才高地,是百度义不容辞的责任。
将人工智能的火种传递到更多人手中,创造实际价值,让生活更美好,让国力更强大。这样的愿望给了百度人动力,也是百度能够集结众多人工智能科学家的原因。
林元庆本来在NEC美国实验室研究人工智能,那里的条件和氛围都很好,学术性很强,可以专注于研究和发表论文。但是他还是选择离开熟悉的环境,选择了百度。他说最重要的原因就是,作为一个人工智能的研究者,他觉得把深度学习的技术真正实践到应用层面是非常关键的一环。现在中国有超过7亿的互联网用户,超过12亿的手机用户,都是世界之首,如何让广大用户都享受到人工智能带来的改变并参与这种改变?这种探索的价值能够影响全中国所有人的生活。他迫切感到“这是最好的时刻,是人工智能最有希望的机会,错过了就太可惜了”。
但人工智能从不休息,当人类在睡梦中,它们依然在机器世界里奔涌,在无尽的循环往复里蝉蜕蝶化,终将飞向世界!
这里想引用一位著名哲学教授写在20世纪90年代的一段话作为结尾:
在天堂里,人还不是人。更准确地说,人还没有被投放到人的道路上来。现在,我已经被拋掷出来很长的时间了,循一条直线飞过了时间的虚空。在什么深层的地方,还是有一根细细的绳子缚着我,另一头连向身后远处云遮雾绕的天堂。个体灵魂不是她自己选择的,而是从天堂拋出的系在她身上的细线,使她的身体身不由己。薇娥丽卡自己不可能去找到一种生命热情,只能从自己身上发现自己的生命热情,这就等于发现把自己的身体与影子系在一起的那根细线。从天堂那边拋出来的细线决定了薇娥丽卡身体的生命方向和个体灵魂的在世负担,感觉到自己的个体命运。所谓个体命运不过是,一个人感到唯有这样的生命热情的散发才让自己有美好地活过的感觉,才有自己身体的在世幸福,以至于非如此生活不可。[1]
[1] 刘小枫。沉重的肉身[M].北京:华夏出版社,1999.