【強化學習】多臂賭博機

寫在前面

今天的博客主要是針對多臂賭博機中探索與利用問題的一些解決算法的講解。本文由強化學習討論班整理而來,感謝實驗室小夥伴chengcheng han同學,本文有些圖片來自他的PPT,應該還有些內容來自David Silver的公開課,在此先聲明一下。

多臂賭博機問題其實很早就有,那時候強化學習還沒有流行,強化學習發展到現在已經比較流行,大家發現強化學習中的探索與利用問題很早就出現在了多臂賭博機裏,所以在介紹強化學習的時候都會提到多臂賭博機的問題。

一、簡介

1、多臂賭博機的問題

多臂賭博機就是有很多臺帶着拉桿的老虎機,你每次可以選擇按下一個拉桿,得到相應的反饋。那麼,玩多臂賭博機一般有以下幾個原則:

  • 有很多個拉桿,玩家每次選擇其中一個拉桿。
  • 當拉下其中一個拉桿,賭博機會給出相應的反饋(reward),這些反饋信息與過去的操作是無關的。
  • 賭博機給出的反饋是符合一個分佈的,但是這個分佈我們不知道。
  • 玩賭博機的最大目的是最大化獲得的累積反饋。

多臂賭博機涉及的一個典型的問題便是探索與利用的問題,即:

  • 利用:想選擇當前信息中可以的到的最好的選擇(reward最大的選擇)
  • 探索:想選擇其他的信息,因爲可能局部最優並非全局最優。

關於探索與利用的例子可以參見:[強化學習] 概念、舉例、分類

2、多臂賭博機涉及的概念

本部分講的概念主要爲後續算法做準備。

(1) 一個多臂賭博機可以表示爲一個二元組<A,R><\mathcal{A}, \mathcal{R}>,其中A\mathcal{A}表示mm個actions的集合。Ra(r)=P[ra]\mathcal{R}^a(r) = \mathbb{P}[r|a]是一個未知的reward的分佈。
(2)在每一個step,agent選擇一個action,記爲atAa_t \in \mathcal{A}
(3)而後環境產生一個reward,記爲rtRatr_t \sim \mathcal{R}^{a_t}
(4)玩多臂賭博機的最終目標是最大化累積獎勵τ=1trτ\sum_{\tau=1}^tr_{\tau}

注意:本文提到的多臂賭博機中是沒有state這個概念的,當然其他地方的多臂賭博機可能是涉及state的,比如可以把每臺老虎機的拉桿次數當做state等。

則動作值定義爲行爲aa的平均reward:Q(a)=E[ra]Q(a) = \mathbb{E}[r|a],所以最優值VV^{*}定義爲:V=Q(a)=maxaAQ(a)V^{*} = Q(a^{*}) = \max_{a\in \mathcal{A}}Q(a)

下面我們引入一個regret(遺憾值)的概念,regret是最優值與實際某一個action ata_t期望值之間的差距:lt=E[VQ(at)]l_t = \mathbb{E}[V^{*} - Q(a_t)],則所有動作的總的regret爲:Lt=E[τ=1t(VQ(aτ))]L_t = \mathbb{E} [\sum_{ \tau = 1}^t (V^{*}- Q(a_\tau))],則最大化累積reward的值就等價於最小化total regret的值。下面我們進行公式的轉化:

Lt=E[τ=1tVQ(aτ)]=aAE[Nt(a)](VQ(a))=aAE[Nt(a)]Δa \begin{aligned} L_t &= \mathbb{E} [\sum_{ \tau = 1}^t V^{*}- Q(a_\tau)] \\ &=\sum_{a \in \mathcal{A}} \mathbb{E}[N_t(a)](V^{*} - Q(a)) \\ &= \sum_{a \in \mathcal{A}} \mathbb{E}[N_t(a)] \Delta_a \end{aligned}

上式中Nt(a)N_t(a)是選擇action aa的期望次數。gap Δa\Delta_a是選擇action aa和最優的action aa^{*}之間價值的差距,Δa=VQ(a)\Delta_a = V^{*} - Q(a)

一個好的算法要使得 total regret最小,但是其實因爲我們不知道VV^{*}的值,所以很難知道這個gap是多少!

所以我們考慮來估計Qt^(a)Q(a)\hat{Q_t}(a) \approx Q(a),這個估計一般有兩類方法,一個是基於頻率學派的估計,一個是基於貝葉斯學派的估計。

下面先來看頻率學派的看法,頻率方法通過估計若干次reward的均值:
Qt^(a)=1Nt(a)t=1TrtI(at=a) \hat{Q_t}(a) = \frac{1}{N_t(a)} \sum_{t=1}^T r_t \mathbb{I}(a_t = a)

二、貪婪算法(Greedy)

貪婪算法是選擇最大的值,即:

at=arg maxaAQt^(a) a_t^{*} = \argmax_{a \in \mathcal{A} } \hat{Q_t}(a)

貪婪算法每次選擇最優的值,但是這可能陷入局部最優解。

三、epsilon-貪婪算法(epsilon-Greedy)

(標題沒辦法打出來符號)

greedy算法充分利用了現有的信息,ε\varepsilon-greedy算法爲了平衡充分與利用的關係,即:(1ε)(1-\varepsilon)的概率選擇a=arg maxaAQt^(a)a=\argmax_{a \in \mathcal{A}} \hat{Q_t}(a),以ε\varepsilon的概率隨機選擇一個action。

因此,ltεAaAΔal_t \geq \frac{\varepsilon}{\mathcal{A}}\sum_{a \in \mathcal{A}} \Delta_a,即ε\varepsilon-greedy中total regret的值大於ε\varepsilon乘以平均的greedy算法中的total regret的值,這也比較好理解,因爲有ε\varepsilon的概率是隨機選擇的。

樂觀初始化: 樂觀初始化即初始化Q(a)Q(a)一個比較高的值,通過增量的蒙特卡洛估計來更新action value。我們以N(a)>0N(a) > 0爲起始值,則Qt^(at)=Q^t1+1Nt(at)(rtQ^t1)\hat{Q_t}(a_t) = \hat{Q}_{t-1} + \frac{1}{N_t(a_t)}(r_t - \hat{Q}_{t-1}),樂觀估計是鼓勵探索的一種方法。比如:最開始有3個action a1a_1a2a_2a3a_3Q(ai)=5Q(a_i) = 5,若第一次選擇了a2a_2,系統反饋給了一個reward爲2,則對Q(a2)Q(a_2)更新:Q(a2)=5+1(25)=2Q(a_2) =5 + 1 \cdot (2 - 5) = 2,下次選擇的時候可能會傾向於選擇其它的action。

儘管樂觀初始化鼓勵探索,但是其仍可能陷入局部最優解。

四、衰減的epsilon-貪婪算法(Delay epsilon-Greedy)

Delay ε\varepsilon-greedy選擇一個可以衰減的ε\varepsilon,如下公式所示:
c>0d=minaDeltaa>0Δiεt=min{1,cAd2t} \begin{aligned} c > 0 \\ d = \min_{a | Delta_a > 0} \Delta_i \\ \varepsilon_t = \min \{1, \frac{c |\mathcal{A}|}{d^2 t} \} \end{aligned}

觀察上面公式,dd表示選擇了是Δa\Delta_a最小的aa對應的Δ\Delta值,而dd越大,ε\varepsilon越小,隨機選擇的概率越小。這個也比較好理解,如果regret比較大的話,我們就少些探索,儘量選擇最好的值。

上圖是greedy、ε\varepsilon-greedy和decaying ε\varepsilon-greedy的對比,從圖中可以看出,decaying ε\varepsilon-greedy剛開始效果不是很好,但是到後期效果是最好的,即decaying ε\varepsilon-greedy的total regret已經是非線性的了(如果是線性的說明total regret一直線性增加,但是如果最後是收斂的,則說明如果我們進行無數多step,totol regret就可以穩定)。不過,decaying ε\varepsilon-greedy需要我們有一些先驗知識來判斷Δa\Delta_a的值,這個是比較困難的。

五、UCB算法(Upper Confidence Bounds)

觀察上圖,根據信息論中信息熵的概念,如果一個action的分佈接近於均勻分佈,則它的信息量是最多的(如圖中的藍色分佈,其方差較大);如果一個action的分佈比較陡峭,如圖中的綠色曲線,則隨便選擇一個action,其是最優action的可能性較大(即方差小,不確定性小)。因此,爲了保持最大的探索性,我們優先探索方差較大(信息熵最大)的action。這就是不確定行爲優先探索原則(Optimism in the Face of Uncertainty)。

下面我們引入UCB算法,UCB算法爲每一個action估計一個置信上限值U^t(a)\hat{U}_t(a),使得Q(a)Qt^(a)+Ut^(a)Q(a) \leq \hat{Q_t}(a) + \hat{U_t}(a)有較大的概率。

這個怎麼理解呢?
對於上述概率密度函數來說,橫座標表示Qt(a)Q_t(a)的值,縱座標表示其概率。爲保證不確定性行爲優先探索原則,只考慮均值的時候沒有考慮分佈的不確定性,我們希望在Qt^(a)\hat{Q_t}(a)(均值)的基礎上,加入置信區間,也就是考慮了不確定性探索。

U^t(a)\hat{U}_t(a)的值取決於Nt(a)N_t(a)的值,如果Nt(a)N_t(a)比較大,說明對於某個action學習次數比較多,則此action分佈的方差比較小,因此需要更小的Ut^(a)\hat{U_t}(a)。反之,如果Nt(a)N_t(a)比較小,說明對於某個action學習次數比較少,則此action分佈的方差比較大,因此需要更大的Ut^(a)\hat{U_t}(a)。於是通過這樣的方式,我們想要使得每一個action的分佈都像圖中綠色的曲線一樣,即具有較小的不確定性。我們根據如下公式選擇action:
at=arg maxaA[Q^t(a)+U^t(a)] a_t = \argmax_{a \in \mathcal{A}} [ \hat{Q}_t(a) + \hat{U}_t(a) ]

Hoeffding’s Inequality:
Let X1,...,XtX_1,..., X_t 是獨立同分布的隨機變量,取值範圍爲[0,1][0,1],令Xt=1ττ=1tXτ\overline{X}_t = \frac{1}{\tau} \sum_{\tau=1}^t X_{\tau}是隨機變量的均值,則P[E[X]>Xt+u]e2tu2\mathbb{P}[\mathbb{E}[X] > \overline{X}_t + u ] \leq e^{-2tu^2}。於是,將其應用到概率P[Q(a)>Q^t(a)+Ut(a)]\mathbb{P}[Q(a) > \hat{Q}_t(a) + U_t(a)]得:
P[Q(a)>Q^t(a)+Ut(a)]e2Nt(a)Ut(a)2 \mathbb{P}[Q(a) > \hat{Q}_t(a) + U_t(a)] \leq e^{-2N_t(a)U_t(a)^2}
從上面可以看到,Q^t(a)\hat{Q}_t(a)的定義爲Qt^(a)=1Nt(a)t=1TrtI(at=a)\hat{Q_t}(a) = \frac{1}{N_t(a)} \sum_{t=1}^T r_t \mathbb{I}(a_t = a)即爲Nt(a)N_t(a)個動作aa對應的reward的均值。

我們的目標是讓Q(a)Qt^(a)+Ut^(a)Q(a) \leq \hat{Q_t}(a) + \hat{U_t}(a)的概率儘可能大,即Q(a)>Qt^(a)+Ut^(a)Q(a) > \hat{Q_t}(a) + \hat{U_t}(a)的概率儘可能小,又因爲,此概率的最大值是e2Nt(a)Ut(a)2e^{-2N_t(a)U_t(a)^2},於是我們可以通過限制e2Nt(a)Ut(a)2e^{-2N_t(a)U_t(a)^2}的值達到限制P[Q(a)>Q^t(a)+Ut(a)]\mathbb{P}[Q(a) > \hat{Q}_t(a) + U_t(a)]的目的。假設令e2Nt(a)Ut(a)2=pe^{-2N_t(a)U_t(a)^2} = p,於是可以求得Ut(a)=logp2Nt(a)U_t(a) = \sqrt{\frac{-log p}{2N_t(a)}},令p=t4p = t^{-4},於是Ut(a)=2logtNt(a)U_t(a) = \sqrt{ \frac{2logt}{N_t(a)} },於是at=arg maxaA[Q(a)+2logtNt(a)]a_t = \argmax_{a \in \mathcal{A}} [Q(a) + \sqrt{\frac{2logt}{N_t(a)}}]

上圖是at=arg maxaA[Q(a)+clogtNt(a)]a_t = \argmax_{a \in \mathcal{A}} [Q(a) + c\sqrt{\frac{logt}{N_t(a)}}]對應的圖,和上面的式子對比,我們將2\sqrt{2}泛化爲了cc,從圖中可以看出,UCB的效果稍微比ε\varepsilon-greedy的效果好一些。

六、湯普森採樣(Thompson Sampling)

在上面頻率學派的算法中,Qt(a)^=1Nt(a)t=1TrtI(at=a)\hat{Q_t(a)}=\frac{1}{N_t(a)}\sum_{t=1}^Tr_t\mathbb{I}(a_t=a),當tt \rightarrow \infty時,Qt^(a)Q(a)\hat{Q_t}(a) \rightarrow Q(a)

下面看貝葉斯學派的觀點,貝葉斯學派通過探索reward的先驗知識p[R]p[\mathcal{R}],通過計算reward的先驗分佈p[RNt(a)]p[\mathcal{R} | N_t(a)],這種思想便是Thompson Sampling算法:

假設現有KK個action,平均rewards爲θ=(θ1,θ2,...,θK)\theta=(\theta_1,\theta_2,...,\theta_K),記reward=0的概率是θk\theta_k,即P[r1=1a1,θ]=θa1\mathbb{P}[r_1=1|a_1,\theta]=\theta_{a_1},則P[r1=0a1,θ]=1θa1\mathbb{P}[r_1=0|a_1,\theta]=1 - \theta_{a_1}。我們假設action的這些先驗股從一個Beta分佈,參數爲α=(α1,...,αK)\alpha=(\alpha_1, ..., \alpha_K)β=(β1,...,βK)\beta=(\beta_1, ..., \beta_K)這邊講一下爲什麼假設先驗分佈服從Beta分佈呢?

(1)Beta分佈是Bernoulli分佈的共軛先驗,即在先驗分佈爲Beta分佈而似然函數爲Bernoulli分佈時,後驗概率分佈仍然是Beta分佈,這就說明如果我們假設先驗分佈是Beta分佈,在沒采取一個action得到reward之後,我們可以直接知道後驗分佈也是Beta分佈,它和先驗分佈只有參數不同。除此之外,Dirilet分佈是多項分佈的共軛先驗,高斯分佈和它本身是共軛分佈。
(2)Beta分佈有一個很直觀的性質。如下圖所示(圖片來源),當Beta的參數α=β\alpha=\beta時,概率分佈圖像關於p=0.5p=0.5對稱,如圖中的Beta(20, 20)所示;當α>β\alpha > \beta時,圖像偏右;當α<β\alpha < \beta時,圖形偏左,圖圖中的Beta(10, 30)所示。

因此我們假設reward服從Bernoulli分佈,即reward=0或者reward=1;對於每一個action,選擇的概率是隨機的;後驗分佈是一個Beta分佈Beta(αa,βa)Beta(\alpha_a, \beta_a),初始值爲αa=1,βa=1\alpha_a=1, \beta_a=1

當採取一個action,已知一個reward之後,我們便可以更新參數:若Rt=1R_t = 1,則αaαa+1\alpha_a \leftarrow \alpha_a + 1;若Rt=0R_t = 0,則βaβa+1\beta_a \leftarrow \beta_a + 1 【注意:這個公式通過是可以推導的,這個就是先驗和後驗之間參數的變化,具體公式參見:beta分佈及共軛Bernoulli分佈-先驗、後驗、預測分佈

如上圖所示:第一個圖爲初始分佈;第二個圖:產生一個爲+1的reward,於是α+1\alpha+1,所以圖形稍微往右偏;第三個圖:產生一個+1的reward,於是α+1\alpha+1,所以圖形繼續往右偏;第四個圖:產生一個0的reward,於是β+1\beta+1,所以圖形稍微往左偏;第五個圖:產生一個0的reward,於是β+1\beta+1,所以圖形繼續往左偏。

如上面算法,左邊是reward服從Bernoulli分佈的Thompson採樣過程,右圖是泛化的Thompson採樣過程。

上圖是貪婪算法和Thompson採樣的對比,對於貪婪算法,θ^k\hat{\theta}_kRt=1R_t=1的佔比(貪婪算法的更新公式爲Qt^(a)=1Nt(a)t=1TrtI(at=a)\hat{Q_t}(a) = \frac{1}{N_t(a)} \sum_{t=1}^T r_t \mathbb{I}(a_t = a));對於Thompson採樣來說,θ^k\hat{\theta}_k是從Beta分佈得來的。

上圖是幾個算法的對比圖,可以看到,Thompson採樣的效果還是蠻好的。

七、梯度Bandit算法(Gradient Bandit Algorithm)

我們假設每個action都有一個偏好Ht(a)H_t(a)Ht(a)H_t(a)的值越大, 則越有可能選擇此行動。我們使用一個softmax的分佈來表示這個概率決策,在初始的時候,我們令所有action的Ht(a)=0H_t(a)=0

PrAt=aeHt(a)b=1keHt(b)πt(a) Pr{A_t = a} \doteq \frac{e^{H_t(a)}}{\sum_{b=1}^ke^{H_t(b)}} \doteq \pi_t(a)

在每一步選擇action AtA_t和接收reward RtR_t之後,則action的偏好可以更新爲 【本公式的具體推導請參見sutton的RL書】

Ht+1(At)Ht(At)+α(RtRt)(1πt(At)),andHt+1(a)Ht(a)α(RtRt)πt(a),for all aAt \begin{aligned} H_{t+1}(A_t) \doteq H_t(A_t) + \alpha(R_t - \overline{R}_t) (1 - \pi_t(A_t)), and \\ H_{t+1}(a) \doteq H_t(a) - \alpha(R_t - \overline{R}_t)\pi_t(a), for \ all \ a \neq A_t \end{aligned}

α>0\alpha > 0是一個step-size的參數,RtR\overline{R}_t \in \mathcal{R}是所有rewards的平均值。

如上圖所示,可以看到,with baseline的梯度Bandit算法和ε=0.1\varepsilon=0.1ε\varepsilon-greedy算法的效果差不多。

八、整體比較

如上圖所示(圖片來自sutton的書),我們可以看到UCB的效果更好一些,但是注意,這也是調參的結果,對於其他的算法,如果進行更多的調參,可能也會達到還不錯的效果。

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