【RL系列】Multi-Armed Bandit筆記——UCB策略與Gradient策略


 本篇主要是為了記錄UCB策略與Gradient策略在解決Multi-Armed Bandit問題時的實現方法,涉及理論部分較少,所以請先閱讀Reinforcement Learning: An Introduction (Drfit) 的2.7,2.8的內容。為了更深入一點了解UCB策略,可以隨后閱讀下面這篇文章:

【RL系列】Multi-Armed Bandit筆記補充(二)—— UCB策略

 

UCB策略需要進行初始化工作,也就是說通常都會在進入訓練之前先將每個動作都測試一變,保證每個動作被選擇的次數都不為0且都會有一個初始的收益均值和置信上限,一般不會進行冷啟動(冷啟動的話,需要在開始時有一定的隨機動作,會降低動作選擇的效率)。我們可以設初始化函數UCBinitial,將其表現為Matlab:

function [Q UCBq] = UCBInitial(Q, Reward, UCBq)
% CurrentR: Current Reward
% CurrentA: Current Action
% RandK: K-Armed Bandit
% Q: Step-size Average Reward
% UCBq: Q + Upper Confidence Bound

RandK = length(Reward);
for n = 1:RandK
    CurrentA = n;
    CurrentR = normrnd(Reward(CurrentA), 1);

    Q(CurrentA) = (CurrentR - Q(CurrentA))*0.1 + Q(CurrentA);
    UCBq(CurrentA) = Q(CurrentA) + c*(2*log(n))^0.5;
end

  

在訓練中,UCB動作選擇策略和置信上限值的更新策略可以寫為:

% UCBq: Q + Upper Confidence Bound
% TotalCalls(Action): The Cumulative call times of Action
% c: Standard Deviation of reward in theorical analysis

[MAX CurrentA] = max(UCBq);
MAXq(CurrentA) = Q(CurrentA) + c*(2*log(n)/TotalCalls(CurrentA))^0.5;

  

注意公式里的c應為理論上收益的標准差,但因為收益分布是一個黑箱,所以這個參數只能從實際實驗中測試推斷出來。這里我們假設收益標准差為1,所以為了實驗效果,設c=1

接下來,我們就看一看UCB策略的測試效果吧。這里我們將其與epsilon-greedy策略進行對比(epsilon = 0.1),首先是Average Reward的測試結果:

UCB算法在前1000次的學習中可以得到比epsilon-greedy更高的均值收益評價。那么這是否就代表了UCB策略可以更高概率的選取最優動作?下面我們看Optimal Action Rate的測試結果:

可以發現學習次數較少時,UCB策略可以比epsilon-greedy策略更快的獲得較高概率的最優解,但最優動作選擇率始終維持在60%左右,是低於epsilon-greedy策略在1000次學習時接近90%的數值的。這也直接的反映出UCB並不適合求解最優。那為什么最優動作選擇率不高,但平均收益卻較高呢?UCB大概率選擇的優先動作通常是排名靠前的動作,也就是說動作選擇並不一定是最優,但大概率是最佳的3個或2個動作中的一個,所以UCB也可用作二元分類策略,將表現較好的(大概率選擇的動作)分為一類,表現較差的動作分為一類。

我們來看看UCB在分類中的表現,用80%分類准確度來進行評價。如果經過UCB策略學習后得到的估計收益均值中的前5位中有超過或等於4位與實際的收益均值相符的頻率,以此近似為分類的准確度。也就是說,如果有10個bandit,我們將其分為兩類,收益高的一類(前5個bandit)與收益低的一類(后5個bandit),80%分類准確度可以以此計算:估計的前5個bandit與實際的有超過4個相符的概率。用數學表述出來就是,如果有一個Reward集合R:

\mathbb{R} = \{ R_1, R_2, ...,R_9, R_{10} \}

 將其分為兩類,按數值大小排序,前五名為一類,歸為集合G,G是R的子集。通過學習估計出的G,稱為AG 。那么80%分類准確度可以表示為:

\mathbb{P}(Length(G\cap \bar{G})>3)

那么我們直接看結論吧:

UCB的80%分類准確度始終在90%上下,而epsilon-greedy卻只有50%左右。顯然,UCB在這方面做的要好於epsilon-greedy。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM