第二章 老虎機問題
多臂老虎機問題
單臂老虎機在拉下游戲臂後,有一定的概率獲得獎勵。而多臂老虎機需要選擇到底拉哪個遊戲臂,每個臂的中獎概率是不一樣的。
多臂老虎機正好適合用來討論探索與利用的平衡問題。如果每次都採取貪婪算法,選擇獎勵概率的遊戲臂,則完全是在利用行爲的價值;如果選擇的是非已知最佳的遊戲臂,那就是在探索。一般來講,利用可以使得單次回報最大,而探索則從長期來看可能產生更好的長期回報。
本章會介紹一些平衡利用與探索的簡單方法
動作價值方法
在這裏,將採取動作的真實價值定義爲,時刻 的價值估計定義爲 ,而某動作的價值,是由採取該動作的回報平均值來計算的。比如在時刻 ,動作 已經執行了 次,產生的回報序列爲 ,則價值的估計值爲
如果該動作尚未產生,可以用某個默認值來取代,比如 。 當 趨於無窮時, 收斂至真實值 。
最簡單的動作準則就是選擇價值最大的動作 ,即 。在此基礎上做一個微小的改進,以一個極小的概率 來執行探索動作,這種方法稱爲 -貪婪 方法。這樣,當 趨於無窮時, 將收斂於 。
下圖是10臂老虎機在不同的 下的價值估計值迭代曲線,其回報概率爲正態分佈。
可以看到,適當地採取探索策略,長遠來看有更好的回報,儘管在開始,純貪婪策略的值略高。
在這種靜態環境當中,純貪婪策略也許能取得不錯的回報,但如果環境是動態的,價值隨時間變化,那效果就大打折扣了,而環境通常並非靜態。
softmax動作選擇
-貪婪 方法儘管有效也應用廣泛,但過於單一,加報更高的動作應當給予更高的概率加以選擇,softmax方法正是基於這種思想,動作 選中的概率與其估計價值成正相關關係:
這裏的 是一個正數,代表 熱力值,這個值越大,產生的概率越趨於平均化,如果該值趨近於零,則策略退化爲貪婪策略。
softmax方法儘管更爲精確,但 的值難於確定,需要一定睥領域知識和經驗,所以實踐中也經常採用 -貪婪 方法。
增量實現方法
實際計算中,不可能把每一步的回報都存儲下來,而增量計算只需要保留上一次的價值估計,步驟數 ,再將當次的回報 加入其中即可。
該公式,與後續的回報折扣可以聯繫起來。增量更新實現的計算過程可以抽象如下:
非靜態問題
令 來代替 ,則有
對於動態問題,太久遠的回報顯得不是那麼重要,因此 的取值顯得更爲靈活, 值的計算可以重寫爲:
左側是初始值及其衰減,右側是各次回報隨時間的遞減值,兩個權重的加和爲1。
用來表示在第步,採取動作的回報係數,當取時,上式等價於平均回報。事實上,只要滿足下列條件,就可以保證值的收斂性:
很顯然 滿足條件,但常數不行。
樂觀初始價值
之前的方法一般都假設初始價值爲0,事實上,價值的初始值,事實上,利用初始值帶來的偏差,可以較好的融入先驗知識,起到鼓勵探索的作用。比如,在10臂老虎機問題當中,將初始價值設定爲5,基於貪婪的策略會傾向於把未探索過的狀態都走一遍。如下圖所示:
由於在一開始就進行了積極的探索,效果比 -貪婪 方法可能更好,只是該方法只對靜態問題有效。
其他方法
一種有前景的思想,是引入評估的不確定度來進行探索-利用平衡,比如選擇老虎機的某個遊戲臂的價值,以95%置信度位於[9, 11]區間內。該思想指導下,誕生了一系列的算法,稱爲*Upper Confidence Bound (UCB)*方法。還有通過概率圖模型進行探索-利用平衡的策略,但可能因爲搜索空間過大而難以實現。