簡單(不嚴謹)的解釋一下:
GnuGo:一個著名的圍棋程序;說到免費的圍棋AI,最為鼎鼎大名的就是它了。它也是開源的。本次實驗中使用了Goban作為前端。
博弈程序:其他下棋程序。
偽智能:在AI研究界中有「弱人工智能」、「強人工智能」的說法,不過我所說的「偽智能」指的並非那個概念。我認同McCarthy關於AI的定義:「
人工智能就是要讓機器的行為看起來就像是人所表現出的智能行為一樣。」所以,所謂的偽智能就是指根本表現不出人的智能行為卻被廣泛的誤認為具備智能。這個詞我是從「偽春菜」裡借用過來的。
實驗步骤:
打開兩個GnuGo的前端,棋盤均設置為9路,其中一個执黑,另一個执白。
開始执白方的遊戲,讓電腦下子。
依樣畫葫蘆,在执黑的那邊下同樣的子。依此類推。
下10手後,對照兩邊的棋譜。
結果:
電腦前3手並不總是固定的。
但假如前4手下法正好一致的話,後面下出完全一致的局面的機率非常高。
棋局1棋局2有興趣的朋友可以參照我給的兩張譜自行實驗。你也將能輕鬆看到完全相同的棋局。
嘛。。。作為對比,你可以試試兩個人對弈,從第4手以後開始下。就算是9路的棋盤,也基本不可能出現完全一致的情況。所以可以認定,
GnuGo表現出來的是「偽智能」。
分析:
這個方法是受一個著名的AI設計概念所啟發。即:
如何用最簡單的方法,實現一個和人對弈總能保持至少50%勝率的AI程序?答案很簡單:做一個對戰程序,找兩個人同時和程序對弈,程序的功能僅僅是把一個人的下法完全複製到另一個人那邊。用這種方法,每次程序總能贏兩人中的一個,也就是勝率50%。
初聽起來也許顯得有些無賴,但實際上這卻是個很有啟發意義的概念。這個答案告訴我們兩點:
. 人類具備通過「圖靈實驗」的能力;
. 要想實現可以通過「圖靈實驗」的AI,最簡單的方法是直接引入現實生物的智能;
而我根據設計的這個反過來的實驗,則證明了一點:
實驗中的兩名對弈者都是徹頭徹尾的sb。即使它們棋下得再好(事實上我下不過它們。。。),它們也仍然改變不了自己是sb的事實。棋下得再爛的人都不可能下成它們那個樣子。
為什麼?
這是由我們的智能程序實現方法論決定的。作為決策程序來說,設計者希望AI程序總是選擇最佳策略──他們認為人也是這樣的。他們錯了。人──或者說,
幾乎所有的現實生物,從來就不會按照所謂的「最佳策略」行動。事實上,
幾乎所有的現實生物都是按照「次最佳策略」行動的。這取決於兩個因素:一、你永遠不可能對周圍的環境有完全的了解;二、
你永遠不希望其他的生物能預測到自己的下一步行動。這一點,已經為神經生物學的實驗所證實。
由於無法對面臨的問題做完整的建模,「最優解」就根本不可能作出。而更重要的是,在你面對一個具備「智慧」的對手時,選擇「最優解」將成為你的噩夢──那將意味著你的每一步行動都會被對手準確預測。所以,現實生物從來「不按常理出牌」,永遠會用各種方式迷惑對手而不會只採取某種「最佳策略」。為了生存,任何生物都必須學會妥協。
而無論是神經網絡還是模糊算法等等AI界的常用算法,在設計目標上就和現實生物完全不同。在幾乎所有的博弈程序中,設計者總是傾向於讓他們尋找「最優解」。
這些程序和人類戰鬥的唯一武器僅僅是搜索深度,而根本無法表現出真正的「智能」。因為假如AI的搜索深度被限制為和人類等同,人們總能輕鬆預知它們的下一步行動,從而
使「最優解」變成AI的噩夢。
這就是「偽智能」和「智能」的最大區別。
很杯具,許多AI的設計者無視McCarthy的定義,妄圖走捷徑──研究AI怎麼能不先研究人呢?大概是因為那樣太困難了吧。畢竟,以當今人們對於自身的了解,想要做出能夠真正模擬人類行為的AI無異於天方夜譚。不過,實用主義者往往有犯方向性錯誤的傾向,也許這也是無可奈何的吧。
最後說明一下,本文中所使用的驗證方法理論上可以檢驗所有的博弈類
AI是否具備進行「次最佳決策」的能力,可以作為「圖靈實驗」的一個補充。針對此方法,也可以從問題複雜度、求解空間等方面出發進行定量的正規化處理。這裡就先按下不表了。