強化學習導論筆記——第二章 多臂老虎機問題

第二章 老虎機問題

多臂老虎機問題

單臂老虎機在拉下游戲臂後,有一定的概率獲得獎勵。而多臂老虎機需要選擇到底拉哪個遊戲臂,每個臂的中獎概率是不一樣的。

多臂老虎機正好適合用來討論探索與利用的平衡問題。如果每次都採取貪婪算法,選擇獎勵概率的遊戲臂,則完全是在利用行爲的價值;如果選擇的是非已知最佳的遊戲臂,那就是在探索。一般來講,利用可以使得單次回報最大,而探索則從長期來看可能產生更好的長期回報。

本章會介紹一些平衡利用與探索的簡單方法

動作價值方法

在這裏,將採取動作aa的真實價值定義爲q(a)q_*(a),時刻 tt 的價值估計定義爲 Qt(a)Q_t(a) ,而某動作的價值,是由採取該動作的回報平均值來計算的。比如在時刻 tt ,動作 aa 已經執行了 KaK_a 次,產生的回報序列爲 R1,R2,...,RKaR_1, R_2, ..., R_{K_a},則價值的估計值爲

Qt(a)=R1+R2+...+RKaKa Q_t(a) = \frac{R_1 + R_2 + ... + R_{K_a}}{K_a}

如果該動作尚未產生,可以用某個默認值來取代,比如 00。 當 KaK_a 趨於無窮時,Qt(a)Q_t(a) 收斂至真實值 q(a)q_*(a)

最簡單的動作準則就是選擇價值最大的動作 AtA_t^*,即 Qt(At)=maxaQt(a)Q_t(A_t^*) = max_a Q_t(a)。在此基礎上做一個微小的改進,以一個極小的概率 ε\varepsilon 來執行探索動作,這種方法稱爲 ε\varepsilon-貪婪 方法。這樣,當 KaK_a 趨於無窮時, Qt(a)Q_t(a) 將收斂於 q(a)q_*(a)

下圖是10臂老虎機在不同的 ε\varepsilon 下的價值估計值迭代曲線,其回報概率爲正態分佈。

在這裏插入圖片描述

可以看到,適當地採取探索策略,長遠來看有更好的回報,儘管在開始,純貪婪策略的值略高。

在這種靜態環境當中,純貪婪策略也許能取得不錯的回報,但如果環境是動態的,價值隨時間變化,那效果就大打折扣了,而環境通常並非靜態。

softmax動作選擇

ε\varepsilon-貪婪 方法儘管有效也應用廣泛,但過於單一,加報更高的動作應當給予更高的概率加以選擇,softmax方法正是基於這種思想,動作 aa選中的概率與其估計價值成正相關關係:

eQt(a)/τi=1neQt(i)/τ \frac{e^{Q_t(a)/\tau}}{\sum_{i=1}^{n}e^{Q_t(i)/\tau}}

這裏的 τ\tau 是一個正數,代表 熱力值,這個值越大,產生的概率越趨於平均化,如果該值趨近於零,則策略退化爲貪婪策略。

softmax方法儘管更爲精確,但 τ\tau 的值難於確定,需要一定睥領域知識和經驗,所以實踐中也經常採用 ε\varepsilon-貪婪 方法。

增量實現方法

實際計算中,不可能把每一步的回報都存儲下來,而增量計算只需要保留上一次的價值估計,步驟數 kk ,再將當次的回報 RR 加入其中即可。

Qk+1=1ki=1kRi=Qk+1k[RkQk] Q_{k+1} = \frac{1}{k} \sum_{i=1}^k R_i \\ = Q_k + \frac{1}{k} [R_k - Q_k]

該公式,與後續的回報折扣可以聯繫起來。增量更新實現的計算過程可以抽象如下:

NewEstimateOldEstimate+StepSize[TargetOldEstimate] NewEstimate \leftarrow OldEstimate + StepSize [Target - OldEstimate]

非靜態問題

α\alpha 來代替 1kk\frac{1}{k}k,則有

Qk+1=Qk+α[RkQk] Q_{k+1} = Q_k + \alpha [R_k - Q_k]

對於動態問題,太久遠的回報顯得不是那麼重要,因此 α\alpha 的取值顯得更爲靈活,QQ 值的計算可以重寫爲:

Qk+1=(1α)kQ1+i=1kα(1α)kiRi Q_{k+1} = (1-\alpha)^k Q_1 + \sum_{i=1}^k \alpha(1-\alpha)^{k-i}R_i

左側是初始值及其衰減,右側是各次回報隨時間的遞減值,兩個權重的加和爲1。

αk(a)\alpha_k(a)來表示在第kk步,採取動作aa的回報係數,當αk(a)\alpha_k(a)1k\frac{1}{k}時,上式等價於平均回報。事實上,αk(a)\alpha_k(a)只要滿足下列條件,就可以保證QQ值的收斂性:

k=1αk(a)=k=1αk2(a)< \sum_{k=1}^{\infty} \alpha _k(a) = \infty \wedge \sum_{k=1}^\infty \alpha _k^2(a) < \infty

很顯然 αk(a)=1k\alpha_k(a)=\frac{1}{k}滿足條件,但常數不行。

樂觀初始價值

之前的方法一般都假設初始價值爲0,事實上,價值的初始值,事實上,利用初始值帶來的偏差,可以較好的融入先驗知識,起到鼓勵探索的作用。比如,在10臂老虎機問題當中,將初始價值設定爲5,基於貪婪的策略會傾向於把未探索過的狀態都走一遍。如下圖所示:

在這裏插入圖片描述

由於在一開始就進行了積極的探索,效果比 ε\varepsilon-貪婪 方法可能更好,只是該方法只對靜態問題有效。

其他方法

一種有前景的思想,是引入評估的不確定度來進行探索-利用平衡,比如選擇老虎機的某個遊戲臂的價值,以95%置信度位於[9, 11]區間內。該思想指導下,誕生了一系列的算法,稱爲*Upper Confidence Bound (UCB)*方法。還有通過概率圖模型進行探索-利用平衡的策略,但可能因爲搜索空間過大而難以實現。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章