顯示具有 聖杯 標籤的文章。 顯示所有文章
顯示具有 聖杯 標籤的文章。 顯示所有文章

2016年3月17日 星期四

策略的哲學序

  朔雪寒註:2016年,Google DeepMind 研發的AlphaGo 已成功擊敗人九段高手,擊破了圍棋那道由「巨大」「可能性」所構築成的堡壘,那道原本必須倚賴人類的「智能、智慧」才能擊破的堡壘。這件值得紀念的「壯舉」是在科技巨擘Google相關硬體技術的支撐,以及軟體技術如蒙地卡羅演算法的支持下所完成的,Google也順利拿到人工智慧倒數第二個「聖杯」。這十年來,個人對於策略的思考並未中斷,對於策略資料的收集也並未中斷,中斷的是對這本書的補充以及對相關電腦技術的研發。當初假設自己有兩年的時間,能利用工作閒暇把這個「通用策略引擎」設計妥當。卻因為人生面臨了更多的事情,加上念研究所等事而擱置,最終差點被我遺忘。當年的這個假設受限於環境而無法「執行」,結果不到十年的時間,Google卻已用其他方式擊敗了圍棋界的頂尖高手。如果從預測的角度而言,估計這個世界很難找到有人比我預測圍棋會在十年內被「人工智慧」擊敗更早的預測了。(若有請告知,將補充。多謝。)雖然最終沒能在自己手上終結這場戰役,以及拿到「聖杯」,卻也樂於見到大企業如Google用了其他方式達到了這個目的。

   這十年來,我大概也終止了跟棋軟下棋的做法,主因也是因為多數的工作已經接近完成,剩下的只是「實作(執行)」。因此,雖然Google已經拿到了「聖杯」,且目前的局勢可能、有機會讓AlphaGo「不小心」成為2016年世界圍棋職業棋手的冠軍(果真如此Google或臉書再戰人類都將沒有任何巨大意義。),但這並不會打消我完成原本計畫的念頭。目前的想法大概就是從以前所沒有完成的部份接下去,至於什麼時候完工,個人並不清楚,因為還是得考量「險惡」的環境加諸於個人身上的迫害與影響的程度。

   不管是硬體、思想,外在世界的或自我探索的,這十年來都有了不少進展。個人對於古代策略、當代博奕論以及棋軟演算法、統計與概率、預測,都有了一些新的想法。我相信最終的成品,將會更令人滿意!

2016.03.17

  一九九三年,數學家利用電腦進行窮舉式計算證明:「五子棋」先手必勝;一九九七年,深藍以三和二勝一敗的成績打敗「國際象棋」棋王卡斯帕洛夫……二零零六年,由第十屆電腦「中國象棋」奧林匹亞大賽冠軍、季軍分別向特級大師于幼華、卜風波挑戰,都先手和局。國際象棋與中國象棋的複雜度相當,而後者稍多些,每個盤面大概有四十幾種變化,「日本將棋」的變化是中國象棋的三倍左右,「圍棋」的變化又是日本將棋的三倍左右,高達三百六十一種變化。依據摩爾定律,晶片上電晶體的數量每十八個月增加一倍,速度獲得相應提昇;從一九九七年至今已經過了快十年,個人電腦運算速度從233 MHz飆升到2.13 GHz,CPU也已經由單核心往多核心的運作方式前進,但植基於個人電腦的棋軟,如中國象棋軟件卻仍然無法打敗特級大師,棋力約在八段以上,日本將棋的棋力只到三段,圍棋的棋力更是令人難以忍受,只有八級左右。
  為什麼有些甚至已有千年以上歷史的棋類,人類能勝任如此愉快,而運算能力超越人類成萬上億倍的電腦卻遲遲無法打敗人類呢?因為目前的電腦象棋其實並不是在運用智慧下棋,而是在進行暴力搜索或者選擇性搜索出棋步,因此當變化增多時其所能計算出的步數也就相對減少。在這種情況下,電腦象棋極端依賴於硬體速度。而電腦每增加一倍速度,電腦象棋的搜索深度不過增多一層左右罷了。這在面對如圍棋這般千變萬化的遊戲時,便顯得捉襟見肘,難以為繼;即使深藍以自身的超強運算能力對抗棋王,也還是要一敗三和,不能全勝棋王。那麼為何沒有人將智慧賦予電腦,讓電腦採用「搜索」以外的方法下棋呢?因為「搜索是電腦的長處」、「模擬人類思考的方法設計起來極為困難」、「強AI的設計難有突破」!於是,人們開始從一加到一百,想要獲得那個解答,卻渾然忘了還有一個公式可以讓人們用更快速的方式得到答案。當習慣一旦養成,想要改弦易轍便難如登天,而這樣的習慣至今不過五十幾年。
  二零零三年,筆者將近十年來研究兵法的成果加以整理總結,並嘗試將三千年來中國兵法中屬於對外用兵的相關智慧統一在一個理論框架之下,於是有了《策略的哲學》。《策略的哲學》既是策略的集成,也是中國先哲們(主要指先秦至唐)處事智慧的集成之作,內文共分為三大部分,分別是:〈分析篇〉三章,〈理論篇〉三章,〈兵法篇〉之「國、地、城、軍」四卷。〈分析篇〉主要分析兵法、策略、競爭及思維之基本概念與規則,〈理論篇〉主要在探討制定策略的框架、模型及方法,而〈兵法篇〉之「國、地、城、軍」四卷則依據一定的規則與架構收錄古代兵家所制定出的種種策略。〈兵法篇〉之「國、地、城、軍」四卷的內容主要來自於先秦至唐的兵家及思想家們的相關論述,並依照簡單的架構加以鋪陳以便於使用者索引及記憶。
  這些提供智慧的先賢們自然主要以兵家為主,計有:呂尚(姜太公)、管仲、司馬穰苴、孫武(孫子)、吳起(吳子)、墨翟(墨子,又屬墨家)、孫臏、尉繚子、商鞅(商君,又屬法家)、黃石公、諸葛亮、李靖、李世民、陳規、揭暄等人。至於〈分析篇〉及〈理論篇〉的思維根源,也大多來自兵家的著述,也即所謂的兵書、兵法之中;但嚴格說來,是受到整個先秦時期諸子百家的綜合影響。本書的內容不僅幾乎包含兵家全部流派的論述,更包含先秦諸子的相關論述,可說是共冶於一爐,而也唯有如此才能得見策略思維之全豹。譬如書中既有崇尚道德的司馬穰苴、崇尚智謀的孫武、崇尚器械的墨翟、崇尚法制的吳起、更有崇尚勇力的商鞅,各人從各個方面對相關的主題進行各自的表述,從而使我們得以從各個面向與側重點對同一個問題進行更寬廣的思考,同時在面對世界紛繁複雜、種類各異的難題時,也能因此更輕鬆自如、游刃有餘。
  唐太宗李世民曾經說過:「夫以銅為鏡,可以正衣冠;以古為鏡,可以知興替;以人為鏡,可以明得失。朕常保此三鏡,以防己過。今魏徵殂逝,遂亡一鏡矣!」(〈貞觀政要.任賢〉)其中李世民的「以古為鏡」指得就是藉鑒歷史,而歷史之可資藉鑒者大抵不出「為人、處事」兩端。至於本書所提供的,卻是一面「思維之鏡」。構築這面「思維之鏡」的不只是歷史經驗的思維,更主要的是經驗昇華後的理論之思維,而經驗的適用範圍與適用性是遠不如理論的。所以本書的目的正在於提供讀者一套用以指導競爭行為的思維法則,以減低在競爭行為中取勝的偶然性成分。
  二零零六年,筆者終於找到機會重新修訂這本書,而這樣的機會則來自於筆者打算著手將書中的理論設計成電腦程式,以讓世人有機會領略一下古代兵法與現代科技結合下的威力會是如何的龐大。筆者認為若將這些理論設計成奕棋程式,那麼人類無論如何也不會是對手的,即便想和局也難,遑論取勝了。由於《策略的哲學》只是筆者「兵學現代化三部曲」中的首部曲,同時它所牽涉到的內涵主要是「對外用兵的智慧」而不包含《管理的哲學》所要談論的「對內管理的智慧」,因此它非常適合被設計成電腦奕棋程式;因為棋子本身不會有心理、生理等等問題,它們完全服從於奕者的指揮。因此,即以本書的理論便已足夠完成一具極具智慧的「策略引擎」,這個引擎將支援諸如「國際象棋、中國象棋、日本將棋、圍棋」四大棋種,引擎並將使用嶄新的理論,在對奕的領域徹底擊敗人類。幾千年前,黃帝曾因為懂得兵法而戰勝了擁有先進兵器的蚩尤,讓暴力在智慧面前喪失了尊嚴;二零零八年,智慧運用是不是又終將戰勝暴力搜索,我想這個程式將會告訴我們一個很明確的答案:一個不用再從一加到一百的答案。
 
朔雪寒 2006.05.06 書於台北 

2016年3月15日 星期二

人類與人工智慧的最後一戰

  AlphaGo VS 李世石的一戰,最終在4:1的比分下結束了比賽。李世石勉強守住了一局。雖然第五局,李世石的優勢延長了許多。同時玩出了局部「重複局面」,估計使用蒙地卡羅算法的AlphaGo面對這個對九段棋手稀鬆平常的局面(據Michael Redmond),深度超過了它的當前的搜索深度(在它目前的硬件條件下)。這無疑可以當成日後人類棋手再次(如果還有的話,可能性即使有,大概也是明年底以後的事情了吧!主因還得看是否有意義!)迎戰AlphaGo的「思想武器」。用局部的「深度重複局面」組合成一個完整的戰略,各個擊破AlphaGo。AlphaGo 的優勢也很清楚的表現在這幾盤,那最終落子可能性越來越少時,它的耗時也非常少,而這一點對人類非常不利。今天李世石下出了280手,AlphaGo居然也跟著玩下去,並最終取勝,就是一個很客觀的證據(即便理所當然)。
160315_0a9rhs
(取自:Board19 | 圍棋 News)
  這一次AlphaGo除了在右下角陷入劣勢之外,也下出了許多「蒙地卡羅演算法」的棋步。

今天的另一個話題是AlphaGo 取得了韓國棋院頒發的九段證書,又製造了一個第一,那就是AlphaGo 成為第一個非人類的九段「棋手」。
(取自韓國棋院推特)
這一戰雖然結束了,卻也引爆了很多話題。包括為什麼要挑李世石據說已經過了巔峰期的九段高手,而不挑年輕正盛才十八歲的2015職業棋手冠軍柯潔九段。其實之所以會有這個問題出現,完全是因為比賽出現了所有九段棋手都始料未及的局面,也即AlphaGo太強大了。因此,在第一局李世石落敗後這個無謂議題便被提出。如果李世石輕鬆完敗AlphaGo,這個問題被提出的機率就太小了!但挑柯潔,有代表性嗎?顯然不夠代表性。一個2015年才站上冠軍寶座,拿下三座世界賽冠軍獎杯,2016年年初積分冠軍的棋手,很難跟一個已經在棋壇上拿到十八個世界賽冠軍獎杯(亞軍就不計了),「近十年職業圍棋世界排名第一時間最久的棋王」、早年擁有「飛禽鳥不敗少年」之稱的李世石的地位、傳奇性、穩定性等相提並論。如果柯潔今年無法守住世界冠軍寶座,那麼他的狂言就更像是一個笑話。不說Google可能不會再舉辦這樣的比賽,即使舉辦了,如果要依照現在「捧」柯潔出來應戰的說法,也是挑「當年的(或前一年的)冠軍」。柯潔能「繼續」取得該年的(或該年前一年)冠軍嗎?如果不能,那絕對是一個笑話無疑了!柯潔雖然自稱自己在與李世石的十次戰役中「輾壓」了李世石,但這麼重大的世紀戰役,不挑像李世石這樣的「傳奇」,卻挑這個本想「終結傳奇」最終卻因為比分太近而改稱「向傳奇致敬」的年輕棋手,會發生什麼事?一由於柯潔是中國人,Google是美國企業,如果最終比分比這次的還遭,柯潔被5:0完敗,那麼估計類似以下並不陌生的說法便會出現:「為什麼要挑一個才剛十八歲的柯潔?而不挑一個有更豐富的實戰經驗的棋手(譬如石佛、李世石、圍棋皇帝)?」「這一切都是美帝的陰謀。」「這根本是在用圍棋對中國進行羞辱。」「根本是在摧殘幼苗。」諸如此類比這還難聽、更陰謀論的言論會被「引爆」,似乎也不難「推估」與「想像」。而所有這一切也可能因為應戰的是一個還尚未自己創造傳奇的棋手是一個中國人,於是在台灣的「輿論導向」下,被引導到另一個方向。任何因為柯潔被完敗而引來的笑話、嘲諷,只會更多,不會更少,而觀眾可能也會因此大減(至少就台灣而論)。
  從媒體一開始報導「李世石」的「世界棋王」頭銜,至今逐漸的變成了「南韓棋王(從全球變成區域)」、「圍棋天才(與冠軍無關)」,以致於到了一些仇韓的台灣人口中,又從圍棋界正常的「李九段」變成了「韓國狗」!從多數人期待李世石代表「人類」棋手扳回一城,到李世石真的扳回一城時,仇韓的台灣人便開始宣傳「放水、作弊」等等荒謬言論。少部分媒體顯然正刻意在引導著觀眾,至於目的是什麼,就不多說了!台灣民眾本來就容易被媒體操控,沒想到在這麼一個意義如此重大的世紀大戰中,仇恨的叫囂聲仍然不絕於耳!
  至於接下來Google還會再辦比賽嗎?我想很多人可能跟我一樣不太在意了!就跟當年更深的藍打敗卡司帕洛夫後的情景一樣,這也是人心的基本規律!
  柯潔用「輾壓」來形容他對李世石的戰役,但根據統計學,這樣的樣本數實在太少,代表性不足。如果一個棋手「輾壓」的不是「傳奇」,那麼他也不會成為「傳奇」,可是如果自己的傳奇必須用這種方式來創造,那也是很可悲的事情!柯潔能在十八歲拿到職業棋手的世界冠軍,當然有實力作為依據。可當今有太多人是連柯潔的實力都沒有,卻敢於藉由背後龐大的勢力,以為可以藉由背後龐大的勢力來「輾壓」「傳奇」,以成就自己的「傳奇」。同時在龐大勢力的支持下,掩蓋龐大勢力在背後支持的「真相」!從這點來看,人不輕狂枉少年的柯潔,可能還顯得可愛一點!
  李世石與AlphaGo的一戰,讓我覺得更像是一個「普通人類高手」對抗「超人類」或者簡稱「超人」的情況。只是這個「超人」是由龐大的硬件所支撐,而在現實的世界上,許多不是因為自己的實力而是被媒體「捧」出來的人,支撐他虛假面具的卻是其背後的龐大勢力。真正「輾壓」「傳奇」的是他背後的勢力而不是他個人,但他背後的勢力只要足夠強大,完全可以掩蓋所有的真相!而世人將只是或者依然是被愚弄與玩弄的玩物!
  這種「超人」與「人類」的對比,也讓我想起了十幾年前與「淺紅」這套象棋軟體的幾場「大戰」。由於當時一個人正在台北,為了從象棋對奕過程中提取「策略」,也為了建構抽象的「通用策略框架」,因此常常跟這套不算強的棋軟玩上幾盤。讓我映像深刻的是,為了理解一個類似「超人」對「人類」這樣的「智力差距」可能達到什麼「後果」,於是我跟淺紅的不同人工智慧等級進行了對奕。其中,在接近初級的情況下,我可以下出「全軍」而勝的局面,也就是一顆棋子都沒有損失,就吃掉了對方所有的棋子(不只是取勝,而是吃掉對方所有的棋子。可惜棋譜沒有保存好。);或者用大概五步到七步的走法取勝而結束棋局。這讓我深刻理解到,當一個人理解了對方的「行為模式」、「判斷準則」之後,他便可以把對方完全的操弄在手中!可惜,由於生活的不穩定與資源的匱乏,我一直未能完成這個「通用策略」演算法,以及設計出一個「通用的」「策略導向」的棋類軟體!
  從李世石這五局一路看下來,讓我比較印象深刻的除了實際的對戰局面以外,還有Michael Redmond九段在李世石還在思考階段時的一些推測、分析。從中我們不難發現,人類棋手可以瞬間掌握一些關鍵的步數,這是屬於所謂「策略導向」,這通常是局部性的思考,直到棋盤到了中盤時,才會更接近於全局性思考(在國際象棋、中國象棋上一開始就是全局思考,這是因為相對而言棋子的擺設都已經固定,而且棋子被吃以後也不能再回到棋盤上。)。而「勝率導向」,一般是由評價函數對整個盤面進行計算來進行的,也即電腦圍棋、象棋的主要設計方式。雖然,人類也會評價局面,但人類並不會實際上去計算這個子價值多少,而是類似這個子重不重要,是否損失後就會影響勝敗等判斷。因此,電腦是根據一個可能不夠客觀的「精確數值」來計算並最後經由比對數值大小而做出判斷,而人類主要是用更「模糊」的方式來直接做出判斷。因此,不妨思考,如果把「策略導向」的技術結合「勝率導向」技術會如何?因為策略導向本身可以以人類的方式進行思考,而勝率導向可以從這些思考方向進行深度計算,如此一來這樣的計算可以在同樣的時間下往更深的層次進行計算。果真這樣的軟體被設計出來了,相信圍棋即便只用單顆CPU都能完敗九段棋手。這才叫「輾壓」!
  在個人的思考裡,這樣的技術可能最終被用在全自動化的軍事設備上,譬如無人機戰鬥群、機器人小組、坦克群、直升機戰鬥群等,因為如果人類還想要用遠端遙控的方式來操縱無人機群進行戰鬥,那無疑就像是古代的千里御將一樣,或者用電腦架構來比擬,是類似因為RAM太小而不停的從硬碟提取資料一樣。顯然,這最後可能會造成災難,或者必然造成災難。而當人工智慧已經可以操控整個無人機戰鬥群,進行即時演算,與協力作戰時,我相信沒有一個國家還能取得任何的空中優勢!即便他們可能擁有性能「更」優的機種。
  這樣的技術,哪一個大國的國防部會不感興趣?唯一可以慶幸的是,個人已經暫時終止了這些研究計畫。如果當年我接受了營長的建議,向陸總部就加密技術進行提案,或許今天個人的人生會走向不一樣的景況。不過歷史無法假設!這種全自動化的技術,顯然便是未來的技術。人工智慧最終必然用到軍事領域,這是絕對無法避免的事情!也是一個最終會降臨的現實,就好像人類終將敗在電腦圍棋手下一樣。只是,這一次未來會用多快的速度前來呢?這一點就留給未來自己來揭露了!
  至於人工智慧接下來的發展重點,自然是「自然語言理解」!這才是終極的「聖杯」!