多臂赌博机

多臂赌博机

一台赌博机有多个摇臂,每个摇臂摇出的奖励(reward)大小不确定,玩家希望摇固定次数的臂所获得的期望累计奖励最大。

1. 问题形式化

  • 行为:摇哪个臂
  • 奖励:每次摇臂获得的奖金
  • \(A_t\)表示第\(t\)轮的行为,\(R_t\)表示第\(t\)轮获得的奖励
  • 采取行为\(a\)的期望奖励为:\(q_*(a) \doteq E[R_t | A_t = a]\)

2. 贪心策略

一般情况下,\(q_*(a)\)对于玩家而言是未知的或具有不确定性,玩家在第\(t\)轮时只能依赖于当时对\(q_*(a)\)的估值\(Q_t(a)\)进行选择。

贪心策略是在第\(t\)轮选择\(Q_t(a)\)最大的\(a\)

3. Exploitation vs. Exploration

Exploitation:

  • 按照贪心策略进行选择,即选择\(Q_t(a)\)最大的行为\(a\)
  • 优点:最大化即时奖励;
  • 缺点:由于\(Q_t(a)\)只是对\(q_*(a)\)的估计,估计的不确定性导致按照贪心策略选择的行为不一定是使\(q_*(a)\)最大的行为。

Exploration:

  • 选择贪心策略之外的行为(non-greedy actions);
  • 缺点:短期奖励会比较低;
  • 优点:长期奖励会比较高,因为Exploration可以找到奖励更大的行为,供后续选择。

每一步的选择只能在exploitation和exploration之间选择,如何平衡exploitation和exploration是关键问题。

4. 行为估值方法

根据历史观测样本的均值对\(q_*(a)\)进行估计: \[Q_t(a) \doteq \frac{ \text{sum of rewards when a taken prior to t}}{\text{number of times a taken prior to t}} = \frac{\sum_{i=1}^{t-1} R_i \cdot \mathbf{1}_{A_i = a}}{\sum_{i=1}^{t-1} \mathbf{1}_{A_i=a}}\]

  • 当分母等于0时,\(Q_t(a) = 0\)
  • 当分母趋于无穷大时,\(Q_t(a)\)收敛到\(q_*(a)\)

5. 贪心策略和\(\varepsilon\)贪心策略

贪心策略形式化地表示为 \[A_t \doteq \mathop{\arg\max}_a Q_t(a)\] 当有多个行为的\(Q_t(a)\)同时为最大时,随机选择一个。

\(\varepsilon\)贪心策略:

  • 以概率\(\varepsilon\)按照贪心策略进行行为选择——exploitation;
  • 以概率\(1 - \varepsilon\)在所有行为中随机选择一个——exploration;
  • \(\varepsilon\)的取值取决于\(q_*(a)\)的方差,方差越大\(\varepsilon\)取值越大。

6. 贪心策略的增量式实现

行为估值时,一个行为被选择了\(n\)次后的估值记为 \[Q_n \doteq \frac{R_1 + R_2 + \cdots + R_{n-1}}{n-1}\] 该估值方式需要记录\(n-1\)个奖励值。

增量式实现: \[\begin{align} Q_{n+1} &= \frac{1}{n} \sum_{i=1}^n R_i \nonumber \\ &= \frac{1}{n} (R_n + \sum_{i=1}^{n-1}R_i) \nonumber \\ &= \frac{1}{n} (R_n + (n-1) \frac{1}{n-1} \sum_{i=1}^{n-1}R_i) \nonumber \\ &= \frac{1}{n} (R_n + (n-1)Q_n) \nonumber \\ &= \frac{1}{n} (R_n + n Q_n - Q_n) \nonumber \\ &= Q_n + \frac{1}{n} [R_n - Q_n] \nonumber \end{align}\]

此时只需要记录\(Q_n\)\(n\)两个值。

伪代码:

bandit(A):采取行动A,返回这次行动获得的奖励。

行为估值更新
更新公式: \[ NewEstimate \gets OldEstimate + StepSize [Target - OldEstimate]\] \((Target - OldEstimate)\)表示估计误差。

  • 对于贪心策略的增量实现而言,步长为\(\frac{1}{n}\)
  • 更一般的情况:步长用参数\(\alpha\)\(\alpha_t(a)\)表示。

7. 非平稳问题

平稳问题

  • \(q_*(a)\)是稳定的,不随时间而变化;
  • 随着观测样本的增加,平均值估计方法最终收敛于\(q_*(a)\)

非平稳问题

  • \(q_*(a)\)是关于时间的函数;
  • \(q_*(a)\)的估计需要更关注最近的观测样本。

8. 非平稳情形下的行为估值

行为估值的更新公式: \[Q_{n+1} \doteq Q_n + \alpha [R_n - Q_n]\]

递推得到: \[\begin{align} Q_{n+1} &= Q_n + \alpha [R_n - Q_n] \nonumber \\ &= \alpha R_n + (1-\alpha) Q_n \nonumber \\ &= \alpha R_n + (1-\alpha)[\alpha R_{n-1} + (1-\alpha) Q_{n-1}] \nonumber \\ &= \alpha R_n + (1 - \alpha) \alpha R_{n-1} + (1-\alpha)^2 Q_{n-1} \nonumber \\ &= \alpha R_n + (1 - \alpha) \alpha R_{n-1} + \cdots + (1-\alpha)^{n-1} \alpha R_1 + (1-\alpha)^n Q_1 \nonumber \\ &= (1-\alpha)^n Q_1 + \sum_{i=1}^n \alpha (1-\alpha)^{n-i} R_i \nonumber \end{align}\]

对应于指数“新近”带权平均。

更新步长的选择:

并不是所有的步长选择\(\alpha_n(a)\)都保证收敛:

  • \(\alpha_n(a) = \frac{1}{n}\)收敛;
  • \(\alpha_n(a) = \alpha\)不收敛。

收敛条件\[\sum_{n=1}^{\infty} \alpha_n(a) = \infty \quad and \quad \sum_{n=1}^{\infty} \alpha_n^2(a) < \infty\]

  • 第一个条件保证步长足够大,克服初值或随机扰动的影响;
  • 第二个条件保证步长最终会越来越小,小到保证收敛。

行为选择策略

  • 平衡exploitation和exploration,应对行为估值的不确定性;
  • 关键:确定每个行为被选择的概率。

9. 乐观初值法

行为的初始估值:

  • 前述贪心策略中,每个行为的初始估值为0;
  • 每个行为的初始估值可以帮助我们引入先验知识;
  • 初始估值还可以帮助我们平衡exploitation和exploration。

乐观初值法(Optimistic Initial Values):

  • 为每个行为赋一个高的初始估值;
  • 好处:初期每个行为都有较大机会被explore。

10. UCB行为选择策略

UCB:Upper-Confidence-Bound\[A_t \doteq \mathop{\arg \max}_a [Q_t(a) + c \sqrt{\frac{\ln t}{N_t(a)}}]\] 其中\(N_t(a)\)表示时刻\(t\)之前行为\(a\)被选择的次数。

公式解读:

  • 选择潜力大的行为:依据估值的置信上界进行行为选择;
  • 第一项表示当前估值要高,即接近greedy action;
  • 第二项表示不确定性要高,即被选择的次数少;
  • 参数用来控制exploration的程度。

UCB策略一般会优于\(\varepsilon\)贪心策略,不过最初几轮相对较差。

UCB策略实现起来比\(\varepsilon\)贪心策略要复杂,在多臂赌博机之外的强化学习场景中使用较少。

11. 梯度赌博机算法

  • 目标:优化每轮的期望奖励大小; \[E[R_t] = \sum_b \pi_t(b) q_*(b)\]
  • 使用\(H_t(a)\)表示在第\(t\)轮对行为\(a\)的偏好程度;
  • 在第\(t\)轮选择行为\(a\)的概率为 \[Pr \{A_t = a\} \doteq \frac{e^{H_t(a)}}{\sum_{b=1}^k e^{H_t(b)}} \doteq \pi_t(a)\]
  • 更新公式: \[\begin{equation} H_{t+1}(A_t) \doteq H_t(A_t) + \alpha(R_t - \bar{R}_t)(1 - \pi_t(A_t)), \quad and \nonumber \\ H_{t+1}(a) \doteq H_t(a) - \alpha (R_t - \bar{R}_t) \pi_t(a), \quad \text{for all} \quad a \neq A_t \nonumber \end{equation}\]

等价于随机梯度上升。

12. 不同策略对比

UCB策略表现相对较好。

13. 多臂赌博机的应用案例

手机客户端新闻或广告的投放。

14. 小结

多臂赌博机是强化学习的一个简化场景:

  • 行为和状态之间没有关联关系;

扩展情形——有上下文的多臂赌博机:

  • 存在多个多臂赌博机,状态表示赌博机;
  • 学习状态到行为的映射;
  • 但行为不改变状态。

更一般的情形:

  • 马尔科夫决策过程。