講一下兩日棋迷對於這所謂低階失誤的看法。
李喆講出一些演算法的正確觀念,但有些地方他沒考慮到。
※ 引述《tlm (Netherlands)》之銘言:
: 【四、AlphaGo 的“失誤”】
: 這盤棋AlphaGo有沒有失誤?
: 令人欣慰,從人的眼光來看,我們可以找到AlphaGo的明顯失誤。這種失誤不是指那種基
: 於人類經驗而認為的失誤(經驗有可能會騙人),而是可以通過邏輯分析來確認的失誤。
: 1 )“失誤”一:
: 白136手吃。對於職業棋手而言很容易判斷,應該吃在一路,比實戰便宜大約1目。
: 2 )“失誤”二:
: 白142手擋,對於職業棋手而言,這也是一個很容易確認的明顯虧損。
: 白棋正確的下法是1位跳,這樣將來留下了5、7、9吃兩子救回三子的下法,從目數上分析
: 明顯優於實戰(大約1-2目)。即使白棋不在5位扳,走8位先手粘掉也優於實戰一點點。
: 這兩處“失誤”都是在局部,沒有任何與外界的關聯性,屬於封閉式的失誤,其虧損可以
: 用邏輯推理的方式證明。相較於AI展示出來的水平,似乎這兩個失誤是“不應該”的。
: 基於此,又有棋手表示:“這都看不到,AI不過如此啊”。
: 前面“惡手”裡講到的左下角白棋的問題,也有人看做是第三個失誤。但那個失誤的性質
: 與這兩個不同,我們對那個失誤的認定在很大程度上還是基於經驗的,雖然也包含了邏輯
: 推理,但並不完全。在我看來,按照笛卡爾的理論,對這那失誤的認定是可懷疑的。
: 但這兩個失誤卻不可懷疑。既然如此,我為什麼要在標題裡給“失誤”打引號呢?
: 這引出了一個非常有趣的話題:在棋盤上,失誤的定義是什麼?
: 3 )不同的“失誤”定義
: 對於我們棋手而言,什麼是棋盤上的失誤?假如我們把基於經驗認定的失誤都排除在外,
: 只留下基於邏輯推理認定的失誤,那麼失誤意味著:A在邏輯上優於B,而我選擇了B。
: 在這個意義上,只要我們找到了“可確認的更優下法”,就認為我們出現了失誤。
: 但是,對於AI而言,失誤是否意味著相同的事情?我們怎麼理解AI出現了在我們看來低於
: 其水準的失誤?
: 這就涉及到AI的算法問題。假如AI有一天窮盡了圍棋,那麼只要它有一步不踏在最優解集
: 合裡,就是失誤。但是,現在的AI還遠無法窮盡圍棋。
: AlphaGo的算法運用了神經網路加蒙地卡羅,蒙地卡羅演算法的一個特點是:不求最優。
: 蒙地卡羅演算法給出的是搜索之後的勝率評估,然後AI會根據這個勝率來選擇落子點。也
: 就是說,AlphaGo本來就不追求最強最優的下法,它只是追求在它看來勝率最高的下法。
: 那麼,回到前面那兩個“失誤”,之所以打上引號,是因為在AlphaGo看來,或許這根本
: 不是失誤!
: 雖然在我們人類看來,邏輯上明顯A優於B,但AI在那時認為兩者的勝率相似,從獲勝的角
: 度來說,兩者沒有區別!甚至A之後的犯錯機率高於B,從而導致它認為B的勝率高於A!
: 如果兩條路同樣能通往勝利,在AI的意義上,你還能說它是失誤嗎?
: 或許能!
: 但是前提條件是人類利用這種“失誤”擊敗了它!否則,在AI的意義上我們無法指責那是
: 它的失誤。
蒙地卡羅演算法並不是不求最優,只求勝率最高。精準一點的講法是,它根本不知
什麼是最優,它是從它的有限模擬中,將勝率最高的,當做是最優的。
因為這個原因,演算法在大部份的情況下,它並不能確定它下的是不是最優的。那
為什麼會在好像困難的大局下出好棋,但在局部的地方,出現低階失誤?
老實說,我認為根本完全不是失誤。二日棋迷棋力不夠,請有實力的人看一下我猜
的對不對。在局末,優勢確定下, AI 是可以選擇,略微吃虧,但較有把握的方法
。也就是說,可能到最後, AI 認為剩下的地方,這兩處是它相對沒有把握的,但
這兩處輸個三目,它確定還領先,那它當然願意選擇這樣做。人類是經過一些邏輯
判斷,確定這裡怎麼下最好。對 AI 來說,它的模擬可能也是跟它說,這樣下最好
。但它大概有另一個訊息,若照實際的下法,雖然吃虧,卻有把握不輸太多。相對
的那些最優下法,它怕其實是自己沒模擬到。
所以,請厲害的棋手看一下,這兩處是否是在收官時,相對複雜的地方?而 AI 下
的地方,是不是後續變化相對單純的地方?如果是的話,那 AI 根本沒有失誤,只
是用另一種方式來確保勝利。如果局面落後, AI 依然下出這種非最佳解,我們才
比較有把握說這是低階失誤。