2008年1月28日 星期一

2008/01/28

禮拜一中午去法學院聽了行為賽局理論(behavial game theory)的讀書會。是上次跟黃貞穎老師聊過天後她推薦我來的。報名不但免費,還提供便當吃。這兩次吃下來口味是一樣的,同一盒裡面有雞腿有烤鰻(還是鯛魚?),即使冷掉了還是不錯。不過那不是重點。

這禮拜講的主題是學習(learning)。當然學習是個很廣泛、抽象的概念,這裡它被定義為:在重複進行的多回合賽局裡面,前面已進行過的回合,如何影響後續回合中玩家的策略?

以兩個人重複玩猜拳遊戲這個簡單賽局來說,在兩個人都是完全理性的情況下,均衡應該是隨機出剪刀、石頭、布,機率各 1/3,這裡面沒有所謂的優勢策略。但在回合重複進行中,我們會有意無意的,透過觀察前面回合的情形,改變我們出拳的偏好。

兩種傳統上廣為人知的學習機制,一是所謂的增強(reinforcement)也就是獎勵—懲罰的機制。以猜拳來說,就是如果我前面出石頭贏得多,而出布贏得少,那麼假設有個虛擬人採取這種學習機制,他接下來就會多出石頭而少出布。

另一種是所謂的 Belief learning,從預期對方怎麼出拳,來決定我接下來該出什麼。如果有這樣一個模擬人,他計算的是對方先前回合裡出過多少比率的剪刀、石頭或布?如果對方出石頭的機會高,即使他先前出布的 reward 並不佳,他的判斷是:接下來還是出布比較有利。

兩種策略都顯而易懂,而且可以看得出來他們站在兩個不同的極端上。前者只考慮自己得到的 reward ,完全不管對方怎麼出;後者則是專注在對方接下來可能會怎麼出,完全不管先前自己這樣搞的效果到底好不好。

這兩種學習機制都可以用數學描述來建立 model。前者用的是加權平均;而後者的寫法類似貝氏定理:如果對方目前為止出剪刀、石頭、布的比率分別是 3/5, 1/5, 1/5,那麼新一回合對方又出了剪刀,三者的機率就會調整為 (3p+1)/(5p+1), p/(5p+1), p/(5p+1)。像這樣將每回合的結果納入。

當然衍伸起來可以更複雜,例如加權平均的權重怎麼設定?假設兩人猜拳已經猜了 300次,而我想預期接下來對手的表現,那麼對方在後面這 50 次的表現可能就比一開始的頭 10 次要來得有參考價值。

而且除了考慮機率外,遊戲的代價(贏了得到多少獎勵,相對於輸了要付出多少代價)如何設定也會影響期望值的計算跟策略的決定;而當可能的策略選項增多時,reinforcement 的增強效果也會有外溢的現象,也就是除了 exactly hit 的策略被增強之外,如果有相似的策略,理應也會有部分被加強的效果。

數學的設定在簡短的報告裡沒有仔細去討論—就算有我大概也聽不下去,這裡只想談一下那天聽完覺得這東西有趣在哪—不過基本上的模式是這樣的。重點是,後來有人搞了一個 Experience-weighted attraction(EWA),等於是前兩種機制的 hybrid 。把它們架構在同一個數學 model 底下。

這樣就妙了。一是他提供了介於前兩個極端中間的選項,當然也就變得更接近真實情況一些:

像在猜拳這樣的簡單遊戲裡,如果沒有其他太多奇奇怪怪的策略(例如:對方最近一次出什麼,我就跟著出什麼)。捕捉這兩種機制,就相當於模擬我們在猜拳的時候:一邊回顧前面的輸贏,一邊猜對方可能會出的種類。不但聽起來合理,而且也可能比較接近事實。同時透過前述的方法,在最近幾回合的權重上做調整。就跟我們腦容量處理不了一百次猜拳結果的情形是一樣的。

反過來把實驗者的實際出拳記錄套進模型裡面,也可以得到一個「理論上」他採用的策略模式。當然實驗者在意識上不見得真的是這樣想—應該說根本也沒有人可能在腦子裡瞬間跑數學式來猜拳—只能說客觀觀察起來,他「表現得」就像我們用一個電腦模擬人,透過這個 model來猜拳一樣。

EWA裡同時具有 reinforcement 的向度;也具有 belief learning 的向度,兩者的組成透過一組參數來表示。同時也透過這組參數,原本看不見摸不著的策略(或學習)變得可以捕捉了:例如我們選出其中三個比較重要的參數—其餘過多的參數利用 conditioning 的設定把它變為常數,或是直接濾掉一些變動極微的參數—作為座標,就可以在三度空間上 plot 出一點,用這點來表示該玩家的策略。

如果遊戲進行了 1000 回合,用第 1~100, 100~200, 200~300或其他間隔分別套進模型把點標上去,就可以視覺化的呈現出,隨著遊戲進行,玩家策略改變的軌跡。若同時記錄兩個玩家,也可以看出他們彼此間軌跡變動是怎麼樣。

讓一組人玩相同的遊戲,可以透過這些點 cluster 的情形,觀察不同人之間是否有特定幾個模式的決策偏好;也可以另外找方法 plot 出他們群體的共同決策點—雖然這又更抽象了。因為該用什麼機制決定集體決策本身就是個問題。各點座標平均(或向量?)是個很簡單的方法,但不管什麼方法都可以計算出一個答案,重點是這個答案該怎麼去詮釋呢?

難得我在中午吃飯時間聽報告沒有打瞌睡的。當時的第一個感想是:這東西好像很有用!雖然我一時還不是很知道它到底該怎麼用,或是可以用在哪..。 該說這是數學家的毛病嗎?先想了一個工具,再找看看可以用在哪..。

不過能用這樣的角度切入,去捕捉像學習這樣非常抽象的東西,還是讓我蠻印象深刻。可能是自己數學、program 這方面太孤陋寡聞的關係吧?