文章目录
Introduction
多臂老虎机(Multi-Armed Bandit, MAB)问题常常是学习强化学习(Reinforcement Learning, RL)所遇到的第一个问题。由于没有状态信息(State),只有动作(Action)和对应的奖励(Reward),多臂老虎机问题实际上是一个简单版的强化学习问题,可以算是“在和环境交互中学习”的最基础的形式。虽然这个问题简单,但是却被广泛应用于例如广告推荐等应用中,时至今日依然有很多研究者针对K臂老虎机问题进行研究(当然了,现在研究的问题都不是最基础的Bandit问题了,都是什么Multiplayer bandits之类的复杂问题)。搞明白这个最基础的问题和对应的算法,能够让你对强化学习的概念有进一步的理解,最重要的是理解探索(exploration)和应用(exploiation)的平衡问题,为后面更加复杂的强化学习问题和算法打下基础。
PS:本文假定你已经对强化学习的基本概念有所了解。如果你对强化学习一无所知的话,建议还是先看看基本概念,了解强化学习想要解决的问题是什么以及一些基本术语(比如什么叫Reward,Regret又是个什么东西等等)。
多臂老虎机问题
问题介绍
在多臂老虎机问题中,有一个拥有K个拉杆的老虎机,每一个拉杆都对应于一个关于奖励的分布 R \mathcal{R} R。在每一个时间 t t t,我们拉动其中的一个拉杆,就可以从该拉杆对应的奖励分布中得到一个即时奖励 r t r_t rt。我们的问题是,在每个拉杆的奖励分布我们都不知道的情况下,从零开始尝试,终极目标是使得我们在总共操作 T T T次拉杆后获得尽可能大的累计奖励(Cumulative Reward)。由于每个拉杆的奖励分布是未知的,因此我们面临着一个“探索拉杆的奖励分布”以及“根据已有的信息选择获得奖励最大的拉杆”的权衡问题。而我们的目标是设计一个合适的策略来实现我们的终极目标。
问题的数学描述
假定总共有
K
K
K个拉杆并且每次只能拉动其中的某一个。我们记在任意一个
t
<
T
t<T
t<T的时间时采取的动作(拉动某一个拉杆的行为)为
a
t
∈
A
a_t\in \mathcal{A}
at∈A,代表拉动了某一个具体的拉杆,其中
A
=
{
a
1
,
…
,
a
K
}
\mathcal{A}=\{a_1,\ldots,a_K\}
A={a1,…,aK}为动作集合。在拉动了某一个拉杆之后,我们会得到一个即时的奖励反馈
r
t
∼
R
(
r
∣
a
t
)
r_t\sim\mathcal{R}(r\mid a_t)
rt∼R(r∣at),在这里我们假定
r
t
∈
[
0
,
1
]
r_t\in[0,1]
rt∈[0,1]。多臂老虎机的目标为最大化一个总的时间步
T
T
T内累积的奖励:
max
∑
t
=
1
T
r
t
\max \sum_{t=1}^{T}r_t
max∑t=1Trt。
除了最大化累计奖励之外,另一个考虑的角度是最小化累计懊悔(Cumulative Regret)。对于任意一个动作
a
a
a,我们定义其期望奖励为
Q
(
a
)
=
E
r
∼
R
(
⋅
∣
a
)
[
r
]
∈
[
0
,
1
]
Q(a)=\mathbb{E}_{r\sim\mathcal{R}(\cdot\mid a)}[r]\in[0,1]
Q(a)=Er∼R(⋅∣a)[r]∈[0,1],该期望奖励通常也被叫做这个动作的价值(Value)。于是,至少存在一个拉杆,其价值不小于其他任意一个拉杆,我们将该最优拉杆记为
a
⋆
a^\star
a⋆,其对应的最优价值记为
Q
⋆
=
max
a
∈
A
Q
(
a
)
Q^\star=\max_{a\in\mathcal{A}}Q(a)
Q⋆=maxa∈AQ(a)。随后我们定义懊悔(Regret)为拉动当前选择的拉杆的价值与最优拉杆对应的价值的差距,即
R
(
a
t
)
=
Q
⋆
−
Q
(
a
t
)
R(a_t)=Q^\star-Q(a_t)
R(at)=Q⋆−Q(at),累积懊悔则为总共操作
T
T
T次拉杆后的懊悔总量:
σ
T
=
∑
t
=
1
T
\sigma_T=\sum_{t=1}^{T}
σT=∑t=1T。很明显,最大化累积奖励等价于最小化累计懊悔。
因此我们的问题是,如何设计每一步的动作
a
t
a_t
at来实现上述最大化累积奖励或最小化累积懊悔的问题。
基于估计价值的算法
简单的先探索、后利用算法(Explore-first)
算法描述
由于不知道每一个拉杆的价值,一个很符合直觉的方法是:先每个拉杆都拉个几次试试,收集对应的reward信息(探索阶段)。根据收集到的数据就可以得到对于这个拉杆的价值的一个样本估计,之后就一直拉那个具有最大的估计价值的拉杆(利用阶段)。这种方法称为简单的先探索、后利用算法。
用数学语言描述就是,假定在总共
T
T
T个时间步中,前
M
M
M个时间步被用于探索,即试试各个拉杆。在任意一个时间步
t
≤
M
t\leq M
t≤M时,我们以等概率的形式选取
a
t
∈
A
a_t\in\mathcal{A}
at∈A,得到
a
t
a_t
at对应的
r
t
r_t
rt。在
M
M
M轮全部结束后,通过下式计算每一个action的估计价值
Q
^
(
a
)
=
1
∣
C
a
∣
∑
t
∈
C
a
r
t
\begin{equation}\hat{Q}(a)=\frac{1}{|C_a|}\sum_{t\in C_a}r_t\end{equation}
Q^(a)=∣Ca∣1t∈Ca∑rt,其中
C
a
=
{
t
∣
a
t
=
a
}
C_a = \{t|a_t=a\}
Ca={t∣at=a}代表取action
a
t
=
a
a_t=a
at=a的时间步构成的集合。随后,从第
M
+
1
M+1
M+1步开始,算法将一直选择具有最大的估计价值的action,即
a
t
=
arg
max
a
Q
^
(
a
)
,
当
t
>
M
。
\begin{equation}a_t = \arg\max_{a}\, \hat{Q}(a),\text{当}t>M。\end{equation}
at=argamaxQ^(a),当t>M。
算法性能分析
对于多臂老虎机问题算法的性能分析主要集中于对懊悔界(regret bound)的分析上。在本文中主要对懊悔的上界进行分析。
对于所有的行动
a
a
a,在探索阶段结束后得到其估计价值为
Q
^
(
a
)
\hat{Q}(a)
Q^(a)。我们希望在探索阶段后得到的这个估计价值能够是真实价值的一个足够好的估计,即我们希望
∣
Q
(
a
)
−
Q
^
(
a
)
∣
|Q(a)-\hat{Q}(a)|
∣Q(a)−Q^(a)∣尽可能的小。通过Hoeffding不等式,我们可以得到上述事件发生概率的上界为
P
[
∣
Q
(
a
)
−
Q
^
(
a
)
∣
≤
r
a
d
]
≥
1
−
2
T
4
,
其中
r
a
d
=
2
K
log
(
T
)
M
。
\begin{equation}\mathbb{P}\left[\left|Q(a)-\hat{Q}(a)\right|\leq \mathrm{rad}\right]\geq1-\frac{2}{T^4}, \,\text{其中 }\mathrm{rad}=\sqrt{\frac{2K\log(T)}{M}}。\end{equation}
P[
Q(a)−Q^(a)
≤rad]≥1−T42,其中 rad=M2Klog(T)。
当总时间步
T
T
T足够大时,上述概率将无限趋近于1。我们将上述不等式对所有拉杆均成立的事件称为clean event。基于clean event,我们可以得到
Q
^
(
a
)
\hat{Q}(a)
Q^(a)以很大的概率出现在区间
[
Q
(
a
)
−
r
a
d
,
Q
(
a
)
+
r
a
d
]
[Q(a)-\mathrm{rad},Q(a)+\mathrm{rad}]
[Q(a)−rad,Q(a)+rad],上述区间被称为置信区间(confidence interval)。
当
t
≤
M
t\leq M
t≤M时,regret的上界是每一步都是最坏情况,即regret均为1。
当
t
>
M
t>M
t>M时,产生regret的原因在于选择的具有最大估计价值的
a
≠
a
⋆
a\neq a^\star
a=a⋆,这表明
Q
^
(
a
)
≥
Q
^
(
a
⋆
)
\hat{Q}(a)\geq\hat{Q}(a^\star)
Q^(a)≥Q^(a⋆),基于置信区间,我们可以得到
Q
(
a
)
+
r
a
d
≥
Q
^
(
a
)
≥
Q
^
(
a
⋆
)
≥
Q
(
a
⋆
)
−
r
a
d
\begin{equation}Q(a)+\mathrm{rad}\geq\hat{Q}(a)\geq\hat{Q}(a^\star)\geq Q(a^\star)-\mathrm{rad}\end{equation}
Q(a)+rad≥Q^(a)≥Q^(a⋆)≥Q(a⋆)−rad
于是我们得到
Q
(
a
⋆
)
−
Q
(
a
)
≤
2
⋅
r
a
d
\begin{equation}Q(a^\star)-Q(a)\leq 2\cdot\mathrm{rad}\end{equation}
Q(a⋆)−Q(a)≤2⋅rad
综合前面的结论,我们得到了累积懊悔的一个上界
σ
T
≤
M
+
2
(
T
−
M
)
⋅
r
a
d
=
M
+
2
(
T
−
M
)
⋅
2
K
log
(
T
)
M
\begin{align}\sigma_T &\leq M+2(T-M)\cdot\mathrm{rad} \\ &=M+2(T-M)\cdot\sqrt{\frac{2K\log(T)}{M}}\end{align}
σT≤M+2(T−M)⋅rad=M+2(T−M)⋅M2Klog(T)
实际上,该上界为
M
M
M的一个凸函数,在给定
T
T
T与
K
K
K的情况下,最优的使得该上界最小化的
M
M
M可以通过解如下方程得到
M
3
2
−
M
2
K
log
(
T
)
−
T
2
K
log
(
T
)
=
0
\begin{equation}M^{\frac{3}{2}}-M\sqrt{2K\log(T)}-T\sqrt{2K\log(T)}=0\end{equation}
M23−M2Klog(T)−T2Klog(T)=0
ϵ \epsilon ϵ-Greedy 算法
算法描述
与上述简单的先探索后利用算法的逻辑不同, ϵ \epsilon ϵ-Greedy算法并不是通过将总时间步 T T T硬性划分为探索和利用两个部分,而是在每一步,有一定的概率 ϵ \epsilon ϵ选择去探索,有 1 − ϵ 1-\epsilon 1−ϵ的概率选择去利用,本质上是将探索和李永德分配均匀分布在了时间轴之上。 ϵ \epsilon ϵ-Greedy算法的流程如下:
- 设定一个具体的概率 ϵ ∈ [ 0 , 1 ] \epsilon\in [0,1] ϵ∈[0,1],初始化所有 Q ^ = 0 \hat{Q}=0 Q^=0
- 在每一个时间步 t t t,随机生成一个随机数 ϵ ′ \epsilon^\prime ϵ′
- 若 ϵ ′ ≤ ϵ \epsilon^\prime\leq \epsilon ϵ′≤ϵ,则随机选择一个action a t ∈ A a_t\in\mathcal{A} at∈A,获得对应的reward r t r_t rt
- 若 ϵ ′ > ϵ \epsilon^\prime>\epsilon ϵ′>ϵ,则选择当前具有最大的估计价值的action,即 a t = arg max a ∈ A Q ^ ( a ) a_t=\arg\max_{a\in\mathcal{A}}\, \hat{Q}(a) at=argmaxa∈AQ^(a)
- 通过增量式(2)更新估计价值