2021 重啓強化學習(3) 多搖臂老虎機

如果想觀看相關視頻可以在西瓜視頻(賬號zidea)或者嗶哩嗶哩(賬號zidea2015)找到我發佈視頻解說,注意頭像和簡書使用頭像一致。

多搖臂老虎機

在強化學習中多搖臂老虎機相對比較簡單,所以我們就從這個多搖臂老虎機說起,看如何將解決多搖臂老虎機的方法應用到推薦系統中。一個賭徒,要去搖老虎機,走進賭場一看,一排老虎機,外表一模一樣,但是每個老虎機吐錢的概率可不一樣,他不知道每個老虎機吐錢的概率分佈是什麼,那麼每次該選擇哪個老虎機可以做到最大化收益呢?這就是多臂老虎機問題 ( Multi-armed bandit problem, K-armed bandit problem, MAB )。

接下來我們數學的語言簡單描述一些搖臂老虎機問題,以及如何用強化學習方法來解決這個問題。多搖臂老虎機是一個單一狀態的蒙特卡洛規劃,是一種序列決策的問題,這種問題是在利用(exploitation)和探索(exploration)之間保持平衡。

在多搖臂老虎機是簡單強化學習問題

  • 無需考慮狀態
  • 沒有延時獎勵問題,不會考慮當前狀態對以後發生事情有任何影響
  • 所以就只需要學習 State-Action Value 狀態行動價值函數

在搖臂老虎機中狀態、動作和獎勵

  • 動作: 搖哪個臂,用 A_t 表示第 t 輪的行爲
    Action = (0,1,0,0)
  • 獎勵: 每次搖臂獲得的獎金 R_t 表示 t 時刻獲取的獎勵
    Reward = (0,1)
  • 狀態行動價值函數(State-Action Value)
    Q^{*}(a) = \mathbb{E}[R_t|A_t=a]

假設搖臂 T 次,那麼按照什麼策略搖臂,才能使期望累積獎勵最大,當Q^{*}(a) 已知時,每次都選擇 Q^{*}(a) 最大的 a (貪心策略)

接下來介紹幾種策略來解決搖臂老虎機問題

貪心策略

  • 一般情況下,Q^{*}(a) 對於玩家而言是未知的或具有不確定性。
  • 在玩家在第 t 輪時只能依賴於當時對 Q^{*}(a) 估計值 Q_t(a) 進行選擇
  • 此時,貪心策略在第 t 輪選擇 Q_t(a) 最大的 a

利用和探索

利用(Exploitation)

所謂利用就是在保證過去的決策中得到最佳回報,按照貪心策略進行選擇的話,也就是選擇估計的 Q_t(a) 最大的行爲 a,這樣做雖然最大化即時獎勵,但是可能由於 Q_t(a) 只是對 q(a) 的估計,估計的不確定性導致按照貪心策略選擇行爲不一定 q^*(a) 最大的行爲

探索(Exploration)

所謂探索就是寄希望在未來得到跟大的回報,選擇貪心策略之外的行爲(non-greedy actions) 可能短期獎勵會比較低,但是長期獎勵比較高,通過探索可以找到獎勵更大的行爲,供後續選擇。

貪心策略和 \epsilon 貪心策略

貪心策略形式化地表示
A_t = \argmax_{a} Q_t(a)

\epsilon 貪心策略
  • 以概率 1 - \epsilon 按照貪心策略進行行爲選擇
  • 以概率 \epsilon 在所有行爲中隨機選擇一個
  • \epsilon 的取值取決於 q^*(a) 的方差,方差越大 \epsilon 取值應該越大

根據歷史觀測樣本的平均值對 q^*(a) 進行估計

Q_t(a) = \frac{\sum_{i=1}^{t-1} R_i \mathbb{I}_{A_i=\alpha}}{\sum_{i=1}^{t-1} \mathbb{I}_{A_i=\alpha}}

  • 約定: 當分母等於 0 時,Q_t(a) = 0
  • 當分母趨於無窮大時,Q_t(a) 收斂於 q^*(a)

行爲估值的增量式

Q_n = \frac{R_1 + R_2 + \cdots + R_{n-1}}{n-1}

  • 增量式實現
    \begin{aligned} Q_{n+1} = \frac{1}{n} \sum_{i=1}^n R_i\\ = \frac{1}{n} \left( R_n + \sum_{i=1}^{n-1} R_i \right)\\ = \frac{1}{n} \left( R_n + (n-1) \frac{1}{n-1} \sum_{i=1}^{n-1} R_i \right)\\ \frac{1}{n} \left( R_n + (n-1) Q_n \right)\\ \frac{1}{n} \left( R_n + nQ_n - Q_n \right)\\ Q_n + \frac{1}{n}\left[ R_n - Q_n \right] \end{aligned}

這一輪收益以及之前的均值,好處是無需每次求和。過去均值以及當前收益就可以計算出當前均值。而且可以看成更新就是將當前值更新到過去的值來實現更新。

Q_{n+1} = Q_n + \frac{1}{n}\left[ R_n - Q_n \right]

  • \frac{1}{n} 是學習率,在梯度下降中設定 \eta
  • 看起來是不是有點熟悉,
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章