【強化學習】多臂賭博機問題(MAB)的UCB算法介紹


UCB算法

UCB在做EE(Exploit-Explore)的時候表現不錯,但是一個不關心組織的上下文無關(context free)bandit算法,它只管埋頭干活,根本不觀察一下面對的都是些什么樣的arm。

UCB算法要解決的問題是:

面對固定的K個item(廣告或推薦物品),我們沒有任何先驗知識,每一個item的回報情況完全不知道,每一次試驗要選擇其中一個,如何在這個選擇過程中最大化我們的回報?

UCB解決這個Multi-armed bandit問題的思路是:用置信區間。置信區間可以簡單地理解為不確定性的程度,區間越寬,越不確定,反之亦反之。

每個item的回報均值都有個置信區間,隨着試驗次數增加,置信區間會變窄(逐漸確定了到底回報豐厚還是可憐)。

每次選擇前,都根據已經試驗的結果重新估計每個item的均值及置信區間。

選擇置信區間上限最大的那個item。

“選擇置信區間上界最大的那個item”這句話反映了幾個意思:

  1. 如果item置信區間很寬(被選次數很少,還不確定),那么它會傾向於被多次選擇,這個是算法冒風險的部分;
  2. 如果item置信區間很窄(備選次數很多,比較確定其好壞了),那么均值大的傾向於被多次選擇,這個是算法保守穩妥的部分;
  3. UCB是一種樂觀的算法,選擇置信區間上界排序,如果時悲觀保守的做法,是選擇置信區間下界排序。

UCB1算法

這里我們介紹一個最常見的bandit策略--UCB1算法,該算法的精神被認為是樂觀地面對不確定性:我們首先猜測各臂可能給出的獎勵,然后選擇那個最高臂,如果實際的獎勵較少,我們會盡快地降低對該臂的猜測,反之,我們就盡量多選擇這個臂. 這里面的猜測,其實就是對各臂的獎勵建立了一個指數,通過動態調整這個指數,我們最終將確定那個期望獎勵最高的臂.

UCB1算法: 在前K輪,每臂各選擇一次, 在\(t=K,K+1...\)輪:

  1. 選擇指數\(I_i\)最大的臂,其中\(I_i=\bar{x}_i+\sqrt{2\frac{\log t}{n_i}}\),其中\(\bar{x}_i\)是均值,\(n_i\)是臂\(i\)當前累積被選擇的次數
  2. 記錄獲得的獎勵,並更新\(\bar{x}_i\)\(n_i\)

當UCB1算法被執行時,我們可以確定如下定理,其中\(\Delta_i=\mu^{*}-\mu_i\):

定理: UCB1累積遺憾的期望不超過

\[8\sum_{i:\mu_i\lt \mu^{*}}\frac{\log T}{\Delta_i}+(1+\pi^2/3)(\sum_{j=1}^K \Delta_j) \]

定理的證明我就不在這里列出了,具體可以參考Finite-time Analysis of the Multiarmed Bandit Problem.

我們發現UCB1算法的累積遺憾期望是\(O(\log T)\)的,這是不是就足夠了呢? 當然不是,如果最壞情況下的累積遺憾過高,該算法其實是沒有意義的.

UCB1最壞情況

定理: 最壞情況下的UCB1累積遺憾不超過\(O(\sqrt{KT\log T})\)

我們通過累積遺憾期望函數分析對其進行簡單的證明: 首先,我們對累積遺憾期望進行偏微分,得到

\[\frac{\partial R}{\partial \Delta_i}=\frac{8\log T}{\Delta_i^2}+1+\frac{\pi^2}{3} \]

讓它等於0,則有\(\Delta_i=\sqrt{\frac{8\log T}{1+\pi^2/3}}=O(\sqrt{\log T})\),但是這時是\(R\)的一個極小值點\(R=O(K\sqrt{\log T})\).同時,如果我們讓\(\Delta_i\)盡可能小的話,\(R\)將變得任意大,但是這時所有的獎勵都差不多,所以些時還是極小值. 如果我們讓\(\Delta_i\)等於1的話,我們還是得到\(R=O(K\sqrt{\log T})\)

其實,如果我們讓\(\Delta_i=\Delta\),這時,累積遺憾期望將會是\(\Delta T\),代入公式可得最壞情況下的累積遺憾為\(O(\sqrt{KT\log T})\)

論文:Finite-time Analysis of the Multiarmed Bandit Problem

各UCB算法的比較


Let [公式]be independent, identically distributed random variables, such that [公式] and [公式]. If [公式], then:

[公式]

有了先驗系數分布和釆樣個數就定下后驗系數分布,從這來看,另種方法說明為什么總樣本數無所謂。

因為我們有\(P(\beta)\) ,有\(P(x_i, i\in [1,n] | \beta), P( \beta | x)\)不就知道了么;

並且決定\(P( \beta | x)\)的interval 的是x(釆樣)長度而非總樣本長度


免責聲明!

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



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