這裏【蟻群】形容適合大數據大群體的能力和策略,而【大象】代表著小數據(甚至非數據)小群體(甚至個人)的智慧。
最近一直賴著沒交作業,連續補了幾部連續劇,包括去年NETFLIX熱到爆的《後翼棄兵》。這部劇是根據80年代初的同名小說改編。講的是上世紀中50,60年代一個孤兒院長大的肯塔基女孩,貝絲-哈蒙,從6歲開始偶然接觸國際象棋,然後一路開掛,最後戰勝俄羅斯特級大師的故事。
故事的主人公原型是鮑比-菲舍爾。雖然菲舍爾是位男性,並非孤兒,但確實與貝絲相仿也是生於單親母親家庭。電影中貝絲自己親生的和後來的繼母都有菲舍爾母親的影子。菲舍爾同樣是6歲開始自學象棋(姐姐送的一本象棋書啟蒙),之後就是江湖傳奇。他從14歲開始,十幾年孤獨求敗,先後8次輕鬆地蟬聯美國冠軍(中間有任性不參賽的),並最終於尼克鬆年代在國際象棋世界冠軍賽上毫無懸念地擊敗衛冕的俄羅斯特級大師,奪得世界冠軍。
從菲舍爾或者其虛構的主人公貝絲身上,我們都看到了人類天才那種神話一般的超人天賦。6歲的貝絲在孤兒院地下室目睹了老校工自己在棋盤上擺弄象棋。她默默地觀摩了幾次之後就無師自通明白了棋理,並懇求和大叔切磋。剛開始幾盤老校工還是哄孩子玩一樣三五步秒殺貝絲,但少許數日,不過十幾局對弈之後,貝絲就開始占據上風,妥妥地令大叔對眼前的小蘿莉刮目相看,並成為至交。
電視劇中自然絕對少不了那些即引人入勝又痛快淋漓的天才少女降維吊打對手的橋段(雖然我和大多數觀眾連被吊打的資格都沒有)。比如,7歲的小貝絲實力碾壓某高中象棋隊,之後還感歎:"沒想到這幫人那麽差勁"。還有貝絲15歲時去參加肯塔基州錦標賽,從被對手輕蔑,到完虐一眾對手,最終奪得冠軍讓眾人齊刷刷人大跌眼鏡。
由此聯想起20多年前IBM的國際象棋人工智能係統“深藍”與卡斯帕羅的對局。卡斯帕羅是俄羅斯國際象棋特級大師,在1985至2005年間曾23次獲得過世界排名第一。這場對局最終是深藍以2勝3和1負贏得比賽。近四分之一個世紀之後,現在人工智能在手機上的開源APP(STOCKFISH)已經可以不費吹灰之力完虐所有國際象棋特級大師。而數年前DEEPMIND的阿爾法狗更是毫無懸念地團滅了圍棋江湖的各路盟主。
然而,人工智能的這些輝煌戰績並不像很多人以為的那樣,代表人工智能已經碾壓人類智能。正如布魯克斯潑的那盆冷水所說:【大象不下棋】,現代AI不但遠遠沒有超越人類智能,甚至對哺乳動物大象的智能還都仍然望塵莫及。
我們可以拿人類學習與機器學習做個比較。前幾天雨地帖過一個海森堡思索的哲學命題:“當我們不觀測某物體時,它是否存在”。這個命題牽扯到一個叫【物體恒存】(OBJECT PERMANENCE)的心理學概念。它指的是觀察者對暫時從視覺(也包括聽和觸覺)中消失的物體仍保持其存在的心理意識。它對自動駕駛和機器人的AI運動物體識別的視覺識別係統中有著關鍵的作用。
大多數嬰幼兒(以及某些哺乳動物,比如大象,貓狗),無論種族和文化背景,在2歲前都能建立【物體恒存】的意識。比如,孩子會伸手挪開遮擋玩具的屏障。有些孩子掌握的比較晚,表現為父母暫時離開眼前時(比如進了幼兒園之後)就哭鬧,也許是誤以為父母從此不在了。而有的嬰兒在出生後僅僅4,5個月就令人驚訝地開始顯現這種觀念。4,5個月大的嬰兒的大部分時間都是在睡眠,幾乎沒有我們通常所說的“刺激反應”的學習來誘導他們在意識中建立如此抽象的觀念。相比較,如果訓練一個AI神經網絡去獲得這種觀念,通常也需要數萬,甚至數十萬次的大數據學習。而4,5個月的孩子總共的經驗機會不會有數十次,可見嬰兒的學習效率完全不輸貝絲無師自通的【天賦智慧】,更是機器學習所望塵莫及。
套用句老話,我們人類在諸多能力的“學習”上吃的是草,擠出來的卻是牛奶。這種輸入(經驗)與輸出(意識,能力)完全不匹配的異常被喬姆斯基稱之為【刺激貧乏】。喬姆斯基最初是針對兒童語言學習甚至語言創造的驚人能力提煉出這個概念。如果要讓一個白板的機器網絡(深度神經網或著是貝葉斯網)去學習某種語言和語法,估計要吃掉一本莎士比亞全集。而語言關鍵期的兒童則僅僅經過微不足道的小數據日常交流就能達到甚至超過機器海量大數據學習所能達到的語言能力。
從學習和刺激訓練量上考察,阿爾法狗也非常難堪。與其對弈的中國棋手柯潔當時年僅19歲,棋齡僅僅14年,總經驗棋局數不過1,2萬盤。而阿爾法狗則經過~3000萬盤刷題訓練再加~3000萬盤試玩對弈加強訓練,換算成棋齡等於上萬年(哪怕是阿爾法無ZERO的500萬盤自對弈也相當於千年棋齡)。顯然,柯潔與阿爾法狗的對弈是個棋齡和訓練刺激量完全不對等的較量。類似於讓剛剛啟蒙,經驗仍然貧乏的貝絲直接去對陣已經刷過上萬局棋譜的老司機,雙方智力高低絕不等同於棋局上的輸贏。
如果具體看一下阿爾法狗的“智能”就更不敢再說AI已經超越人類智能。下麵均為形而下討論,形而上吃瓜群眾可以掠過,直接跳到【卡斯帕羅大戰全世界】。
阿爾法狗包括兩個網絡。第一個叫"策略網絡",一個普通分類識別深度神經網絡,其訓練方式也相似地采用“盲人摸象”和發糖獎懲的方式(除了最後的阿爾法無ZERO之外)。訓練的大數據集采用圍棋網站GOKGS.COM上搜集的~3000萬盤玩家棋局,用獎懲函數訓練網絡去模仿記憶人類棋手曾經的布局和走法。顯然,這種訓練並沒有讓機器去理解每一步走法的意義和價值。機器僅僅是在反複不斷的刺激訓練後形成了圍棋各種局麵下條件反應的“習慣”,類似鋼琴初學者按照琴譜去演奏,對音樂隻知其然卻不知其所以然。因此,與其說機器學習獲得了智能甚至創造力,不如說機器經過海量刺激反應的訓練而獲得了某種條件反射的肢體技能或下意識行為,類似苞丁解牛,陳公善射,無他,惟手熟爾。
並不令人意外的是,即使經過如此3000多萬海量刷題的豐富刺激訓練,阿爾法狗策略網絡的棋力仍然差強人意,印象中是50%的數量級。其GOKGS上的積分水平屬於一般棋手,完全無法與李世石柯潔這些超一流過招。阿爾法狗最終打敗高智商專業棋手所依靠的神器是其第二個打小抄的網絡,"估值網絡"。這個網絡的其實是預演各種可能的局麵並評估該局麵下落子的贏率。這個小抄網學習不再是在大數據集上刷題,甚至不依賴人類經驗棋譜,而是讓智商平庸的策略網絡做大群體大數據,即用海量的“棋手”進行海量的模擬對弈(“試玩”),來建立。
阿爾法狗的估值網絡所要解決的問題類似迷宮遍曆,如何找到一條可以贏得比賽(相當於走出迷宮)的"路徑"。當然,這個迷宮並不是棋盤那麽大小,而是圍棋的棋局空間。簡單粗暴的遍曆算法,對於2維迷宮來說下一步的走法平均數是2或3,對於國際象棋的棋局空間平均下一步可能選擇是20,而對於圍棋的棋局空間,這個平均因子則是~200。所以,一盤100步的圍棋的總遍曆數是200的100次方。即使拋棄明顯無效路徑,圍棋棋局空間遍曆的路徑數也依然是個天文數字。就連傳說中在象棋盤上按等比級數倍增放米粒的那個最終數目(2的64次方)也都小巫見大巫,當然更不是現代計算機力所能及。阿爾法狗並沒有用什麽火箭科技去解決這個問題,而是采用了仿照【蟻群】和人類日常熟視無睹的爬樹算法,即所謂的【蒙特卡洛樹搜索】。
人類的大腦大約有800億個腦細胞,大象的甚至更多。而螞蟻大腦則有僅僅200萬腦細胞,其智能遠比不上人類和大象。螞蟻在尋食時即需要確定曠野或環境中食物存在的位置,也需要確定蟻巢與食物源之間的最佳路徑。所以也同樣麵對類似圍棋棋局天文數字可能的遍曆問題。不具有太多智能的螞蟻有個簡單有效的【蟻群算法】。首先,它們並不是向四周幾乎無數的所有方向派遣螞蟻進行搜索,而是類似蒙特卡洛賭博一樣,隨機稀疏地挑選某些方向進行“瞎子摸象”。派出搜索的螞蟻會沿途分泌信息素,一種名叫弗洛蒙的化學物質。一旦發現食物,螞蟻會搬運其中的少許沿原路返回。到達蟻巢後螞蟻會召喚幾個夥伴再次同往搬運,並在沿路再次分泌弗洛蒙。即使有多隻螞蟻經過長短不同路徑都到達並發現了同一食品源,也是選擇了最短路徑上的那些螞蟻往返的次數為多,從而留下的弗洛蒙也相對強烈。其結果是,越是弗洛蒙強烈的方向和路徑,越是最有可能存在食物且通往該處的最佳路徑。其他的螞蟻,即使沒有被直接召喚到,也會根據弗洛蒙強弱自動選擇這種路徑。這裏,方向的隨機選取就是所謂的“蒙特卡洛樹”,而派出螞蟻進行搜索就是所謂的試搜(rollout或playout),而信息素的強弱則提供了一種無需螞蟻間直接溝通的正反饋機製。
然而大象則不同。數月前全球吃瓜群眾們圍觀了雲南十幾頭大象從原棲息地外出“觀光旅遊”。其實那就是象群尋找新棲息地的一種覓食活動。它們並沒有采用上麵描述的蟻群的覓食策略,分頭向四麵八方盲人摸象後再回頭報信,而是組團紮堆一起摸著石頭過河。其原因顯然並非蟻群具有比大象甚至人類更高的智能能想出這個策略,而是因為象群家族本身的小群體性,每頭大象均具有自己的自我意識,而不僅僅是無意識地遵循某種群體規則。
現在回頭再看阿爾法狗的【蒙特卡洛樹搜索】就不足為奇了。按照這個算法,在圍棋當前局麵的下一個落子位置的選取上,我們不再“遍曆”所有~200個可能的位置,而是在排除無意義位置之後,按照螞蟻尋食的法則,蒙特卡洛隨機地挑選少數下一落子位置,並基於每一被選擇的位置進行“試玩”(就是前麵所說的playout)。這裏的所謂“試玩”,就是讓前期訓練過的策略網擔當棋手,以所選擇落子位置的局麵為起點繼續左右互博對弈一定的局數,相當於【蟻群算法】中讓某隻螞蟻對這個選擇方向進行覓食搜索。這些試玩的贏率就是選擇這個方向(落子位置)的弗洛蒙正反饋評分。根據這個結果,一方麵丟棄那些贏率過低的落子位置(比如隻選擇贏率前3),另一方麵將該贏率反向傳播到前一步驟節點,對其贏率作權重修正(因此,下一步出現贏率高的落子位置時會增加上一步,甚至上上一步,。。。節點的贏率)。從而,我們可以得到一張相對真正遍曆而言大大稀疏了的,對圍棋棋局空間的“準遍曆”贏率估值圖(樹)。對於阿爾法狗,這個估值網絡(樹)的建立總共讓之前的策略網絡擔當棋手進行了~3000萬局的左右互搏(阿爾法無ZERO在這裏作了進一步優化,僅需500萬盤對弈)。假設這個準遍曆估值圖(樹)的每一個路徑(分枝)長度是100,那麽相當於蟻群派出了30萬隻螞蟻參與了覓食搜索。
可見,【蒙特卡洛樹搜索】算法的關鍵並不在於試玩者群體本身的智商或贏率(正如我們前麵所說,策略網的贏率隻有50%的量級),而在於那~3000萬提供反饋的試玩局數,或者~30萬擔當棋手的龐大試玩者“人”群。
在圍棋這個維度上,阿爾法狗這種鬆散大數據大群體的【蟻群算法】確實被證明超越了緊密小數據小群體的人的能力。然而,正如【刺激貧乏】的討論所揭示,在棋盤之外人類的【天賦智慧】對依靠海量刷題和昆蟲【群體法則】的阿爾法狗來說仍然是望塵莫及。因此,【蟻群對大象】不但勝負未卜,而且還隻是剛剛拉開帷幕。
人類智慧並不僅僅在於第一代人工智那樣能夠從一般到特殊,演繹推理,比如證明羅素《數學原理》中的50條定理。同樣,人類智慧也遠遠並非現在AI這樣能夠從特殊到一般,從海量數據或龐大群體活動中歸納事物的模式或特征,類似從第穀的觀測數據中總結出開普勒行星運動三定律。或者窮盡所有可能,然後提供知其然不知其所以然的答案,比如四色定理甚至黎曼猜想成立。此類沒有自我意識的人工“智能”,即使能從一般到特殊,從特殊到一般,也不過是一種作為人類的提線木偶所能表現的強大的盲人摸象的計算和搜索能力。它並不具備人類智慧那種無需直接大數據刺激就能夠激發的跳躍甚至顛覆創造性思維,比如從開普勒三定律想象出萬有引力定律,從一般哲學原則,抽象出等效原理,並進而勾勒出廣義相對論。
最後換個輕鬆的話題結束作業,想象一下如何人類也用蟻群算法下棋會是什麽樣的情景。與深藍人機大戰的那個卡斯帕羅後來又應邀做了一次【卡斯帕羅大戰全世界】的象棋對局。卡斯帕羅持白先行,執黑的則是全球5萬名棋手的共同決定。按照比賽規定,每一步棋各有一天的時間。所以,黑方有一天時間進行協商和投票決定他們的應棋。這大概是棋盤上最早的【蟻群對大象】。不過當時代表黑方的5萬餘參與者們的智商不但遠遠高於大象,更遠遠高於螞蟻,所以並沒有運用,也不屑於采用當時已經為人所知的【蟻群算法】這種小抄方式(對於國際象棋來說,擁有5萬名試玩棋手的【蟻群】,每一步有一天的試驗玩時間,足以實施這個算法)。雙方對弈4個多月後,黑方在第62步宣布認輸。否則,這場比賽不但黑方大概率會贏,而且會是棋盤上最早的【蒙特卡洛樹搜索】。即使如此,卡斯帕羅賽後表示,這是一場他一生中花費時間思考最多的一場比賽。