此为《强化学习》第二章。
多臂赌博机问题描述
问题描述略。理想状态下,如果我们可以知道做出行为
a
时得到的期望价值,那问题就结了,按期望选择最大的就好了。它的表达式为:
q∗(a)≐E[Rt|At=a]
其中,选择行为
a
的理论期望价值
q∗(a)
定义为在第
t
步选择行为 (Action)
a
得到的奖励 (Reward)
Rt
的期望。
但显然,我们是不可能精确得到
q∗(a)
的,所以我们用
Qt(a)
作为第
t
步选择行为
a
对价值进行估计,希望
Qt(a)
可以逼近
q∗(a)
。
采样方法
第一种方法是基于采样得到采样平均 (Sample Average) 。采样平均就是统计每次选择行为
a
得到奖励的平均值,即
Qt(a)≐∑t−1i=1RiIAi=a∑t−1i=1IAi=a
其中
I
表示指示函数。
如果采用贪心法,则采样方法下的策略为
At=argmaxaQt(a)
完全的贪心只能保证选择了当前最优解,并不能保证其他未被完全探索到的行为不会产生更大的奖励。考虑到对开发 (Exploit) 和探索 (Explore) 之间的平衡,也常使用
ϵ
-贪心法。
10臂赌博机的例子
假如有一个奖励分布如下图所示的多臂赌博机,
![aaa](https://img-blog.csdn.net/201809021425092?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3l1Y29uZzk2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70) 使用不同的
ϵ
的贪心算法得到的结果不同,它也反应了探索的重要性。
![bbb](https://img-blog.csdn.net/2018090214271080?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3l1Y29uZzk2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
增量式实现
在采样方法一节中,
Qt(a)
表示为一组奖励的求平均,非常直观,但要求存下每一步的奖励,对空间开销较大。对
Qt(a)
稍作移项,就可以得到它的迭代式更新方法。(以下表达式省略
a
,均表示
a
下的价值估计和奖励)
Qn+1=1n∑i=1nRi=1n(Rn+(n−1)Qn)=Qn+1n(Rn−Qn)
变化奖励下的多臂赌博机
在上述的方法下,我们都假定了多臂赌博机的奖励符合一个固定的分布,与时间无关。如果与时间相关呢?我们可能更希望较近的采样比以前的采样具有更高的权重。我们对上一节的
Qn+1
进行微调
Qn+1=Qn+α(Rn−Qn)
与之前的
1/n
不同,此时
α
为一个
[0,1)
的常数。不难得到,
Qn+1=(1−α)nQ1+∑i=1nα(1−α)n−iRi
可以看出,
i
越小,
Ri
的权重越低。
α
除了可以设置为常数外,也可以是和
n
相关的函数,比如上一节中的
1/n
。不过这样就需要自己判断不同时间奖励的权重关系了。
初值设定
增量式地更新价值估计,有一个和采样方法不同的地方,即
Q1(a)
的出现,它使我们的估计是有偏的(虽然偏差会随着时间增加而降低,趋向于0)。但这种偏差有时可以被我们利用,比如可以加入我们的先验知识。再比如,过于乐观(过大)的
Q1(a)
能够激励探索,因为每次行为总是在降低行为
a
的期望,从而鼓励探索其他行为。下图在上述的10臂赌博机例子上实验了乐观估计和保守估计的不同。
![ccc](https://img-blog.csdn.net/20180902145935236?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3l1Y29uZzk2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
上限置信边界行为选择
上限置信边界 (Upper-Confidence-Bound) 是个奇怪的名字。不过它的思路是清晰的。在
ϵ
-贪心下,
ϵ
是一个经验性的常数,而我们常常会希望在学习开始初期多进行探索,而后期比较明确各行为的奖励时则多进行开发,一个简单的常数
ϵ
是不够的。
UCB的策略是这样的
At=argmaxa[Qt(a)+clntNt(a)−−−−−√]
当总采样次数
t
增大,而行为
a
被采样的次数
Nt(a)
不变,式子第二项就会逐渐增大,使探索总是能够发生。
c
可以用来调节开发和探索的比例。
下图表现了UCB和
ϵ
-贪心的对比。
![ddd](https://img-blog.csdn.net/20180902151413150?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3l1Y29uZzk2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
梯度赌博机算法
在之前的例子中,我们总是采取了贪心的算法(包括
ϵ
-贪心)作为策略。贪心算法突出了当前最优的一个行为,而将其他行为几乎视为等价。本节中,我们按照概率来选择行为。我们把策略记为
πt(a)
,表示在第
t
步选择行为
a
的概率。概率具体的值是它们偏好的softmax,即
πt(a)≐Pr{At=a}≐eHt(a)∑kb=1eHt(b)
其中,
k
表示赌博机的数量,
Ht(a)
表示对行为
a
的偏好 (Perference) ,
Ht(a)
表达式为
(a=At):Ht+1(a)=Ht(a)+α(Rt−R¯t)(1−πt(a))(a≠At):Ht+1(a)=Ht(a)−α(Rt−R¯t)πt(a)
其中,
R¯t
表示
t
步时的平均奖励,它将作为衡量奖励大小的参考 (Baseline) 。显然,如果
Rt>R¯t
,那么
Ht+1(At)
将增大,而其他行为的偏好将减小。而所有偏好的和将保持不变。下图表现了baseline有无和探索/开发平衡性的不同效果。
![eee](https://img-blog.csdn.net/20180902160500267?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3l1Y29uZzk2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70) 上述的公式其实有点无厘头,尤其是和标题中的“梯度”没有任何关系。可以证明(过程详见书本),
Ht+1(a)=Ht(a)+α∂E[Rt]∂Ht(a)
联合搜索(上下文赌博机)
上述的赌博机都是一次性的赌博机——做出一个行为后立刻得到回报,且下一次仍然面对同样的赌博机。但实际问题很可能需要一组策略而非单个策略。这将在以后的章节中讨论。
参考文献
《Reinforcement Learning: An Introduction (second edition)》Richard S. Sutton and Andrew G. Barto