在历史的重复中变化
当我们谈论数据的时候我们在谈什么?
在大部分人的日常印象中,数据这个词代表的可能是每月的水、电、煤账单上的数字,或者是股票K线图上的红绿指数,还有可能是电脑文件里那一大堆看不懂的源代码。
人工智能眼中的数据含义远比这些广泛。数据的存在形式随着人类文明的发展不断改变,从最初的声音、文字、图画和数字,到电子时代的每一张图像、每一段语音、每一个视频,再到如今互联网时代人类的每一次鼠标点击、用手机时的每一次手指滑动,乃至每一下心跳和呼吸,甚至还包括经济生产中的一切人机动作、轨迹,皆已融入数据流。
不管是浩瀚永恒的引力波,还是复杂细微的DNA,今天的人类已经能够将各种或宏大或微小的事物转化为数据记录,变成我们生活的一部分。数据已经浸染我们生活的每一个细节,就好比生物学家认为人体组织的一半是由微生物组成的,在数字时代,我们生活的一半已然是数据。
历史总是螺旋式前进的。让我们回溯过去,远在人工智能诞生之前,人类在漫长的岁月中也践行着对于数据的发掘、计算和利用。
五千多年前,古埃及人就通过观测记录星象的位置总结出规律:每年当天狼星清晨出现在东方地平线上的时候,尼罗河便开始泛滥。他们照此制订农业耕作的计划,并且将这个周期进行总结,确定了一年365天的太阳历。遥远的天狼星与地球并无任何因果关系,只是出现在那个位置的时候,正好地球运转到一定的节气——这正是大数据时代的相关性计算的前身。
四千多年前,在今天英国的土地上出现了巨石阵——每块重达50吨的大石头组成了一个圆阵。这是一块原始钟表,夏至的时候,它的主轴线、通往石柱的古道和早晨的第一缕阳光就会处在同一条直线上;往相反的方向,冬至日的最后一缕阳光也会穿过石门。古人用笨重的石头仪表点燃了数据测量的曙光。与中国的日晷一样,这便是最早的数据可视化技术。
图3-1 巨石阵
资料来源:https://baike.baidu.com/pic/%E5%B7%A8%E7%9F%B3%E9%98%B5/1179755/0/6d81800a19d8bc3ed2257b32808ba61ea8d3451c?fr=lemma&ct=single#aid=17270777&pic=ac4bd11373f08202f436987e4efbfbedaa641bce
两千多年前,托勒密研究天地运动得出三大定律,为天文学打下基础。他的方法很有趣,一言以蔽之,是错误的方法里蕴藏着正确的思路。原本他误以为天体运动的轨迹是圆形,而实际上天体以椭圆轨迹运行。为了强行用“圆”函数来表达天体的实际运动曲线,他采用多个圆形的嵌套运动模拟出天体运动。他模拟天象使用的嵌套圆圈多达40个,相当于用多个圆运动函数来拟合成一个总体函数。这已经有了最早的拟合函数思想。
什么是拟合函数?当数据很多时,我们可以把数据想象为一个坐标系中分布的很多点。怎样寻找一个函数,使其曲线能够穿越尽可能多的点呢?如果这些点分布很规律,比如呈线性分布,就可以用线性方程描述。
图3-2 用线性方程表示函数
注:左图中分布的点可以用右图中y=ax+b形式的线性函数来近似表达。
如果分布点形成一个抛物线形状,那么函数也很容易得到,就是X2=2py的形式。但是如果这些数据点分布看上去很不规则时就很难找到一个单一函数。现代人想到用多个函数叠加的方法来模拟出一个总体的函数。调节每一个函数的权重,从而能够让叠加函数曲线尽可能多地穿过这些点。托勒密记录了大量天体运动的数据,然后尝试用叠加多个圆函数的方法模拟出椭圆轨迹的函数,以便把他记录的数据都包括进来。拟合函数方法适合从大量离散的数据记录中找寻规律,而这正是今天人工智能的基础,机器学习的基本数学方法。
由此可见,今天的很多基本数学方法古人已有,只是囿于能力无法尽情应用。
今天的人类可以用数字测绘来还原历史。即便在“我的世界”这样一款游戏中,计算机已经可以计算出每一块砖瓦的角度、长度,将几千年前的古城墙以完美的三维图像重现。那一刻,你会觉得所有古埃及、古希腊、古中国的壮美历史又重新与我们连接。但比起那宫殿中早已褪色的金冠银带,古人使用数据的智慧或许才是人类最宝贵的传承。
数据文明在进步,而大多数人还处在数据的懵懂之中。在日常生活中,数据的概念对于我们既亲近又陌生。我们亲近它,因为每个人从小就会接触加减乘除这样最基本的数据和算法。步入社会后不管从事什么职业,我们这一生也免不了和各类文件、报表或者账单打交道。但与此同时,当面对高科技产品中各种关于内存、分辨率等时髦又复杂的数据时,我们又越发觉得不了解它们甚至没意识到它们的存在。随着大数据、机器算法和人工智能的理念相继到来,这种陌生感愈发加深。
那么数据生活距离我们遥远了吗?正相反,在新的技术条件下,数据与我们日常生活的联系从未如此紧密过。我们的祖先很久以前就学会有条理地储存数据,但是从没像今天的我们一样如此活跃、具体地记录着自己与世界。
从最初的计算器、摄像头,到家用计算机、智能手机,再到大数据和人工智能,我们不断升级采集和利用数据的方式。而现在,从一辆车的每日碳排放量统计到全球气温的监测,从对每个人在网上发言喜好的分析到对总统选举时投票趋势的预测,从预测一只股票的涨跌幅度到观察评估整个经济系统的发展,我们都可以做到。数据将人与人、人与世界连接起来,构成一张繁密的网络,每个人都在影响世界,而每个人也在被他人影响。这种从微观到宏观的辩证关系就如同在全人类身上发生的量子力学现象,其中孕育着解答无数问题的真理。传统的统计方法已经无法处理这种相互影响的数据。怎么办?答案是让机器自己来处理数据,从数据里习得知识。这便是当代人工智能的本质。
早在60年前,人工智能就已经被科学家当作一门严肃科学来研究。即便普通老百姓都对人工智能兴趣盎然,然而人工智能却在“二战”后人类科技高速发展的几十年间鲜有突破。直到今天,我们才忽然发现各种人工智能的概念如雨后春笋般冒出来,以大数据、AlphaGo、百度无人车等新面貌闯入我们的生活。
如果把人工智能的技术比作一颗早产的心脏,那么它曾经患有两个先天不足:一是在互联网爆发之前,研究人工智能所能调用的数据量太少,这是“供血不足”;二是硬件上的不足导致缺乏解决复杂问题的计算能力,这是“心力不足”。数据如同血液,硬件如同血管,直到互联网应用突飞猛进,计算机的计算能力平均1年翻一番且计算架构出现革命性变化,这两个问题才迎刃而解。奔涌的数据血液进入物理身体的每一个角落,图像识别、语音识别、自然语言处理……睁开了眼睛、竖起了耳朵、张开了嘴巴,机器之心“活”了!
数据书写生活史
数据已经深深“浸入”我们的生活。计算机、智能手机、各种智能家居用品,贴身收集着我们的一言一行,通过计算建模越来越了解我们,使得看新闻、运动健身、吃饭、听歌、出行等这些最简单的日常活动都成为一次次隆重的数据盛典。
一部智能手机一天之内就可以为他的主人生产1G的数据。这大概是13套《二十四史》的总容量。我们每天都在用数据书写自己浩瀚的“生活史”。
与传统意义上的数据记录定义不同,这种数据是有“生命”的。这种记录不是客观又绝对的数学测量,也不是一板一眼的历史写作。它更像是我们身体的一种自然延伸:倾听我们的声音、拓宽我们的视力、加深我们的记忆,甚至组成一个以数据形式存在的“我”。如果说智能手机已成为人类的新器官,那么数据就是这个新器官所接收到的“第六感”。而处理这种“第六感”的新大脑正是冉冉升起的人工智能。
大数据——万物皆数
既然人类运用数据已久,而且自工业革命以来,数据经历过一次又一次的爆发,何以近年来才出现“大数据”的概念?仅仅是它所能记录和计算的数据量更多而已吗?自然数可以无限数下去,1、2、3、4,以至于无穷,但“多”是不够的,还必须具有几大特征:
第一,大数据的“大”。毋庸置疑,这个“大”相对于人类传统数据的储存方式,不是一个量级上的大小之分,而是几何量级的差距。想想百度地图上每日720亿次的定位请求,再想想互联网上每天有多少次点击、社交媒体上每天有多少文字和图片发出……各种大数据平台一天之内收集到的数据量就可以超越人类几千年来文字、图像的总和。
第二,大数据的另一个重要特点是多维度。多维度代表着大数据可以对一个事物进行多方位的描述,从而更准确。
在电影《谍影重重》里出现过一个大数据公司,能够根据互联网数据、交通数据、历史档案等各种维度的数据帮助美国中央情报局(CIA)迅速追踪和定位疑犯。现实中美国的Plantir数据公司便是如此帮助美国政府追踪本·拉登,提供反恐信息和社会危机预警。它们更常见的业务是识破金融诈骗。
以金融征信应用为例,传统金融机构在进行征信时,一般采集20个维度左右的数据,主要包括年龄、收入、学历、职业、房产车产、借贷情况等。然后综合评分来识别客户的还款能力和还款意愿,决定信贷额度。
互联网公司采用大数据方法,所获得的维度可以让传统银行吓一跳。BAT都开设了自己的金融服务,因为拥有全面且巨大的用户数据,可以查询客户的各种线上记录,比如是否有批量申请贷款等异常行为;还可以将客户信息与互联网全局信息比对,通过欺诈行为模式的比对分析其可信度;更进一步,还可以分析客户的消费行为和习惯,结合填报收入分析还款能力如何。当然,作为用户的隐私,这些数据都不会被公开,用户所能感受到的便利是征信排队时间极大地缩短了,因为大数据可以在几秒钟内就对申请者超过1万条的原始信息进行调取和审核,迅速核对数万个指标维度。
对一个陌生人进行征信就好比“盲人摸象”,传统方法是通过20个“盲人”去评估一个客户的信用“大象”,注定是有缺陷的。而大数据的多维度就如同几万人同时“摸象”,再把这几万人的反馈汇总到一起。维度越多,结论就越准确。
第三,处理非结构化数据的能力。结构化数据中最基本的数字、符号等,可以用固定的字段、长短和逻辑结构保存在数据库中,并用数据表的形式向人类展现(想一下常见的Excel表格),处理非常方便。但是互联网时代产生了大量非结构化数据,对于图片、视频、音频等内容,它们的数据量巨大却没有清晰的结构。对于图像的数据,我们只能理解为一个二维矩阵上的无数像素点。非结构化数据增长量很快,据推测将占未来10年新生数据总量的90%。而大数据技术可以通过图像识别、语音识别、自然语言分析等技术计算、分析大量非结构化数据,大大提升了数据维度。
非结构化数据的数量远超结构化数据,蕴含巨大能量,应用前景广阔。例如,在机场等公共场合的个人身份检查,过去只能根据旅客提供的身份信息这一个主要维度去判断其身份。而人脸识别、语音识别等技术应用成熟后,大数据可以直接通过摄像快速比对审核,增加对个人身份判断的维度,进行既精确又高效的安全检查。
第四,大数据是生生不息的“流”,具有时间性。它过去就不再回来,就像人无法两次踏入同一条河流。这一方面是因为数据量太巨大,无法全部存储;另一方面是大数据和人类生生不息的行动相关,瞬息万变。百度大数据实验室因此提出一个概念叫作“时空大数据”。
地图就是时空大数据之母。百度地图有一个路段拥堵预警功能。如果前方路段畅通会显示为绿色;如果拥堵则会显示成红色,提醒用户选择其他路线。这是我们与数据互动的一个简明例子。如果我们有A和B两条路线可以选择,此时A路线拥堵而B路线畅通,那么我们都会选择B路线;当越来越多的车主选择B路线,那么B路线将会变成拥堵而A路线又会畅通。此消彼长,变化万千。依靠智能手机的定位功能,百度地图可以实时更改当前的路况监测结果,精确地告诉每一个位置用户当前自己所面对的路面情况。通过数据可视化技术和各种评估手段,可以描绘一座城市的日常脉搏,比如上下班的人流数据变化,仿佛城市在吞吐呼吸。除了被记录下来的,更多数据只在当时有效。把数据全部存储下来是不可能的,那样需要的硬盘可能整座城市的地皮都堆不下,只能即时应用,用过就消失。
与时间数据博弈是富有挑战性的工作。2016年11月,百度正式接入公安部儿童失踪信息紧急发布平台,每当有儿童失踪事件发生时,百度地图和手机百度就会把失踪儿童的姓名、面貌特征、失踪时间等重要信息精准推送给失踪地点周边的用户,使用户可以第一时间参与找回失踪儿童的过程。而在失踪儿童被寻回后,百度地图和手机百度也会及时更新结案标识,让社会各界人士随时了解进展。能将信息早1秒钟提供给用户,就能给焦虑中的家庭多一分希望。
最后一点,也是最重要的,大数据的“大”表现为无尽的重复。对于语音识别来说,正因为人们重复讲述同样的语句,机器通过反复识别这些人类语音的细微差别,才能全面掌握人类语音。也正因为人们周而复始的运动,才让系统能捕捉城市运动的规律。“重复”的数学意义是“穷举”。以往人类无法通过穷举法来把握一个事情的规律,只能采用“取样”来估计,或者通过观察用简单明了的函数来代表事物规律,但大数据让穷举法这种“笨办法”变得可能了。
量变促成质变,在机器智能领域,数据量的大小和处理速度的快慢可以直接决定智能水平的高低。谷歌通过数据量提升翻译质量的故事早已不是秘密。
2005年,美国国家标准与技术研究所如往年一样举办机器翻译软件评测。有许多大学机构、大公司都从美国政府申请了研究机器翻译的科研经费,这些机构需要参加这个评测。没有获得政府资助的团队或者公司也可以自愿加入,谷歌就是后者。参与评测的还包括IBM、德国亚琛工学院等多家机器翻译界老牌公司,个个实力雄厚,在机器翻译领域深耕多年,只有谷歌是初出茅庐。
然而评测结果却让人大跌眼镜:谷歌取得了第一名,并且得分远远高于其他团队。在汉译英这方面,谷歌的表现达到了51.37%的BLEU分数,第二名和第三名的公司则仅达到34.03%和22.57%。最后,谷歌公布了自己的秘诀:用更多的数据!不只是比其他团队多一两倍,而是多上万倍的数据!因为谷歌可以通过搜索引擎收集互联网上人类给出的海量双语语料数据。同样一句汉语会有很多人给出译法,计算机会通过这种重复来统计出最常用的译法。在没有更改其他主要方法的情况下,仅仅依靠数据样本的增加就训练、改造出了超越其他机器翻译一个时代的产品。谷歌能赢,实际上就是因为“穷举”能力超过了别人。
谷歌、百度这一类互联网企业的数据优势是全方位的,除了翻译,还可以很容易地复制到其他领域,比如语音识别与图像识别。百度的“为你写诗”作为一个小游戏,同样结合了大数据与人工智能。百度主任架构师、机器翻译技术负责人何中军介绍,传统的写诗软件一般运用统计模型,根据给定的关键词生成第一句诗句,然后再生成第二句,不断重复这一过程,直到全诗生成完毕。而百度写诗的做法是这样的:用户可以输入任意词语或者句子,系统结合百度搜索引擎中的大数据对用户表达进行深度分析与联想,衍生出相关度较高的主题关键词。用户随便输入一个词或一句话,比如“西湖”,百度写诗系统通过对大量诗歌散文数据的分析,得出一首描写“西湖”的诗歌应该包含哪些主题词。对于“西湖”来说,得到的主题词可能有“断桥残雪”“烟雨”“垂柳”等。接下来利用深度神经网络技术,根据每一个主题词生成一句诗。这些主题词就相当于人类写作时经常用的提纲,根据提纲来创作可以保证全诗在意境上是统一的,而且前后诗句的内容在逻辑上也是顺畅的。之前大家说机器写的诗看起来每句话都还不错,但是整体意境不够,现在已经能有效弥补了。对于每一句诗歌的生成,则用到了机器翻译技术。对诗歌的第一句进行“翻译”得到第二句诗,再对第二句进行“翻译”得到第三句,以此类推。我们用“西湖”作为输入,“为你写诗”生成的七言诗意境优美、逻辑通畅。
图3-3 手机百度的“为你写诗”生成的七言诗
注:使用手机百度或智能革命App扫描图片可见AR效果。
人类的数据镜像
人类在科技产品的娇惯下,口味日渐挑剔,大数据能从那些枯燥乏味的选择之上给出一抹亮眼的色彩。以前的电视机不会回应我们的喜怒哀乐,但现在成熟的视频网站正在耐心仔细地收集着我们的每一种反馈,不管是收藏还是下载,是关闭还是快进,都一一记录,然后利用大数据计算出我们的喜好、消费能力等各种指标。
美剧《纸牌屋》风靡一时,剧中政客们斗牌,剧后则是大数据在下一盘看不见的大棋。出品人为美国著名的网络电视公司Netflix。它深谙大数据分析的妙处,除了以上提到的用户行为,还会尽力收集观看时段、观看设备、观看人数和场景,分析用户喜欢的节目中的主演状况、导演是谁等。通过大数据分析,断定《纸牌屋》的题材会火爆,于是从BBC(英国广播公司)手中高价购买了翻拍版权,并预测凯文·史派西是最合适的主演人选。最终结果证明了Netflix对于《纸牌屋》的押注完全正确。当我们在荧幕前感叹史派西所扮演的总统拥有掌控一切的智慧时,却没有意识到“数据总统”的威力。
美国新任总统特朗普就是一位充分利用数据竞选的总统。据彭博等媒体报道,他的技术团队通过脸书、推特等平台上的用户公开数据,如点赞、转发、收藏行为等,精准描述选民画像,向他们推送因人而异的竞选广告。甚至特朗普的每条推特、每条脸书都是有针对性的,不同内容对不同网民可见。
通过大数据对用户进行精准画像,这也是百度大脑擅长的领域。2016年十分火爆的电影《魔兽》的出品方传奇影业与百度大脑合作,根据对百度海量用户的分析,将电影广告精准推荐给潜在观众。虽然这部电影在北美市场票房不佳,但在中国大卖2.21亿美元。当魔兽粉丝在影院里高喊“为了部落!”的时候,也许正是大数据悄悄赋予了他们原力。
中国人都说“民以食为天”,比起挑选电影,怎么能“吃好”更是全民关心的热门话题。2013年百度曾发布过一个《中国十大“吃货”省市排行榜》,让网友乐此不疲。这个榜单利用了百度知道和百度搜索的大数据,根据网友们多达7700万条关于“吃”的问答,总结出了各地不同的饮食习惯和特色。
海量数据中被挖掘出了不少有趣的现象:“吃什么水果减肥最快”有多达30万人提问过,看来许多网友在吃的同时还不忘顾及身材;“昨天晚上还活着的螃蟹死了,还能吃吗?”这一问题有高达6万条回复,看得出中国“吃货”对于螃蟹的热情特别高。当然更多的还是诸如“××能吃吗”“××怎么吃”这类的日常问题,光是“菠菜和豆腐能不能一起吃”就引起了无数讨论。
这些问题数量庞大并且看似混乱重复。但重复正是大数据的妙处。大数据可以从中捕捉到更深刻的含义。如福建、广东地区的网友经常会问某种虫是否可以吃的问题;而西北网友则对海鲜的吃法颇感疑惑。不同用户关心的食材、做法各不相同,百度大数据正是从中归纳出了各省市的“吃货”属性。在这背后大数据考量了网友的地理位置、提问回答的时间、问题中关于吃法或者做法等信息,甚至将网友使用的手机品牌等各种维度都纳入计算当中。
除了对人类关注信息的描摹,大数据甚至在构造我们的身体。现在许多人都十分熟悉的健身腕带,就是通过收集我们日常运动作息的数据,例如,行走步数、卡路里消耗、睡眠时长等来分析我们的健康状况并提出建议。更进一步,未来我们可以将个人数据上传,通过大数据检测我们罹患各种疾病的可能性或者潜在威胁,更好地预防疾病。
关于生活中的大数据有许多例子。我们现在用到的绝大部分成熟的互联网产品,无论是计算机还是智能手机,背后都或多或少有大数据的身影。当我们理所当然地使用这些服务时,就已经邀请大数据进入我们的生活。它默默注视着我们生活中的每一个细节,潜移默化地鼓励和劝告我们做出选择,强化了我们的角色。
突破:机器学习与人工智能
1950年,阿兰·图灵创造了一个针对机器的测试方法,即后来大名鼎鼎的“图灵测试”。这位充满传奇色彩的科学家认为,如果一台机器能够与人类展开对话(通过电传设备)而不能被辨别出其机器身份,那么就可以认为这台机器具有智能。这一简化使图灵能够令人信服地说明“思考的机器”是可能的,而“图灵测试”直到现在也被当作判断人工智能的重要标准。
这个标准已经暗示了一个新的路径,只要机器表现得像人类,我们可以不必过分关心机器的运作规则是什么。有人提出让机器自己来学习规则的办法,人类不用操心那些规则是什么。
1949年,唐纳德·赫布基于神经心理学的学习机制,踏出了机器学习的第一步,创造了此后被称为赫布学习规则的方法。赫布认为神经网络的学习过程发生在神经元之间的突触部位,突触的联结强度随着突触前后神经元的活动而变化,正确的反馈会让两个神经元的联系得到强化。这个原理机制类似巴甫洛夫的条件反射实验:每次给狗喂食前都先响铃,时间一长,狗的神经系统就会将铃声和食物联系起来。赫布用一套加权公式来模仿人类的神经网,权重就代表神经元之间联系的强弱。赫布给机器创造了一套可以简单区分事物的方法,对于每个数据,让决策树程序做出判断,判断对了就奖励(提高函数的权重),判断错了就惩罚(降低函数的权重)。他利用这个方法创造了一个分类器,可以提取数据集的统计特性,把输入信息按照它们的相似程度划分为若干类。看上去如同人类在观察某种现象时,会观察和总结并区分事物,但机器的这种“观察”更接近一种通过训练达成的条件反射,并非如人类那样思考,重视的是数据中蕴含的相关性关系,而非人类思维中的因果性关系。
之后的十几年中,关于人工智能的研究愈发热烈,灵感一个接一个地涌出。1952年,IBM科学家亚瑟·塞缪尔成功开发了一个可以下得越来越好的跳棋程序。他创造了“机器学习”的概念,并将它定义为“可以提供计算机能力而无需显式编程的研究领域”。
1957年,Rosenblatt(罗森布拉特)提出了感知机的概念,成为日后发展神经网络和支持向量机(Support Vector Machine,SVM)的基础。感知机就是一种用算法构造的“分类器”,是一种线性分类模型,原理就是通过不断地训练试错以期寻找一个合适的超平面把数据分开(超平面可以这样理解:三维坐标空间里二维的形状称作平面,能划分三维空间。如果数据是多维的,那么N维坐标空间里,N-1维就是超平面,能划分N维空间)。如同你把写着“正确”和“错误”的两堆球输入进去,感知机可以为你找出这两堆不同球的分界线。
感知机好比在输入和输出之间只有一层的神经网络。当面对复杂一点的情况时就力不从心了,比如当“正确”和“错误”的球互相混合的时候,或者又有第三种球出现的时候,感知机就无法找到那个分类的界线。这使感知机很难在一些即使看似简单的问题上有所突破。
如今,不需要人类输入规则(编程),而是让机器自己寻找规则,这样看上去机器就有了自己的智能。今天的人工智能便是在机器学习的基础上发展起来的,只是成长速度受到硬件和方法的限制。
如果多台电脑、多个芯片联网进行机器学习,而且具备多个芯片网络层次,就进入了所谓的“深度学习”的范畴。在20世纪70年代末,Geoffrey Hinton教授等人已经发现,如果能实现多层的神经网络,就可以逐层递进找到模式中的模式,让计算机自己解决复杂的问题。那时他们就开发了“反向传播”算法神经网络。但是多层神经网络的复杂性也导致对其训练的难度大大增加,数据不足和硬件计算能力成为掣肘。
从20世纪60年代中期到20世纪70年代末,机器学习的发展步伐几乎处于停滞状态。这种情况一直到20世纪80年代才有所好转。随着计算机性能的突飞猛进和互联网的到来,人工智能研究终于如虎添翼,在20世纪90年代,现代机器学习初步成形。
互联网在20世纪90年代投入商用,使分布式计算方法获得长足发展。超级计算机造价昂贵,而分布式计算技术则发挥了“人多力量大”的优势,让多台普通计算机可以协同工作,各自承担计算任务的一部分,并把计算结果汇总,效率可以超过超级计算机,而且分布式的结构正好适应了日渐增多的数据量。
计算机神经网络生长与深度学习
由于传统人工智能一味依赖科学家输入的规则模型,导致它只有在解决一些规则比较清楚的问题时才比较有效,比如击败卡斯帕罗夫的“深蓝”就是这样一种“人工智能”。当面对识别一张图片这类人类在婴儿阶段就能学会的简单问题时,这类人工智能却无计可施,因为这种认知类问题只有一个模糊的概念,没有清楚简单的规则。而计算机神经网络的特点就是它不需要人类提前告知规则,它会自己从海量的基础数据里识别模式(规则)。
顾名思义,神经网络类似人类大脑,由一个个神经元组成,每个神经元和多个其他神经元连接,形成网状。单个神经元只会解决最简单的问题,但是组合成一个分层的整体,就可以解决复杂问题。
Geoffrey Hinton认为,传统的机器学习方法只利用了一层芯片网络,在遇到真正复杂的问题时,处理效率就会变得十分低下。深度学习的最核心理念是通过增加神经网络的层数来提升效率,将复杂的输入数据逐层抽象和简化。也就是说,将复杂的问题分段解决,每一层神经网络就解决每一层的问题,这一层的结果交给下一层去进行进一步处理。
有一层神经网络,就可以找到简单的模式;有多层神经网络,就可以找出模式中的模式。以人脸识别为例,神经网络的第一层只专注于边长几十个像素之类的图像区域,从中识别出一些形状(形状就是模式)——眼睛、鼻子、嘴巴等。再把这些已经识别出的形状交给下一层神经网络,下一层网络在已有的识别结果里,又发现了更大的模式——眼睛、鼻子、嘴巴可以组合成人脸。如果描述得更数学一点,当下流行的深度神经网络可分为应对具有空间性分布数据的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万张各种猫的图片做测试之后,那些得到加权的神经通路就组成了一个识别装置(一组复杂的函数联结)。然后在没有科学家告诉它识别结果的情况下,也可以识别出新的图片中的猫来。训练数据越多,这个函数集合就越复杂但也越精确。
这就是“监督学习”——依赖大量有标签的数据。吴恩达领导的识猫项目甚至可以从零开始学习,不依赖标签就可以辨识出猫。当研究者向神经网络展示了几百万帧静态的猫图片,神经网络自己就获得了一个稳定的模型,从此,它可以和所有的儿童一样,毫不犹豫地识别出猫的脸。
吴恩达的博士研究生夸克·维·乐为此撰写了论文,表明机器学习同样能识别原始的无标签数据,并建立自己的知识模式,它的意义绝非只在于识别猫。
二十多年前,凯文·凯利以“蜂群效应”开始了杰出的新科技著作《失控》的叙述。他以此预测了分布式计算等新技术的出现,那时他可能还没有看到“蜂群效应”中蕴藏的机器学习原理。每一个蜜蜂的运动都是随机的,但是蜂群总能向着一个方向飞去。大量蜜蜂各自的行动(输入)汇总成一个总的运动(输出),中间的逻辑(函数)就是“蜂群效应”。计算机神经网络里的信息运动就像超音速飞行的蜂群采集着数据花粉。在它们看似狂乱的飞舞轨迹中,一张猫的脸庞凸显出来。百度大脑识别猫的能力已经远超人类,它甚至能够精确区分不同种类的猫。
所以对人类而言,机器学习往往在自己的“内部”形成一个“黑箱”。有人警告这种超越人类理解的黑箱会带来危险,因为我们不知道机器如何思考,是否产生了危险思维。不过更多时候,深度学习会给人带来意想不到的惊喜。
深“度”往事
百度语音识别开发团队的刘洋工程师说过一件趣事:一位语音团队成员在家测试语音识别程序时,无意间清唱了几句歌词,然后歌词竟然被准确识别了出来。这令他很吃惊,其他公司的语音识别技术都还做不到这个事情。而百度团队也并没有针对清唱这种形式做过训练,也没有制定过这个目标。系统怎么做到的他们也不知道,只能说训练数据达到了足够大的程度,程序在不断训练、学习的过程中,自己修得了这项令人称奇的技能。
人们对世界的变化往往后知后觉。在没有深度学习的日子里,世界似乎也一切正常。但有些看不到的代价在被一些人默默承受。周克华这个连环杀手十多年间神出鬼没,为了擒获他,公安部门调集了几乎所有的视频监控材料要发现他的踪迹。那时候公安干警怎么检索视频?全靠肉眼去看!几百甚至几千个小时的视频一段段去看,有的干警甚至累昏在岗位上。而基于深度学习技术的视觉识别将改变这一切。目前先进的监控系统背后都有强大的人工智能支持,在经过大数据训练之后,可以瞬间从视频里识别出人脸、车牌、车型等,并且加以语义化,方便人类检索。然后只要给计算机几张嫌疑人的照片,神经网络就可以飞快地从海量视频中把与嫌疑人有关的镜头都找出来供人类参考。安防企业宇视科技就开发了这样的智能摄像系统,再结合百度地图,就可以迅速定位嫌疑人或者车辆的运动轨迹。
深度学习在许多用户看不到的地方改变了我们的生活。为了采集和维护地图信息,需要通过采集车拍摄沿路的图像。传统的采集车上要坐两个人,采集过程分为内部作业和外部作业两部分,外部作业就是要开车出去,把沿途的东西都录下来。除了录像,副驾驶要负责用声音记录,每经过一个地方,要说前方这里有一个探头,那里有一个红绿灯,这里是四车道,左转、直行、右转……这是传统的方式,就是一定要把所有看到的东西通过录像和声音的方式记录下来,然后再把数据存储寄到数据处理中心。数据处理中心负责内部业务的人员再一分钟一分钟地去记录比对资料,最后把路面上的这些元素在地图上标识出来,这基本上是一个劳动密集型的工作方式。
图3-4 百度地图采集车
而应用了智能图像识别技术以后,我们先通过深度学习训练机器去辨识红绿灯、车道、探头等路面元素,之后我们只需要将沿路拍摄的全景图像直接交给机器辨识,就能得到完整的地图信息。这就极大地节省了人力,也极大地提高了效率和准确性。
深度学习除了软件算法,还有一件关于硬件的往事堪称佳话。历史上有很多发明在后来的应用中偏离了初衷。比如作为炸药的硝酸甘油可以用于心脏病急救,为了发明战略物资橡胶的人工合成替代品,结果却造出了橡皮泥……在深度学习领域,GPU的作用也被改变了。GPU本来是显卡,用来渲染图像,给图形计算加速,后来却成为深度学习的主要硬件。因为显卡芯片具备比CPU更强的浮点运算能力,原本就用于处理图像这种矩阵数据,非常适合机器学习领域对数据的计算。早期当吴恩达团队率先使用GPU进行机器学习的时候,很多人并不理解。不过今天这已经成为主流。
但最深的往事还是来自搜索引擎。
搜索引擎:人工智能的命运细线
对于今天的中国网民来说,遇到问题“百度一下”已经成为一种习惯。与百度今日的影响力和规模相对的,百度在人工智能领域的专注反而引起一些不理解。更专业的疑问是:电商、游戏、社交、通信……从PC到移动互联设备,无数个风口过去了,百度为何只对人工智能情有独钟?
问题的答案可能与很多人的思维相反,与其说是百度选择了人工智能,不如说是人工智能选择了百度。这是百度基因里的使命,辜负这个使命,会是百度、中国甚至世界的损失。
一切都源于搜索
搜索引擎对于一般用户来说只是一种工具,可以帮助他们找到需要的信息;对于提供内容的网站来说,搜索引擎是一种媒介,帮助它们将自己的内容传递给有需要的用户。在这个过程中,首先搜索引擎要“倾听”用户的需求,即小小搜索框里敲下的那几个关键词,究竟是想要找到什么;其次,搜索引擎要“检索”数量庞大的内容,从中挑选出最符合要求的那些结果提供给用户。
我们审视一下这个过程,是否和我们描述过的深度学习概念模式十分相像?输入和输出在这里都有了,甚至每一次搜索行为都可以看作是对搜索引擎的一次训练。那么谁来告诉搜索引擎输出结果的好坏呢?是用户。用户的点击就是一种回答,如果用户没有点击排在前面的结果,而是去点击第二页的结果,这就是对系统的推荐做出了降权举动。
在这个过程中,搜索引擎不仅提高了推荐的准确性,还越来越懂得判断所收录网页的“好”与“坏”,渐渐学会了像人类一样去分辨网页。最初,它只会读取标题、关键字、描述等页面元素;而现在,百度这样的搜索引擎已经可以辨识出哪些是隐藏的虚假信息,哪些是广告,哪些是真正有价值的内容。
人通过搜索引擎获取信息的行为就是人与机器对话的过程。与以往的人机交互不一样,这个过程基于“自然语言”。相比图像识别、语音识别等,自然语言处理(Natural Language Processing,NLP)是搜索引擎最核心的基础技术。
王海峰认为思考和获得知识的能力成就了今天的人类,这种能力需要通过语言来找到思考的对象和方法,并外化为我们看、听、说和行动的能力。相对于这些能力,语言是人类区别于其他生物的最重要的特征之一。视觉、听觉和行为能力不仅为人类所拥有,动物也有,甚至很多动物的视觉、听觉,包括行动能力比人类还强,但是语言是人类特有的。而建立在语言之上的知识总结、提炼、传承以及思考,也都是人类特有的。
从人类历史之初,知识就以语言的形式进行记录和传承,用来书写语言的工具不断改进:从甲骨到纸张,再到今天的互联网。所以不管是百度还是谷歌,都认为自然语言处理对整个人工智能的未来都是非常大的挑战。相比之下,语音识别,如声音到文字,或是文字到声音,实际上解决的是一个信号转换问题,但语言不是,语言和人的知识、思维整体相关。
像AlphaGo这样的项目,对于普通人来讲是一件非常震撼的事情,我们也认为它是一个很大的成绩。但是我们不能忽略它的特点:基于完全信息、规则是明确的、空间是封闭的和特定的。为围棋训练出来的智能系统下象棋就不好用。相比较而言,自然语言的处理是更难解决的一个问题。对于下围棋来说,只要计算能力和数据充分,就几乎没有不确定性,而语言问题存在太多不确定性,如语义的多样性。
为了让计算机能够“理解”和生成人类语言,科学家做了大量的工作。在百度,基于大数据、机器学习和语言学方面的积累,研发出了知识图谱,构建了问答、机器翻译和对话系统,建立了可以分析、理解问题(query)及情感的能力。
仅就知识图谱来说,基于不同的应用需求可分为三类:实体图谱(entitygraph)、关注点图谱(attentiongraph)和意图图谱(intentgraph)。
在实体图谱里,每一个节点都是一个实体,每个实体都有若干个属性,节点之间的连接是实体之间的关系。目前百度的实体图谱已经包含了数亿实体、数百亿属性和千亿关系,这些都是从大量结构化和非结构化数据中挖掘出来的。
现在我们来看一个例子,假如有人搜索:窦靖童的爸爸的前妻的前夫。
这句话里包含的人物关系是非常复杂的,然而,我们的推理系统可以轻松地分析出各实体之间的关系,并最终得出正确答案。
百度的自然语言处理技术还可以分析复杂的语法,甚至辨识句子的歧义,而不仅仅是字面匹配。
图3-5 人物关系图1
再来看另外一个例子:梁思成的儿子是谁;梁思成是谁的儿子。
图3-6 人物关系图2
如果使用传统的基于关键词的搜索技术,我们将会得到几乎相同的结果。然而,经过语义理解技术的分析,机器可以发现这两个句子的语义是完全不一样的,相应地就能从知识图谱中检索到完全不同的答案。
还有第三句话:谁是梁思成的父母。从字面上来看,这跟第二个句子不同,但是经过语义理解技术,机器发现这两个句子要找的是同一个对象。
深度学习技术进一步增强了自然语言处理能力。百度从2013年开始在搜索引擎中应用DNN模型,至今已经对这个模型进行了几十次的升级迭代,DNN语义特征是百度搜索里非常重要的一个特征。其实,不仅搜索结果相关度变得更高,在篇章理解、关注点感知和机器翻译等方面也都有大幅提升。
搜索所需要的技术基础也正是人工智能所需要的技术基础。比如就云计算来说,主管百度云工作的张亚勤认为,搜索是最大的云计算应用,没有云就没有办法做好搜索,百度是在云里出生的。
搜素引擎的继续进化
随着移动互联网和人工智能的兴起,搜索的形态在发生很大的改变。比如搜索入口变化了,除了通过网页搜索框发起搜索外,基于不同平台和硬件的搜索也在增加,语音或图像搜索部分代替了文字搜索。在人主动搜索信息的同时,信息也被推荐给需要的人。很多人从表象上看,认为这个过程是对搜索引擎的挑战。但王海峰认为,搜索引擎一直同步感知着这个变化过程。
就以“信息主动找人”来说,做Feed(信息流)是当下很多互联网企业的共识。但是“人找信息”和“信息找人”,或者搜索和Feed之间并不是非此即彼,而是相辅相成的关系,在不同场景、不同时段发生不同作用,各司其职,也会互相配合。比如有时候你需要主动找点东西,有时需要朋友推荐,有时候需要系统能猜测你的喜好并推荐。假设别人推荐一篇文章给你,阅读过程中发现一个词不太理解,这时你又需要发起搜索去查找词义。当然机器也会猜哪些词用户可能有兴趣。Feed不可能每天推送给你相同的内容,所以一条内容过了最热的时候,你再想找它又得到搜索引擎里找。在不同的状态和场景下,用户对于搜索和Feed的需求会相互转换,而如何判断这些状态和场景,正是对系统智能化的考验。有越多的数据和技术储备就越可能做好。
有了做搜索的技术储备和数据,做Feed至少在技术上是不难的。而单纯从Feed起家,想去弥补搜索和数据的缺失就比较困难。百度搜索引擎采集分析的网页量有上千亿,如此规模的大数据为百度持续提升Feed产品效果提供了必要的保障。
搜索引擎在数据洪流中持续进化,Feed只是下一个必要的环节,最终形成无所不在的搜索引擎+推荐。越来越智能化的机器可以做到“举一反三”,到最后用户只说几个词,机器就可以知晓用户想要表达的整个意思。另外还可以自动分析用户所在的位置、身份、习惯等,利用这些信息来决定向用户提供哪些搜索结果。未来在很多时候,我们无须再主动“搜索”,基于搜索引擎的Feed可以主动猜测并推送我们需要的信息。设想一下,比如在一个餐厅吃饭时,搜索引擎已经根据用户之前的搜索内容推测出用户下一步的安排,即使用户还没“问”,都会主动帮用户收集好之后需要的信息,比如当前有什么电影上映,最近的电影院在哪里等。这种设想已经在百度的产品中有所尝试。即使对于用户暂时不关注的信息,不出现在Feed里,也会合理存储起来,像一座无形的图书馆,供用户以后前往探寻。智能化的搜索引擎正在伴随我们一起成长。
搜索是最大的人工智能项目
搜索引擎一刻不停地工作着,它就是人类学习精神的镜像,每时每刻收集处理着大量数据,抓取整个互联网上的页面和内容,不管是电商、社交媒体还是新闻门户,搜索引擎都会“访问”它们。
搜索引擎是播种机、实验场和数字对撞机,结合语音识别、图像识别和机器翻译,通过大量用户的实际使用又可以采集回来更多有价值的数据,反过来帮助神经网络优化训练效果,形成一个良性的发展闭环。
自然语言处理技术的发展会带来更多的惊喜。机器除了可以快速写作具有一定格式的财经、体育新闻,即便在文学方面,机器写出的“唐诗”也令人难辨真假。看篮球、足球比赛时,解说机器人不但能够迅速通报赛场状况,还可以同时回答很多人的提问。这有点像科幻电影《Her》里的智能程序萨曼莎,她可以同时和无数人谈恋爱。恋爱大概是人类最深度的语言、思想、情感交流。萨曼莎堪称自然语言处理技术的一个高级象征,描绘出人类与机器的深刻关系。也许未来,搜索引擎真的会像萨曼莎一样,穷尽符号信息,闯进语言与意义的空隙之处,超出人类的想象。
严格来说,人工智能是一种“体力活”,要有足够的体力才能经受住那样巨大的数据和计算。而在一般的大学高校或者较小的互联网公司,数据量和硬件成本上的门槛使得发展人工智能受到很大的限制。即使不考虑CPU、GPU等硬件的购置费用,光是运维这些硬件的成本就很高,AlphaGo下一场围棋就要耗费3000美元电费。现在百度除了传统的服务器、带宽等基础设施,还拥有数百台支持人工智能运算的GPU服务器,最高配置的服务器上可以安装16张GPU卡。在这一切的基础之上,将数据储备、硬件基础、市场规模和人才团队统筹起来,最大限度地发挥优势,所追求的就不是一时一地的得失,而是最大、最基础的人工智能平台,为人类“知道更多,做到更多,体验更多”而努力。
人工智能,这是百度的命运
可以说,人工智能对于百度、谷歌这样的公司,是一种内在的诉求,也是互联网、移动互联网和数据大爆发自身的诉求。国内在这个领域很难有其他公司能与谷歌、微软这些拥有规模优势的公司抗衡。建立基础设施基地和人才高地,是百度义不容辞的责任。
将人工智能的火种传递到更多人手中,创造实际价值,让生活更美好,让国力更强大。这样的愿望给了百度人动力,也是百度能够集结众多人工智能科学家的原因。
林元庆本来在NEC美国实验室研究人工智能,那里的条件和氛围都很好,学术性很强,可以专注于研究和发表论文。但是他还是选择离开熟悉的环境,选择了百度。他说最重要的原因就是,作为一个人工智能的研究者,他觉得把深度学习的技术真正实践到应用层面是非常关键的一环。现在中国有超过7亿的互联网用户,超过12亿的手机用户,都是世界之首,如何让广大用户都享受到人工智能带来的改变并参与这种改变?这种探索的价值能够影响全中国所有人的生活。他迫切感到“这是最好的时刻,是人工智能最有希望的机会,错过了就太可惜了”。
但人工智能从不休息,当人类在睡梦中,它们依然在机器世界里奔涌,在无尽的循环往复里蝉蜕蝶化,终将飞向世界!
这里想引用一位著名哲学教授写在20世纪90年代的一段话作为结尾:
在天堂里,人还不是人。更准确地说,人还没有被投放到人的道路上来。现在,我已经被拋掷出来很长的时间了,循一条直线飞过了时间的虚空。在什么深层的地方,还是有一根细细的绳子缚着我,另一头连向身后远处云遮雾绕的天堂。个体灵魂不是她自己选择的,而是从天堂拋出的系在她身上的细线,使她的身体身不由己。薇娥丽卡自己不可能去找到一种生命热情,只能从自己身上发现自己的生命热情,这就等于发现把自己的身体与影子系在一起的那根细线。从天堂那边拋出来的细线决定了薇娥丽卡身体的生命方向和个体灵魂的在世负担,感觉到自己的个体命运。所谓个体命运不过是,一个人感到唯有这样的生命热情的散发才让自己有美好地活过的感觉,才有自己身体的在世幸福,以至于非如此生活不可。[1]
[1] 刘小枫。沉重的肉身[M].北京:华夏出版社,1999.