共贏街亭(二):從FSM模型出發(fā)
1. 前言
在上期里,基于反事實思考(Counterfactual Thinking)而提出孔明練兵的替代方案:讓王平當(dāng)主將,并由馬謖擔(dān)任總參謀(副將)。并且透過AI的模擬演練,能讓孔明的<后悔變成預(yù)見>。于是,本文就來建立一個仿真演練模型,首先從系統(tǒng)的大環(huán)境出發(fā),也就是建立街亭的模型。在本范例中,將采取有限狀態(tài)機(finite-state machine, 簡稱:FSM)技術(shù)(圖1):

圖1
狀態(tài)機(State Machine)是一種行為模型。它是由有限數(shù)量的狀態(tài)(State)組成。它根據(jù)當(dāng)前狀態(tài)和輸入,而執(zhí)行狀態(tài)轉(zhuǎn)移(Transition),并且產(chǎn)生輸出。所以,狀態(tài)機是對系統(tǒng)行為進行建模,其通常應(yīng)用于對有限個狀態(tài)的系統(tǒng)。因此,常被稱為有限狀態(tài)機 (FSM)。狀態(tài)機(或稱有限狀態(tài)機)是對事件驅(qū)動型反應(yīng)系統(tǒng)的表示,當(dāng)控制狀態(tài)轉(zhuǎn)換的條件滿足時,系統(tǒng)會從一個狀態(tài)轉(zhuǎn)換到另一個狀態(tài)。大多數(shù)狀態(tài)機都用圖表表示,其中包括4個重要元素:
? 狀態(tài)(state):用于區(qū)分流程的不同步驟、任務(wù)或操作模式。
? 事件(event):會觸發(fā)狀態(tài)變化的條件。
? 動作(action):「事件發(fā)生后」要執(zhí)行的動作。
? 轉(zhuǎn)移(transition):在不同狀態(tài)之間轉(zhuǎn)換的方法。
在本范例中,這有限狀態(tài)機 (FSM)將與強化學(xué)習(xí) (RL)結(jié)合。由FSM表達行為結(jié)構(gòu),而 RL則用于優(yōu)化這些行為或做出更好的決策。這樣可以讓王平馬謖智能體兼具決策的結(jié)構(gòu)性和對未知環(huán)境的適應(yīng)性,來實現(xiàn)共迎街亭的美好目標(biāo)。
2. 建立<街亭FSM>模型
2.1 表達環(huán)境規(guī)律
依據(jù)使書記載,于公元228年蜀漢第一次北伐,參軍馬謖因違背諸葛亮「靠山近水」的部署、拒聽王平建議、舍水上山,接著被魏軍斷水圍困,導(dǎo)致缺水、軍心渙散,最后街亭失守。其中,<缺水>是關(guān)鍵性的因素,所以建立出如下的街亭FSM模型(圖2):

圖2
FSM里,<狀態(tài)>表達:系統(tǒng)現(xiàn)在處于什么局面。而<事件>表達:什么事情導(dǎo)致局面改變。 例如,<失去水源>屬于事件,使得原來正常生活的狀態(tài),轉(zhuǎn)變?yōu)槿彼疇顟B(tài);于是可知<正常>與<缺水>都屬于狀態(tài)。當(dāng)處于<缺水>狀態(tài)時,如果采取放自然演變的決策&動作(屬于事件),將有3種可能的狀態(tài)轉(zhuǎn)移:
1) 可能發(fā)生自然事件而恢復(fù)正常飲水,例如下大雨,而短暫轉(zhuǎn)移到<正常>狀態(tài)。
2) 可能因放任無為,自然演化而繼續(xù)缺水。
3) 可能因放任無為,而自然演化為缺水更加嚴重,只能撤離街亭(失街亭)。
這種可能性的FSM,通稱為:機率性狀態(tài)機(Probabilistic FSM,簡稱:PFSM)。它能夠模擬更真實、更不確定的事物和環(huán)境。在狀態(tài)轉(zhuǎn)移方面,每個(狀態(tài), 事件/動作)都會對應(yīng)一組可能的<下一狀態(tài)>及其<機率>,例如:
("缺水", "自然演化") ? [("正常", 0.1), ("缺水", 0.2), ("失街亭", 0.7)]
這些狀態(tài)轉(zhuǎn)移模擬了<缺水>而放任不管,而恢復(fù)正常的可能性很渺茫,而極可能導(dǎo)致徹離人員而失街亭。然而,這個模型只是真實環(huán)境(即街亭城市)的抽象性表示;所以依據(jù)不同視角,而設(shè)計出不一樣的街亭FSM圖。從這圖中,可以看出:基于供水視角的街亭大環(huán)境(世界)的變化規(guī)律。在強化學(xué)習(xí)領(lǐng)域,又俗稱為:世界規(guī)則。
2.2 增添外來事件
剛才的FSM表達了街亭的一般規(guī)律(世界規(guī)則),然而世界是往往是動態(tài)的,所以這FSM需要增添外來事件的干擾和影響其狀態(tài)的轉(zhuǎn)變。例如,敵軍入侵(事件),控制了水源,導(dǎo)致街亭進入<缺水>狀態(tài)。如果敵軍進一步施壓,局勢就從缺水危機升高到敵軍壓迫<戰(zhàn)況升高>狀態(tài);若接著軍心動一搖,就進入更危險的<軍心渙散>狀態(tài);一旦這個狀態(tài)持續(xù)(自然)演化,就會直接走向<失街亭>狀態(tài)了(圖3)。

圖3
從這FSM圖可以看出來,街亭的狀態(tài)演變,并不是一條注定失敗的單一路徑。如果在敵軍施壓的<戰(zhàn)況升高>狀態(tài)下,若其激發(fā)背水一戰(zhàn)的斗志,而擊退敵軍,就能恢復(fù)<正常>狀態(tài)。這是很關(guān)鍵的一步,因為它讓街亭FSM不再只是“悲劇敘事”的表達,而是成為可以被學(xué)習(xí)的動態(tài)系統(tǒng)。也就是說,局勢不是只會往壞處走,而是存在一些小機率的挽回可能。這正是可利用RL來訓(xùn)練智能體 ( Agent)的地方。
剛才提到了,這個模型只是真實環(huán)境(即街亭城市)的抽象性表示;所以依據(jù)不同視角,而設(shè)計出不一樣的街亭FSM圖。所以,這圖-3是基于馬謖的<舍水上山>策略視角而設(shè)計出來的街亭FSM。在與司馬懿決戰(zhàn)之前,也能基于孔明(即王平)的<要道扎寨>策略視角而設(shè)計出街亭FSM,來進行RL學(xué)習(xí),而訓(xùn)練出智能體,來提供給馬謖參考,就很有機會讓馬謖的后悔成為預(yù)見。
3. 復(fù)用<街亭FSM>架構(gòu):以紅綠燈(交通號志)為例
剛才的街亭 FSM范例展示出:在人類故事里的局勢,也可以被當(dāng)成系統(tǒng)狀態(tài),而且會在事件推動下演化。同樣地,我們也可以把
其架構(gòu)遷移復(fù)用到<紅綠燈FSM>模型,也展示出:交通號志系統(tǒng)會依照規(guī)則,在幾個明確狀態(tài)之間切換轉(zhuǎn)移。
3.1 表達環(huán)境規(guī)律
換言之,上剛才的范例中,街亭是目標(biāo)系統(tǒng),我們建立FSM來表達其基本運作規(guī)律(在RL里,俗稱:世界規(guī)則)。現(xiàn)在,把它對應(yīng)到交通到路中的紅綠燈(交通號志)系統(tǒng)。于是,建立出<紅綠燈FSM>模型(圖-4):

圖4
這個紅綠燈FSM表達了交通號志系統(tǒng)的世界規(guī)則,其實就是在說:目前狀態(tài) + 發(fā)生事件 = 下一個狀態(tài)。例如:
· OFF + TURN_ON -> GREEN
· GREEN + TIME_OUT -> YELLOW
· YELLOW + TIME_OUT -> RED
· (更多)
這就是交通號志平時世界的基本法則。它的意思不是:Agent想怎么做就怎么做。而是:這個世界本來就這樣運作。在RL訓(xùn)練Agent時,這些規(guī)則即是規(guī)范出:每個狀態(tài)下的合法事件。例如:
OFF 狀態(tài)只能接受 TURN_ON
RED / YELLOW / GREEN 才能接受 TIME_OUT 或 TURN_OFF
這表示 FSM 除了描述世界怎么轉(zhuǎn)移之外,更在描述:這個位置(狀態(tài))現(xiàn)在可以做什么,不可以做什么。所以,在Agent進行RL學(xué)習(xí)時,這FSM能提供給Agent:世界規(guī)則的「可行動邊界」。
3.2 增添突發(fā)(外來)事件
上圖-4的紅綠燈FSM,已經(jīng)含有世界規(guī)則了,接著就來添加異常(外來)事件。于在此基礎(chǔ)上,原本世界規(guī)則不變,額外加入1項突發(fā)事件:
n 緊急通行(EMERGENCY_PASS / EMERGENCY_CLEAR)
這樣可以表達出:現(xiàn)實世界不只有正常流程,還會遇到外部擾動。于是擴充的FSM(圖5):

圖5
在這異常世界不是想怎么處理就怎么處理。一旦進入EMERGENCY_GREEN (緊急綠燈)狀態(tài),合法的路不是隨便挑,而是只能先解除緊急狀態(tài)。所以圖-5的擴充FSM不是在增加混亂,而是在增加「異常時也有規(guī)則」。在訓(xùn)練Agent時,也讓它知道:即使加入了突發(fā)事件,平時世界仍然存在。這FSM表達了:進入突發(fā)模式有規(guī)則,離開突發(fā)模式也有規(guī)則。于是,讓Agent掌握正常世界還是照原本規(guī)則跑,只是現(xiàn)在多了面對異常的能力。
由于這FSM不是推翻平時規(guī)則,而是在平時規(guī)則外,再加上危機處理規(guī)則。所以,讓Agent學(xué)會了,不僅能讓系統(tǒng)能平時輪轉(zhuǎn),還會進入異常模式、處理危機、再回到正常世界。
4. 結(jié)語
這是本文提出的<孔明練兵模式>的起點:從FSM模型出發(fā)。首先,透過基本FSM先表達「平時世界」的基本規(guī)則。然后,在這個既有世界規(guī)則上,添加入突發(fā)事件或異常處理的規(guī)則。所以,在本文里先街亭山水先表達于基本FSM里;而司馬懿進攻事件,則表達于擴充的 FSM中。也就是說,環(huán)境本身的規(guī)則沒有消失,但當(dāng)外部擾動進入時,Agent指揮的系統(tǒng)必須有能力進入異常模式、處理危機,并在危機解除后回到正常運作。
此外,也讓Agent知道,當(dāng)外部擾動來臨時,原本的平時路徑可能會被打斷,因此新增了 EMERGENCY_PASS(緊急通行)規(guī)則,把系統(tǒng)帶入異常狀態(tài)。等到緊急事件解除后,再透過 EMERGENCY_CLEAR事件回到 YELLOW狀態(tài),重新返回到正常世界。其中,不同類型的異常事件,不只會進入不同狀態(tài),也會有不同的恢復(fù)路徑。簡而言之,持續(xù)擴充FSM的價值,并不是增加混亂,而是讓Agent能指揮系統(tǒng),即使面對異常,也仍然可活在一套有邊界、有秩序的規(guī)則之中。在下一期,將會把這FSM映像到知識圖(Knowledge Graph),以便匯入更多專家智慧,讓Agent學(xué)習(xí)到更多能力。


評論