参考资料:https://leovan.me/cn/2020/05/multi-armed-bandit/
1. 问题描述
一个赌徒,要去摇老虎机,走进赌场一看,一排老虎机,外表一模一样,但是每个老虎机吐钱的概率可不一样,他不知道每个老虎机吐钱的概率分布是什么,那么每次该选择哪个老虎机可以做到最大化收益呢?这就是多臂赌博机问题 (Multi-armed bandit problem, MAB)
多 臂赌博机问题中,k个动作的每一个在被选择时都有一个期望或者平均收益,称之为这个动作的“价值”。令 t 时刻选择的动作为 At,对应的收益为 Rt,任一动作 a 对应的价值为 q∗(a),即给定动作 a 时收益的期望:
q
∗
(
a
)
=
E
[
R
t
∣
A
t
=
a
]
q_{*}(a)=\mathbb{E}\left[R_{t} \mid A_{t}=a\right]
q∗(a)=E[Rt∣At=a]
将对动作a在时刻t的价值的估计记为
Q
t
(
a
)
Q_{t}(a)
Qt(a),我们希望它接近
q
∗
(
a
)
q_{*}(a)
q∗(a)
如果持续对动作的价值进行估计,那么在任一时刻都会至少有一个动作的估计价值是最高的,将这些对应最高估计价值的动作作为贪心的动作。在此基础上定义exploration和exploitation:
-
exploration(探索):选择非贪心动作,可以改善对非贪心动作的价值估计,从长远来看可能会带来总体收益的最大化。
-
exploitation(利用):选择贪心动作,将其称为利用当前所知道的关于动作的价值的知识。能最大化当前这一时刻的收益。
2. 解法
2.1 Epsilon-greedy
- 以 ϵ \epsilon ϵ的概率在N个物品之间被等概率随机选择
- 以 1 − ϵ 1-\epsilon 1−ϵ的概率在N个物品之间选择被转化最高的那个
其中, ϵ \epsilon ϵ越大,探索的程度越大。当 ϵ = 0 \epsilon=0 ϵ=0时,算法即为贪婪算法。应用这个策略意味着在大多数情况下,我们的agent会选择带来最大预期好处的动作,但是偶尔的以e的概率,它将随机选择。
它相比于贪婪算法的优势在于:
- 对于更大方差的收益,找到最优的动作需要更多次的试探。
- 对于非平稳的任务,即动作的真实价值会随着时间而改变,这种情况下即使有确定性的情况下,也需要进行试探。
2.2 UCB(Upper Confidence Bound)
比Epsilon-greedy多一点目的性
Epsilon-greedy在进行尝试的时候是盲目的,因为它不大会选择接近贪心或者不确定性特别大的动作。在非贪心动作中,最好是根据它们的潜力来选择可能事实上是最优的动作,这要考虑它们的估计有多接近最大值,以及这些估计的不确定性。
一种基于置信度上界思想的选择动作依据如下:
A
t
=
arg
max
a
[
Q
t
(
a
)
+
c
ln
t
N
t
(
a
)
]
A_{t}=\underset{a}{\arg \max }\left[Q_{t}(a)+c \sqrt{\frac{\ln t}{N_{t}(a)}}\right]
At=aargmax[Qt(a)+cNt(a)lnt]
N
t
(
a
)
N_{t}(a)
Nt(a) 表示在时刻 t 之前动作 a 被选择的次数吧,c>0用于控制试探的程度。平方根项是对 a 动作值估计的不确定性或方差的度量,最大值的大小是动作 a 的可能真实值的上限,参数 c 决定了置信水平。
2.3 梯度赌博机算法
针对每个动作 a,考虑学习一个数值化的偏好函数 Ht(a),偏好函数越大,动作就约频繁地被选择,但偏好函数的概念并不是从“收益”的意义上提出的。基于随机梯度上升的思想,在每个步骤中,在选择动作 At 并获得收益 Rt 之后,偏好函数会按如下方式更新:
H
t
+
1
(
A
t
)
=
H
t
(
A
t
)
+
α
(
R
t
−
R
ˉ
t
)
(
1
−
π
t
(
A
t
)
)
H
t
+
1
(
a
)
=
H
t
(
a
)
−
α
(
R
t
−
R
ˉ
t
)
π
t
(
a
)
\begin{aligned} &H_{t+1}\left(A_{t}\right)= H_{t}\left(A_{t}\right)+\alpha\left(R_{t}-\bar{R}_{t}\right)\left(1-\pi_{t}\left(A_{t}\right)\right) \\ &H_{t+1}(a) = H_{t}(a)-\alpha\left(R_{t}-\bar{R}_{t}\right) \pi_{t}(a) \end{aligned}
Ht+1(At)=Ht(At)+α(Rt−Rˉt)(1−πt(At))Ht+1(a)=Ht(a)−α(Rt−Rˉt)πt(a)
其中,α>0 表示步长,
R
ˉ
t
∈
R
\bar{R}_{t} \in \mathbb{R}
Rˉt∈R表示时刻 t 内所有收益的平均值。
R
ˉ
t
\bar{R}_{t}
Rˉt项作为比较收益的一个基准项,如果收益高于它,那么在未来选择动作
A
t
A_{t}
At的概率就会增加,反之概率就会降低,未选择的动作被选择的概率会上升。
2.4 性能比较
-
Epsilon-Greedy 方法在一段时间内进行随机的动作选择;
-
UCB 方法虽然采用确定的动作选择,但可以通过每个时刻对具有较少样本的动作进行优先选择来实现试探;
-
梯度赌博机算法则不估计动作价值,而是利用偏好函数,使用 softmax 分布来以一种分级的、概率式的方式选择更优的动作;简单地将收益的初值进行乐观的设置,可以让贪心方法也能进行显示试探。