趙言昌
2016年3月15日,谷歌阿爾法狗(AlphaGo)與韓國(guó)九段棋手李世石進(jìn)行“人機(jī)大戰(zhàn)”第五場(chǎng)對(duì)弈,經(jīng)過(guò)五個(gè)小時(shí)的博弈,最終,谷歌AlphaGo獲勝。
AlphaGo的勝利,是深度學(xué)習(xí)的勝利,也是算法的勝利。你鼠標(biāo)的每一次點(diǎn)擊,你在手機(jī)上完成的每一次購(gòu)物,天上飛的衛(wèi)星,水里游的潛艇,拴著你錢袋子的股票漲跌——我們這個(gè)世界,正是建立在算法之上的。
那么,什么是算法,你對(duì)它又了解多少?
齊軍煮粥與枚舉法
一直以來(lái),計(jì)算機(jī)科學(xué)都給人一種高深莫測(cè)的感覺(jué),人們對(duì)其有很多“高大上”的印象,其實(shí),它也有一些你我早已熟識(shí)的東西。
例如:電影《戰(zhàn)國(guó)》中,孫臏(孫紅雷飾)帶領(lǐng)齊國(guó)軍隊(duì)打仗,半路上收留了幾百個(gè)災(zāi)民。齊國(guó)的情報(bào)系統(tǒng)告訴孫臏,災(zāi)民之中有敵國(guó)奸細(xì)。那么,倉(cāng)促之間,如何判斷誰(shuí)才是敵人?
孫軍師心生一計(jì),囑咐手下人煮粥,并在粥里加了很多辣椒。如此味道,一般人肯定是不肯喝的,但災(zāi)民就不一樣了。都快餓死了,誰(shuí)還敢挑食?下屬們紛紛稱贊軍師神算……
那么,有沒(méi)有更好的方法呢?
有!狠下心,挨個(gè)兒殺,總會(huì)把奸細(xì)殺死。
電腦有時(shí)就是這么處理問(wèn)題的:五把鑰匙里,有一把是對(duì)的,一把一把試過(guò)去,總能打開(kāi)鎖。這就是枚舉法,聽(tīng)起來(lái)有些弱智,但是計(jì)算機(jī)的運(yùn)算速度很快,所以至今仍有用武之處。
考場(chǎng)作弊與數(shù)據(jù)壓縮
隨著網(wǎng)絡(luò)的應(yīng)用越來(lái)越普遍,很多人都愛(ài)花錢辦會(huì)員,在線或下載下來(lái)收聽(tīng)無(wú)損歌曲。那么,無(wú)損音樂(lè)是怎么回事?
這就要從數(shù)據(jù)壓縮說(shuō)起。
比如,考試時(shí),你身后坐的一位后進(jìn)同學(xué)小聲跟你要選擇題的答案。假設(shè)一共有20道選擇題,每道題的答案都是A,你是挨個(gè)給他念一遍呢,還是說(shuō)一句,“都是A”?正常人肯定會(huì)選后者,不僅省時(shí)、省事,而且沒(méi)有信息損失,和“AAAAAAAAAAAAAAAAAAAA”效果一致。
在此過(guò)程中,你通過(guò)統(tǒng)計(jì)分析,總結(jié)出規(guī)律,用更少的字段去描述全部信息,這就是無(wú)損壓縮。
那么,有損壓縮又是什么樣的?比如,你愛(ài)上一個(gè)姑娘,她在北京,你在上海。聚少離多,思念日增,你想要知道對(duì)方每時(shí)每刻的樣子。不過(guò),總不能請(qǐng)個(gè)攝影師24小時(shí)跟拍吧。于是你們約定,選幾個(gè)特定時(shí)刻,早上起床什么樣,晚上睡前什么樣,白天工作什么樣,周末休息什么樣。
就這樣,24小時(shí)的內(nèi)容,被壓縮到幾分鐘,數(shù)據(jù)量大為減少,這是好處一;有些情況你看不到,這是壞處一;照片到了你手里,你就可以根據(jù)你對(duì)她的了解,近似還原她的狀態(tài),這是好處二。
“兩利相權(quán)取其重”,有損壓縮因此風(fēng)靡。
比如刷微博時(shí),你上傳一張自拍,新浪的服務(wù)器會(huì)將照片還原成一個(gè)個(gè)明暗變化的小點(diǎn),然后用有損壓縮。比如,可以每隔幾行剪掉一部分?jǐn)?shù)據(jù),用臨近小點(diǎn)的明暗數(shù)值補(bǔ)齊。新浪節(jié)省了存儲(chǔ)空間,你減少了流量費(fèi),而圖片質(zhì)量區(qū)別并不是很大,何樂(lè)而不為?
外星探索與公鑰加密
公鑰加密是一種很古老的做法——在計(jì)算機(jī)領(lǐng)域,超過(guò)10年就算古董了。
公鑰加密是由對(duì)應(yīng)的一對(duì)唯一性密鑰(即公開(kāi)密鑰和私有密鑰)組成的加密方法,是目前商業(yè)密碼的核心?!肮€”,顧名思義,鑰匙是公開(kāi)的。
比如,你和你的好朋友小明被聘請(qǐng)為人類外星探索先行官,降落在某個(gè)地外星球上。不料,這顆星球上是有原住民的,他們把你倆抓了起來(lái),并監(jiān)控了你倆的通信頻道。
小明問(wèn):“你現(xiàn)在還有多少子彈?”
你要是直接說(shuō)數(shù)字,外星人馬上會(huì)知道,你要是說(shuō)“N+5”,小明又不知道N是多少。
就在這個(gè)時(shí)候,你發(fā)現(xiàn)外星人不懂乘除法。該如何利用這一情況呢?
首先,你還是用加密信息,告訴小明:“我的子彈數(shù)是N×9?!?/p>
然后,你說(shuō):“任選一個(gè)數(shù)字。”
外星人自然會(huì)聽(tīng)到,不過(guò)沒(méi)關(guān)系,數(shù)字是無(wú)窮的,撞車的概率很小。你選了3,小明選了2。
接下來(lái),你用3乘以9,得到27;小明也一樣,他用2乘以9,得到18;至于外星人,他們選的數(shù)字和你們不一樣,得出的結(jié)果自然也不一樣。
隨即,你公布“答案是27”,小明也公布,“答案是18”。
最后是見(jiàn)證奇跡的時(shí)刻:你用小明公布的數(shù)字18,乘以你的私密數(shù)字3,得到54;小明呢,他用27乘以2,結(jié)果也一樣——(2×9)×3=(3×9)×2。
我們逛淘寶的時(shí)候,正是經(jīng)歷了這樣的場(chǎng)景。你發(fā)出的付款信息,要經(jīng)過(guò)多個(gè)服務(wù)器轉(zhuǎn)接。如果不加密,你的支付信息就會(huì)暴露在互聯(lián)網(wǎng)上;你自定義一套密碼,安全倒是安全,但淘寶也不知道你說(shuō)的什么,老是“支付失敗”你能樂(lè)意嗎?因而,必須用公鑰加密信息。
所以,并不是“敗家娘們”通過(guò)“買買買”讓馬云當(dāng)上了首富,技術(shù)進(jìn)步才是淘寶成功的關(guān)鍵之一。
“川菜招牌菜”與匹配排名
谷歌初創(chuàng)時(shí),不過(guò)是斯坦福大學(xué)的一個(gè)學(xué)生研究項(xiàng)目。20年來(lái),從十萬(wàn)美元的初始投資到一千多億美元的資產(chǎn)凈值,從一個(gè)小小的搜索框到涵蓋手機(jī)、通訊、在線教育等數(shù)個(gè)領(lǐng)域的互聯(lián)網(wǎng)大鱷,谷歌深遠(yuǎn)地影響了世界。
為什么谷歌風(fēng)靡全球?因?yàn)楣雀璧乃阉饕嫣貏e好用。
為什么谷歌的搜索引擎那么好用?因?yàn)楣雀璧钠ヅ渑c排名算法極其優(yōu)秀。
比如,當(dāng)我們用谷歌搜索“川菜的招牌菜是什么”時(shí),谷歌的服務(wù)器首先要進(jìn)行匹配,找到我們想要的網(wǎng)頁(yè);其次要進(jìn)行排名,判斷不同網(wǎng)頁(yè)的優(yōu)先度,將我們最想要的,排在最前面。
匹配就像查字典,難的是如何教會(huì)計(jì)算機(jī)查字典。“川菜的招牌菜”是偏正短語(yǔ),“川菜”用來(lái)修飾“招牌菜”,計(jì)算機(jī)不懂這些。所以,計(jì)算機(jī)首先要把互聯(lián)網(wǎng)上的網(wǎng)頁(yè)都看一遍,找到所有含有“川菜”的網(wǎng)頁(yè)和所有含有“招牌菜”的網(wǎng)頁(yè),將二者進(jìn)行對(duì)比,找出重復(fù)的部分。而這,大概就是用戶需要的。
問(wèn)題是,這些網(wǎng)頁(yè)很多,可能有幾百萬(wàn)個(gè),怎么對(duì)它們進(jìn)行排序呢?總不能一股腦都擺第一頁(yè)吧?否則,50寸的顯示器也不夠用吶。
谷歌的崛起,就是因?yàn)榕琶?998年,谷歌創(chuàng)始人拉里·佩奇和謝爾蓋·布林發(fā)表了《解析大規(guī)模超文本網(wǎng)絡(luò)搜索引擎》。
當(dāng)時(shí),由于技術(shù)限制,人們還不可能讓計(jì)算機(jī)直接模擬人腦,分辨哪些重要、哪些不重要。對(duì)此,佩奇和布林找到了一個(gè)計(jì)算機(jī)可以辨識(shí)的指標(biāo):PageRank值。
PageRank值可以簡(jiǎn)單理解為網(wǎng)頁(yè)的被引用次數(shù)。比如有一百個(gè)網(wǎng)頁(yè)既包含“川菜”又包含“招牌菜”,符合搜索要求。其中,有九十九個(gè)網(wǎng)頁(yè)通過(guò)超鏈接提到了最后一個(gè)網(wǎng)頁(yè),那么,最后一個(gè)網(wǎng)頁(yè),就是最貼近用戶需要的。
謝耳朵認(rèn)臉與圖像識(shí)別
PageRank值本質(zhì)上是一種等價(jià)思想,用一種計(jì)算機(jī)可以使用的衡量標(biāo)準(zhǔn),取代人類的衡量標(biāo)準(zhǔn),“數(shù)值高”就等于人們“最想要”。如此一來(lái),計(jì)算機(jī)就能出色地完成我們交付的任務(wù)。
有時(shí)候,問(wèn)題并不是這么簡(jiǎn)單。舉個(gè)例子,計(jì)算機(jī)該如何進(jìn)行圖像識(shí)別呢?更進(jìn)一步講,計(jì)算機(jī)能不能辨識(shí)人臉以至于認(rèn)識(shí)到人的喜怒哀樂(lè)?
喜愛(ài)看美劇的人,對(duì)于《生活大爆炸》中的謝耳朵肯定不會(huì)陌生,他既是一個(gè)物理學(xué)方面的天才,十幾歲就開(kāi)始攻讀博士學(xué)位,讓人欽佩;也是一個(gè)生活中的弱智,連朋友是開(kāi)心還是生氣都看不出來(lái),令人莞爾。
如果謝耳朵花錢請(qǐng)你教他識(shí)別面部表情,你該怎么做呢?
你的第一反應(yīng),可能是找一臺(tái)攝像機(jī),把他朋友的喜怒哀樂(lè)都記錄下來(lái),一個(gè)一個(gè)地分析給謝耳朵聽(tīng),讓他記住重點(diǎn),開(kāi)心的時(shí)候,眉毛在哪,嘴唇如何,生氣的時(shí)候又是怎樣,區(qū)別在哪里。
思路沒(méi)有什么大錯(cuò),只是有兩個(gè)缺陷:第一,每一個(gè)人每次笑,都有些許不同,還有“激動(dòng)地流淚”、“長(zhǎng)歌當(dāng)哭”這種場(chǎng)景;第二,就算他學(xué)會(huì)了,他也只能辨識(shí)朋友們的面部表情,陌生人的則不行。
所以,我們改進(jìn)方案。首先,選取最典型的長(zhǎng)相;接著,尋找最典型的表情;最后,設(shè)立一個(gè)決策樹(shù)。計(jì)算機(jī)進(jìn)行圖像識(shí)別的方式也與此類似,當(dāng)計(jì)算機(jī)拿到一張照片時(shí),它沿著決策樹(shù),將測(cè)試數(shù)據(jù)和之前的樣本數(shù)據(jù)進(jìn)行對(duì)比。
最終,計(jì)算機(jī)給出結(jié)論,“這是一張男人的照片,他在哭”。研究人員再對(duì)結(jié)果進(jìn)行判斷,給予獎(jiǎng)勵(lì)或者修正。這樣,計(jì)算機(jī)就能逐步地建立一個(gè)決策體系,準(zhǔn)確地識(shí)別人的表情。
奇點(diǎn)與未來(lái)
在物理上,有觀點(diǎn)認(rèn)為宇宙起源于奇點(diǎn)。奇點(diǎn)是指一個(gè)體積無(wú)限小、密度無(wú)限大的點(diǎn),所有的物理定律都對(duì)它不適用;仿照這一概念,有人提出了技術(shù)奇點(diǎn),認(rèn)為在未來(lái)某一時(shí)刻,技術(shù)會(huì)發(fā)生近乎無(wú)限的進(jìn)步,使得我們之前的預(yù)測(cè)和生活方式都失效。
很多名人,如比爾·蓋茨、史蒂芬·霍金,都曾發(fā)出警告,認(rèn)為人工智能可能就是這個(gè)奇點(diǎn),超級(jí)計(jì)算機(jī)也許會(huì)導(dǎo)致人類的毀滅。如今,AlphaGo在“人機(jī)大戰(zhàn)”中已取得壓倒性勝利。那么,計(jì)算機(jī)技術(shù)的奇點(diǎn)真的已經(jīng)到了嗎?未來(lái)人類又將走向何方?(編輯/余風(fēng))