在討論這個問題之前,我們先來看一段溫馨感人又熱血的動畫
https://www.youtube.com/watch?feature=player_embedded&v=Q4gTV4r0zRs
現在回到討論「樹狀圖設計者 vs AlphaGO」這個問題
我們先來重新定義「樹狀圖設計者」的能力
假設是以「小說中,對樹狀圖設計者的描速,來判斷出的處理的能力」
那「樹狀圖設計者」絕對大勝
因為樹狀圖設計者能做到的許多事情
真實世界的電腦做不到
但如果是以「小說中對樹狀圖設計者的描述」
「實際上使用暴力法解決問題。」
這就是一個很大的設計疏失。
即使是量子電腦,只用窮舉法也會變成垃圾的
說不定下個五子棋還會輸無敵CD67,因為窮舉運算超時敗
(沒限縮棋步的話,五子棋的計算量跟圍棋一樣是 (19*19)! 的層級)
在思考前,我們得先在腦袋中清楚的想好
我們思考的規則,倒底是該使用「和馬的邏輯」或是使用「真實世界的邏輯」
看來和馬在想「樹狀圖設計者」的時候
想的是「一台只靠演算能力,就能解決世界上所有問題的電腦」
但現實中的狀況是
人類是靠演算法解決問題,而不是依賴電腦的計算能力
電腦科學上,遇到的最大的問題是
「有些問題,我們沒辦法想出問題的計算法」
「有些來源資料,我們無法取得、整理、化簡為可使用的輸入資料」
「有些問題,被證明無解。」
在沒辦法想出更好的解決方法前,只能依賴最笨的列舉法去計算
這種狀況下,才會對演算能力有很誇張的需求
像是破解現代的密碼之類的,那種只能靠窮舉法解決,才會希望量子電腦出現
所以以現實下去做考慮的話
「一台只靠演算能力,就能解決世界上所有問題的樹狀圖設計者」
是不存在的
像天氣問題,即使電腦有足夠的運算能力,能對地球上所有空氣分子做模擬
請問:「該怎麼獲得地球上所有的空氣分子的動態?」
沒有可靠的輸入資料,電腦的計算能力再強,算出來的也只是垃圾
這就是來源資料的問題
所以「樹狀圖設計者能模擬所有空氣分子的動態」要成立
地球上得先要有「偵測所有空氣分子動態」的技術
想一想這是多可怕的技術,都能偵測所有空氣分子的狀態了
要偵測什麼其他的東西都不會太困難的
現在回到圍棋問題上
圍棋對電腦來說很難的原因是
AI下棋,大多是採用窮舉法加上評價公式的方式
去推斷最佳棋步
舉例來講,就是寫程式時,先寫個判斷現在上棋盤的形式好壞的公式
接著就是用暴力的方式,走個幾回合,再套用評價公式去計算好壞
這樣就能預估走下一步時,局勢的變化
當然,也可以直接把棋局走到玩,然後看誰輸誰贏
只是一般不會這樣做,因為即使是象棋之類的
要把棋局接下來的變化數量走玩,都是很驚人的運算量
玩家會等到抓狂
所以一般寫AI的程式,都會想辦法限縮思考的棋步
像是,人類在思考象棋棋步,不會去想第一步走帥的步數
但是沒限縮AI棋步的話,AI會去算
同樣的方式對圍棋行不通
圍棋的合法、有意義的步數太多
評價公式也不好寫
問對弈者為什麼下某步,很有可能回答你「直覺啊」之類的
有時候得到比較具體的答案,也是
「左邊有厚勢,所以我可以在這邊打入。」
「這邊覺得可能被切斷,所以我補那邊,順便威脅一下白棋角上的地」
這種模糊的東西
圍棋不應該是用運算量解決的問題
人在下圍棋時,其實是把棋盤上的棋切分成一個一個區塊
識別出特徵,然後用特徵去尋找相似的區塊
這跟人類的大腦的運作很有關係
人在接受外界的資訊時,會省略很多不重要的細節,挑出有意義的特徵
然後用特徵去做識別,再去思考
現在AlphaGO在做的就是這種事情
他會用特徵去從下過的棋做比對
這個在展現演算法的意味大於展現硬體能力的意味
_
討論完這個問題之後
我們再回想一下一開始的動畫
硬體能力強,對運算速度很有幫助沒錯
假設有個計算要花一億年
如果硬體能力提昇一萬倍
那可以讓需要計算一億年的東西變成一萬年
節省了9999萬年
但演算法的影響力
是可能把需要計算一億年的東西,變成固定幾秒內就可算完的公式解