讓高本衲來解釋解釋什麼叫做「不喜治絲益棼,習慣一次到位、簡單省事」。
用「人工智慧」,對,就是電腦的 AI,Artificial Intelligence 來做比方。不開玩笑,這是我老本行,只差沒靠它吃飯。
我們在電視上都見過 IBM 的「深藍」怎樣擊敗世界第一西洋棋手,一個俄國人叫什麼什麼洛夫的對吧?「深藍」怎樣「懂」西洋棋,進而擊敗世界第一高手?
在此「懂」是較簡單的一回事,「擊敗」是一回事,「如何」又是另一回事。「懂」,在電腦邏輯裡只是一些程式事先設定的死規則,rules,沒什麼智慧。規則就是規則,無所謂繁簡,三兩下搞定。「擊敗」靠「下」,就是一著一著怎麼接著下。「如何」是什麼?如何「如何」?
我們人下棋怎麼下?你一著我一著,自己下了看對方如何反應,對方下了思考自己如何應對;不管該誰,我們 always 在想「現在局面怎樣」、「待會兒勢將如何」、「若果如此我怎樣應對最好」、「再來可能局面會是什麼」是吧?
電腦不是這樣下棋的。電腦下棋憑藉的是超大的記憶體和超強的運算力。記憶體大所以它絕不遺忘、miss,運算力強所以它沒有情緒、panic。
讓我用最容易了解的語言來描述所謂的電腦下棋:不管誰是先著,對手下「第一著」(first move)時電腦已經運算出「所有一切未來可能」的步數,並在其中挑選對自己最有利的下一著下下去,因此通常費時無多,幾百萬分之一秒足矣。
它怎麼知道未來「所有一切可能的步數」?Well 棋盤上可能的排列組合就這麼多,總之不是無限,電腦憑著超大的記憶體不難「擺佈」出所有一切可能的棋子狀態。排列組合超出電腦記憶體容量的話會造成 combinatorial(數學形容詞,類似 combinational) explosion(「綜合爆炸」,記憶體不堪負荷死翹翹)。在記憶體容量不爆炸的情況下電腦會按照它「已知」(對方每一著的後續可能它都有藍圖在案)的步數下下去。關鍵是:可能的步數那麼多,它如何選擇?電腦有程試預設的「法則」會將目前局面「態勢」一一運算、得出評比,然後挑選比分最高的步數下下去。通常這也極快,不到幾百萬分之一秒,所以電腦下棋看起來會好像它都「沒在想」—— 電腦確實沒在想,它早已知結局,目前只是在「等」(你下)、「看」(你下什麼)、「算」(下什麼好)、「選」(下哪一著)。
這步驟叫 heuristic search,是個通詞,代表電腦利用運算+法則獲致 next 行動方案的一種程序。
那麼,它的「法則」或 heuristic search 的「完美程度」就決定了電腦棋藝的「精湛程度」了對不對?是的,that's why 「法則」的訂定需要高強棋手的顧問諮商。研究生的 AI 程式倒不必,因爲教授看的是你懂不懂人工智慧,不是你的棋藝有多高強。
此外還有一點很重要:人工智慧需能「與時俱進」,否則智什麼慧?所以 AI 軟體需得俱備學習的功能。也就是說,它的「法則」會越來越多 —— 程式給適時添加的。而什麼樣的法則值得學習、添加、記錄、應用又是設計師必須謹慎斟酌的要件。不消說,這也得有高強棋手的 input。法則的添增也有可能造成 combinatorial explosion,所以電腦程式「經驗」和「知識」的需求間記憶體容量的使用須得詳細斟酌。
研究類如此種應用電腦運算能力「取代」人類智慧的學門叫「人工智慧」。人工智慧當然有可能強過「人類智慧」,畢竟萬事萬物不外推敲、想像、思索、琢磨、選擇、應對 —— 都是精算。人腦的「想」大率不出於此。
回過來說何謂「不喜治絲益棼,習慣一次到位、簡單省事」。就是不擅「兵來將擋,水來土掩」,偏向傾全力一次幹光,類如 AI heuristic search 的習性。好處?簡單省事,不囉唆。壞處?難度高,錯誤機率大。妙處?法理充分料事如神,運用得當所向無敵。
Now you all know my secret。
|