本系列文章的[2][3]我們介紹了非貝葉斯框架下bandit和更一般的RL情形下的一些演算法(貪心和UCB演算法);系列文章[4]我們介紹了貝葉斯框架下bandit情形下的一些演算法(貪心和Thompson Sampling演算法)。本篇文章我們則考察一下在貝葉斯框架下一般情形下的一些RL演算法。
本篇文章主要的參考文獻:
Russo D J, Van Roy B, Kazerouni A, et al. A tutorial on thompson sampling[J]. Foundations and Trends? in Machine Learning, 2018, 11(1): 1-96.
Osband I, Russo D, Wen Z, et al. Deep exploration via randomized value functions[J]. arXiv preprint arXiv:1703.07608, 2017.
1. 更一般的Thompson Sampling
本節我們拓展上次文章介紹的TS演算法到更一般的情形。這裡我們認為action space 可以是無限維的,然後這裡我們規定每個時刻選擇了一個action 之後,會根據一個條件概率分佈 生成一個狀態 ,然後得到reward . 我們假設 函數已知但 未知,也就是說演算法需要邊學習 邊儘可能得到最多的reward。
那麼如果我們的state space維數有限,給定一個 的估計, 我們reward的期望可以寫成
假設 的取值範圍有限,如果我們認為 是當前對 的belief(後驗分佈,posterior distribution),那麼這個後驗分佈可以根據Bayes rule如此更新:
Algorithm 1:
- for do
- //estimate model
-
- //select and apply action:
-
- Apply and observe
- //update distribution:
-
- end for
Algorithm 2:
- for do
- //sample model
-
- //select and apply action:
-
- Apply and observe
- //update distribution:
-
- end for
然後跟上次Bernoulli Bandit的例子非常類似的我們也給出貪心演算法和一般情形的TS演算法的偽代碼(見上)。注意,這兩個演算法的流程和之前一模一樣,只是我們這邊因為是應對更一般的情形,所以偽代碼看起來可能比起之前更加抽象一些。所以,我們這邊再用在線最短路問題(online shortest path)作為例子講解一下。
考慮一個有向圖 ,點集 邊集 ,和每條邊上的平均旅行時間(mean travel time) 方便起見,定義節點 為起點,節點 為終點。我們要在圖上找最短路,但事先不知道 我們每個epsiode的action集合 就是選擇一條從 節點 到節點 的路徑,得到的反饋便是從 的分佈中draw出來的sample, 因為要找最短路,所以reward就可以是
獨立travel time情形:考慮 的先驗分佈為彼此獨立的對數高斯分佈,也就是說 然後我們令 對於每條邊彼此獨立,並且 那麼我們就有 (所以一開始mean travel time的belief期望就等於 )那麼利用Bayes rule我們就有如下更新後驗分佈的簡單公式: