北京时间2016年3月9日下午15时,经过三个多小时鏖战,九段李世石,向“阿尔法围棋”(AlphaGo)投子认输。这是人类顶尖围棋选手第一次输给计算机。
思索中的李世石
消息传来,欣喜者有之,震惊者有之,更多的人,想必在困惑,“他们在瞎激动什么呢?”
AlphaGo的胜利,是深度学习的胜利,是算法的胜利。你鼠标的每一次点击,你在手机上完成的每一次购物,天上飞的卫星,水里游的潜艇,拴着你钱袋子的股票涨跌——我们这个世界,正是建立在算法之上。
关于它们,你又了解多少呢?
枚举法
一直以来,计算机科学都给人一种高深莫测的感觉。很多人因此望而生畏,自动打消了学习计算机知识的热情。
“我数学不好,肯定学不会。”
“我一女生,学什么计算机啊?!”
其实,并非如此。计算机科学,作为自然科学里的新出现的一员,自然会有很多“高端大气上档次”的想法,不写上三五页纸说不清楚;同时,它也有一些你我早已熟识的东西。
孙红雷先生,想必大家都认识。电影《战国》中,孙膑(孙红雷饰)带着齐国的军队打仗,半路上收留了几百个灾民。齐国的情报系统告诉孙膑,灾民之中里面有敌国奸细。仓促之间,如何判断谁才是敌人呢?
孙军师心生一计,嘱咐手下人煮粥,并在粥里加了很多辣椒。如此味道,一般人肯定是不肯喝的,但灾民就不一样了。都快饿死了,谁还敢挑食?下属们纷纷称赞军师神算,升职加薪,指日可待……
这事儿还有下文,篇幅所限,就不说了。有没有更好的方法呢?
有。狠下心,挨个儿杀,总会把奸细杀死。
电脑有时候就是这么处理问题的。五把钥匙里,有一把是对的,一把一把试过去,总能打开锁。这就是枚举法。听起来有些弱智,但是计算机的运算速度很快,所以至今,仍有用武之处。
密码管理服务商,SplashData,曾经公布过最受欢迎的密码。黑客们只要把这些密码试验一遍,就能有很多收获。
最受欢迎密码,图片来源:SplashData
更进一步,他们可以窃取A公司的服务器内容,得到一堆账号和密码,然后挨个放到B网站上测试。懒惰之心,人皆有之,肯定有客户在A公司和B网站使用相同的账号与密码。如此一来,你的钱包就不保喽。
数据压缩
这两年,硬盘价格大降,但与此同时,游戏的体积也在不断增加,仍有人嫌硬盘不够用;另一方面,随着3G、4G和移动设备性能的崛起,很多人都爱花钱办个会员,在线或者下载,听无损歌曲。如何才能压缩游戏体积呢?无损音乐又是什么?
这要从数据压缩说起。
考场生,你身后坐了一位后进同学。小声跟你要选择题的答案。作弊当然是不对的,但是场景需要,你必须帮他。
假如一共有二十道选择题,每道题的答案都是A,你是挨个给他念一遍呢,还是说一句,“都是A”?正常人肯定会选择后者,不仅省时、省事,而且没有信息损失,和“AAAAAAAAAAAAAAAAAAAA”效果一致。
在此过程中,你通过统计分析,总结出规律,用更少的字段去描述全部信息,这就是无损压缩。电脑上的无损压缩当然复杂得多,有可能出现“ABABAB……”,也有可能出现“AB10AAB”,但其基本理念是一致的。
现在换一种情况看。你爱上一个姑娘,她在北京,你在上海。聚少离多,思念日增。你自然很希望知道对方每时每刻的样子。不过,总不能请个摄影师二十四小时跟着她,对吧?于是你们约定,每天选几个特定的时刻,早上起床什么样,晚上睡前什么样,白天工作什么样,周末休息什么样。
二十小时的内容,被压缩到几分钟,数据量大为减少,这是好处一;有些情况你看不到,这是坏处一;照片到了你手里,你就可以根据你对她的了解,近似还原她的状态,这是好处二。
有损压缩体积与质量变化,图片来源:http://itindex.net/
“两利相权取其重”,有损压缩因此风靡。
比如刷微博的时候,你上传一张自拍。新浪的服务器会将照片还原成一个一个明暗变化的小点,然后用有损压缩。比如,可以每隔几行剪掉一部分数据,用临近小点的明暗数值补齐。新浪节省了存储空间,你减少了流量费,而图片质量,区别并不是很大,何乐而不为呢?
公钥加密
公钥加密是一种很古老的做法——在计算机领域,超过十年就算古董了。
春天了,风和日丽,很多人都爱出门逛街。这一天,你和你妈逛商场,正好遇见了小明和小明他妈。你俩之前商量过踏青的事,但又不愿意让父母跟着。
现在你想把时间定在周六。
忽然,你想到,上周五,小强被罚站了。所以你可以说:“你还记得小强被罚站那天是星期几吗?往后推一天就行了。”
“小强被罚站”那天,是一把钥匙,有了它才能破解你俩的对话。同时,它还是一把私密的钥匙,当事人之中,只有你和小明知道。
公钥加密则有些不同。“公钥”,顾名思义,钥匙是公开的。
慢慢的,你和小明长大了,成了栋梁,被聘请为人类外星探索的先行官,降落在某个地外星球上。不料,这颗星球上是有原住民的,他们打算把你俩抓起来,并且监控了你俩的通信频道。
小明问:“你现在还有多少子弹?”
你要是直接说数字,外星人马上会知道,你要是说“N+5”,小明又不知道N是多少。
就在这个时候,你发现外星人不懂除法。该如何利用这一情况呢?
首先,你还是加密信息,告诉小明,“我的子弹数是N+5”。
然后,你说,“任选一个数字”。
外星人自然会听到,不过没关系,数字是无穷的,撞车的概率很小。你选了3,小明选了2。
接下来,你公布一个数字,“9”,并且用3乘以9,得到27;小明也一样,他用2乘以9,得到18;至于外星人,他们选的数字和你们不一样,得出的结果自然也不一样。
随即,你公布“答案是27”,小明也公布,“答案是18”。
最后是见证奇迹的时刻:你用小明公布的数字,“18”,乘以你的私密数字,“3”,得到54;小明呢,他用“27”乘以“2”,结果也一样。——(2X9)X3=(3X9)X2。
我们逛淘宝的时候,正是经历了这样的场景。你发出的付款信息,要经过多个服务器转接。如果不加密,你的支付信息就会暴露在互联傻瓜;你自定义一套密码,安全倒是安全,但淘宝也不知道你说的什么,老是“支付失败”你能乐意吗?因而,必须用公钥加密信息。
所以,并不是“败家娘们”,通过“买买买”,让马云当上了首富。技术进步,才是淘宝成功的关键之一。
马云在第二届世界互联网大会闭幕式发表主题演讲
匹配与排名
谷歌初创的时候,不过是斯坦福大学的一个学生研究项目。20年来,谷歌深远地影响了世界,世界也见证了谷歌的成长,从学校搬迁到车库,从十万美元的初始投资到一千多亿美元的资产净值,从一个小小的搜索框到涵盖手机通讯在线教育等数个领域的互联网大鳄。
为什么谷歌风靡全球?
因为谷歌的搜索引擎特别好用。
为什么谷歌的搜索引擎那么好用?
因为谷歌的匹配与排名算法极其优秀。
当我们发起搜索请求的时候,比如在谷歌里输入,“川菜的招牌菜是什么”,谷歌的服务器首先要进行匹配,找到我们想要的网页,其次要进行排名,判断不同网页的优先度,也就是计算权重,将我们最想要的,排在最前面。
匹 配就像查字典,难的是如何教会计算机查字典。“是什么”先不管;“川菜的招牌菜”,偏正短语,“川菜”用来修饰“招牌菜”,计算机不懂这些。所以,首先, 计算机要把互联网上的网页都看一遍,从网页文字中提炼出能够代表该网页的关键词;然后,把这些关键词存储起来,做好标记,类似于字典的索引,“某字在某 页”;最后,服务器查找所有含有“川菜”的网页和所有含有“招牌菜”的网页,将二者进行对比,找出重复的部分,这个,大概就是用户需要的。
问题是,这些网页很多,可能有几百万个,怎么对它们进行排序呢?总不能一股脑都摆第一页吧?否则,50寸的显示器也不够用呐。
谷 歌的崛起,就是因为排名。1998年,谷歌创始人拉里•佩奇和谢尔盖•布林发表了名为《解析大规模超文本网络搜索引擎》(The Anatomy of a Large-Scale Hypertextual Web Search Engine)。因为技术限制,我们还不可能让计算机直接模拟人脑,分辨哪些重要、哪些不重要。佩奇和布林找到了一个计算机可以辨识的指 标:PageRank值。
PageRank值可以简单理解为网页的被引用次数。比如有一百个网页既包含“川菜”又包含“招牌菜”,符合搜索要求。其中,有九十九个网页通过超链接提到了最后一个网页,那么,最后一个网页,就是最贴近用户需要的。
谷歌正在测试地无人驾驶汽车
图像识别
PageRank值本质上是一种等价思想,用一种计算机可以使用的衡量标准,取代人类的衡量标准。“数值高”,就等于人们“最想要”的。如此一来,计算机就能出色地完成我们交付的任务。
有时候,问题并不是这么简单。举个例子吧,计算机该如何进行图像识别呢?更进一步讲,计算机能不能辨识人脸以至于认识到人的喜怒哀乐?
喜爱看美剧的人,对于谢耳朵(谢尔顿,《生活大爆炸》)肯定不会陌生。剧中,谢耳朵既是一个物理学上的天才,十几岁就开始攻读博士学位,让人钦佩;也是一个生活中的弱智,连朋友是开心还是生气都看不出来,令人莞尔。
如果谢耳朵花钱请你教他识别面部表情,你该怎么做呢?
你的第一反应,可能是找一台摄像机,把他朋友的喜怒哀乐都记录下来,一个一个地分析给谢耳朵听,让他记住重点,开心的时候,眉毛在哪,嘴唇如何,生气的时候又是怎样,区别在哪里。
思路没有什么大错,只是有两个缺陷:第一,每一个人每一次笑,都有些许不同,还有“激动地流泪”、“长歌当哭”这种场景;第二,就算他学会了,他也只能辨识朋友们的面部表情。
所以,我们改进方案。首先,我们选取最典型的长相,接着,我们寻找最典型的表情,最后,我们为计算机设立一个决策树。
当计算机拿到一张照片的时候,它沿着决策树,将测试数据,和之前的样本数据,进行对比。
一个典型的决策树,图片来源:http://dataunion.org/
最后,计算机给出它的结论,“这是一张男人的照片;他在哭”。由研究人员对结果进行判断,给予奖励或者修正。这样,就计算机就能逐步地建立一个决策体系,准确地识别人的表情。
数 学上有一些无意义的点,比如y=1/x,我们都知道X不能为0,因为那样算式无意义;物理上也有一些事物,比如宇宙诞生于奇点,奇点是指一个体积无限小、 密度无限大的点,所有的物理定律都对它不适用;仿照这些概念,有人提出了技术奇点(technological singularity),认为在未来某一时刻,技术会发生近乎无限的进步,使得我们之前的预测和生活方式都失效。
很多名人,比尔.盖茨、史蒂芬.霍金,都曾发出警告,人工智能可能就是这个奇点,超级计算机也许会导致人类的毁灭。
如今,AlphaGo已经赢得首战。围棋还能被称之为“人类最后的骄傲”吗?我们的未来将通向何方?
罗伯特.海因莱因在其压轴大作《时间足够你爱》(Time Enough for Love)里写道:“人类大脑所能构建的最为精密的机器,其能力也必然受限于人脑。”乍一看,这是在鼓励人们想象,先要想到“飞”,才能制造出飞机来;不过我却从里面咂摸出一丝道德的味道。
我对于比尔.盖茨等人,没有不敬的意思。只不过,我们制造的机器,必然会延续我们对世界的认知、受制于我们对真善美的定义,有什么好惧怕的呢?