什麼才叫機器戰勝人?
馬力
最近機器人在棋盤上大戰生物人鬧得沸沸揚揚。不少人把人機博弈說成是機器人智慧與人類智慧的決賽,這實際上是對人類智慧的不了解造成的。機器與人博弈只是思維的一種形式—形式邏輯—的較量,因為機器人是按照人類輸入的形式邏輯來下棋的。在形式邏輯上利用高速計算超越人類不足為奇,就像老式機械是人力的延長一樣。就是在形式邏輯上,機器是否不可戰勝仍是未知數。這裡剛好有篇文章「陳經:感謝李世石生命般的抗爭
現在我敢說AlphaGo的命門其實很簡單」討論了機器人AlphaGo在形式邏輯上的局限。
首先來回答一個問題:就形式邏輯而言,什麼才叫機器戰勝人?所謂的機器戰勝人不應指機器人通過人工輸入的程序打敗人,因為這還是人戰勝人,是人用機器戰勝了沒有用機器的人。就像人用棍子打敗徒手的對手一樣,不能說是棍子打敗了人。不管多麼拗口,也只能說是人用棍子打敗了另一個人。機器戰勝人應該是機器人與生物人一樣從零開始學習棋術,靠自身積累的經驗打敗人類,而不是靠人事先輸入的程序來下棋。
這還只是在形式邏輯方面,即人類思維的一個最基本的方面。有人喜歡把形式邏輯的演繹說成是弱智的最後功能,因為是最簡單的思維功能。許多缺乏生活能力的人卻可以是「數學家」。當然這包括了對腦筋死板的某種歧視。事實上形式邏輯中的歸納、證明和邏輯聯想,包括形象邏輯的聯想還是很有挑戰性的。
大家都說AlphaGo很厲害,為什麼?因為它是按取勝的概率來計算投子,而不是按最優化來計算的。實際上由於圍棋格點太多,不像國際象棋那樣有許多行動上的限制,目前的計算機速度難以做到圍棋博弈中的最優化選擇,只能計算勝負的概率或可能性。這在外行看來是很了不起的手段恰恰是機器人AlphaGo的問題所在。
機器是怎樣計算概率的?這就首先需要假定對方的應對。所謂的窮舉法只能用於很小的範圍。對整盤棋局來說,機器速度無法在限定的時間內逐個地對所有空格窮舉之後各步的每一種可能直到最後的勝負,而只能從所知棋譜中選擇對方所有的可能應對來計算概率。一旦選擇就有選擇遺漏。更多不被看好的應對就會被忽略。一旦人不按常規棋譜出牌,機器就無法事先預測並因此可能作出錯誤的決策。這就是機器人bugs的一個來源。就像谷歌無人駕駛汽車的軟體假定別人在自己接近時會讓路一樣,因此忽略了規避措施造成車禍。
我在這裡對機器人的工作原理說得很簡單,一目了然。但AlphaGo的演算法很複雜,非理工專業的很難讀懂。為什麼有這些區別?因為我說的是最基本的計算,也是最可靠的。但實際上由於比賽時間有限,機器人在比賽時不可能按這種最基本可靠的方法來運算,只能設法簡化運算步驟和數量,用統計代替逐個格點的窮舉。這樣一來就需要各種條件下的統計模擬公式。所有簡化公式都帶有多種假定條件下的參數。AlphaGo用反覆對壘和自弈來確定這些參數,即所謂的深度學習。敘述起來就變得很複雜。用統計代替真實的窮舉后,雖節省了大量時間,但失去了可靠性,也更容易產生bugs。也由於參數來自大量實驗,修改起來也很困難。
如果再說形式邏輯之外的辨識思維或辨證思維,機器人更無從談起。首先要有全部的感覺系統,還要有判斷是否值得學習的能力。然後對感覺加以判斷是否具有新的信息。如果是新的,如何用新的概念定義命名,如何建立與已知系統的聯繫,最後如何產生新的公理體系等等等等。目前談論這些還為時太早。機器的儲存遠遠不夠,因為要包括人類的所有知識和經驗。
舉個例子,讓一個有感官的機器人尋找新物種,人事先把所有已知物種的各個部分輸入機器人。機器人會在一天中帶回無數樣本,包括被蟲咬破,被泥土污染,被人獸踩壞和不同程度腐爛的等等。結果一無所獲。這還是有明確目標的行為。要機器人獨立建立價值目標就更難了。它會把所有時間用來數一頭死老鼠身上的毛數和螞蟻數。