强化学习(RLAI)读书笔记第二章多臂*

第二章:多臂*

把强化学习和其它类型的机器学习区分出来的一大特征就是,强化学习利用的是评估动作的训练数据而非指导哪个动作是正确的数据。纯评估反馈是指只评价动作的好坏程度而不是评价动作是不是最好的。纯指导反馈是直接给出哪个动作是最优的。指导反馈是监督学习的基础。

这一章学习评估反馈的简单形式,一个无关联设定的问题。学习这个例子可以清楚看到评估反馈和指导反馈的区别,并且怎么组合起来他们。这个例子就是一个多臂*。

 

2.1 A k-armed Bandit Problem

有一个*,有k个按钮,每次选一个按钮,选完之后会得到一个数字反馈。你的任务是最大化1000次选择后的总反馈。在这个问题里,每一个按钮都有一个固定的期望反馈,强化学习(RLAI)读书笔记第二章多臂*  。尽管可以估计每个动作的反馈期望,但是无法知道确切值。使用估计值强化学习(RLAI)读书笔记第二章多臂*来逼近期望值。

如果记下了每个动作的估计值,那么每次采取动作的时候就一定有一个估计值最大的动作,这个动作叫greedy动作。如果采取这个最大的动作就叫做exploit,否则就叫explore。如果后面还有很多步动作,那么采用explore去探求更多动作来找出最大反馈可能相对于一直采取当前最大值更好一点。使用explore短期内得到的reward会下降,但是长期看会更好。所以如何选择exploit和explore是一个矛盾。

有很多平衡explore和exploit的方法,但是大多数都做出很多强假设和很多先验知识,因此无法用到后面要讲的强化学习问题中。这本书里不讲如何复杂地平衡它们,我们只会关注平衡本身。

 

2.2 Action-value Methods

我们把估计每个动作反馈值并把这个值用来做动作选择的方法叫做action-value法。这个动作的值指的是动作被选择时候的平均值。很自然地想到一个方法就是不加权的平均即强化学习(RLAI)读书笔记第二章多臂*,其中强化学习(RLAI)读书笔记第二章多臂*表示如果下标为真则值为1,否则为0。如果分母是0,那么Q定义为初始值,比如0。根据大数定律强化学习(RLAI)读书笔记第二章多臂*收敛至强化学习(RLAI)读书笔记第二章多臂*。这个方法也叫采样平均。

greedy动作也就是当前Q值最大的动作,即

                                强化学习(RLAI)读书笔记第二章多臂*

如果采取greedy动作,那么就不会去估计其它动作的值,也就没法知道是否还有更好的动作。一个取代方法是强化学习(RLAI)读书笔记第二章多臂*的概率去采用其它方法,而1-强化学习(RLAI)读书笔记第二章多臂*的概率去采取greedy动作。这个方法叫做强化学习(RLAI)读书笔记第二章多臂*-greedy法。这个方法的好处是随着动作步骤的增加,每个动作都能够得到采样和估计,因此保证了强化学习(RLAI)读书笔记第二章多臂*会收敛到强化学习(RLAI)读书笔记第二章多臂*

练习2.1 概率为0.75

 

2.3 The 10-armed Testbed

为了评价greedy法和强化学习(RLAI)读书笔记第二章多臂*-greedy法的好坏,我们设计了一个测试环境。设k为10,随机进行2000次使用*的动作。对于每一个动作设置了一个期望值强化学习(RLAI)读书笔记第二章多臂*,a=1,...,10。每一次采取动作都会得到一个以强化学习(RLAI)读书笔记第二章多臂*为期望,1为方差高斯分布返回的随机值作为反馈。在这个环境中比较greedy方法和强化学习(RLAI)读书笔记第二章多臂*-greedy法。

分布如图:

强化学习(RLAI)读书笔记第二章多臂*

得到的检测结果如图:

强化学习(RLAI)读书笔记第二章多臂*

从结果上看强化学习(RLAI)读书笔记第二章多臂*为0.1的时候效果更好一些,而且收敛的更快。可能逐渐减小强化学习(RLAI)读书笔记第二章多臂*的值可以取到更好的效果。

强化学习(RLAI)读书笔记第二章多臂*-greedy法相对于greedy法哪个更好依赖于任务情况。比如当反馈的方差很大,那么强化学习(RLAI)读书笔记第二章多臂*-greedy法可能会效果更好,但是如果方差很小那么greedy法效果会更好。但是即使是确定性问题使用explore也有很大的好处,比如如果*每个选项的期望反馈是变化的时候。

练习2.2  2,3,5步是一定在随机的范围,1,4是有一定可能。

练习2.3 略

 

2.4 Incremental Implementation

目前讨论的采样平均法都是平均目前观察到的反馈。但是保存所有至今的反馈值很消耗空间,可以写成增量式的形式。

其中每一个动作的估计值为强化学习(RLAI)读书笔记第二章多臂*

可以写成增量式的形式,如强化学习(RLAI)读书笔记第二章多臂*。即使是n为1的情况也是满足的,此时强化学习(RLAI)读书笔记第二章多臂*就是强化学习(RLAI)读书笔记第二章多臂*

增量形式会频繁出现在书中,即强化学习(RLAI)读书笔记第二章多臂*。其中Target-OldEstimate是对估计的一个error。在采样平均的公式中stepsize是变化的是1/n,在这本书中用强化学习(RLAI)读书笔记第二章多臂*或者强化学习(RLAI)读书笔记第二章多臂*的形式。

多臂*的算法伪代码如下:

强化学习(RLAI)读书笔记第二章多臂*

 

2.5 Tracking a Nonstationary Problem

目前讨论的平均法都是应用于稳态*(bandit problem)问题,也就是反馈值的分布不变。但是如果问题是非稳态的,那么应该给最近的反馈比很久之前的反馈更高的比重才更合理。使用常量步长就是个常见的做法,即强化学习(RLAI)读书笔记第二章多臂*

其中步长强化学习(RLAI)读书笔记第二章多臂*是一个属于(0,1]的常量。根据递推式也可以写为强化学习(RLAI)读书笔记第二章多臂*。我们把这个方法叫做加权平均法是因为系数之和为1。而且距离n越近的R系数越大,因此也叫作exponential recency-weighted average。

对于直接采样平均的算法来说,最终Q会收敛到真值,但不是所有的系数都能够保证Q最终收敛。收敛的系数需要满足

(1)强化学习(RLAI)读书笔记第二章多臂*      和   (2)强化学习(RLAI)读书笔记第二章多臂*

这是非稳态环境所必须的收敛条件,而强化学习问题大多数是非稳态的。另外,一般像这种情况收敛速度都很慢而且需要细心的调整才能达到。因此理论上经常使用这个收敛条件但是应用里很少使用。

练习2.4 强化学习(RLAI)读书笔记第二章多臂*

 

2.6 Optimistic Initial Values

之前的平均方法或多或少和初始值强化学习(RLAI)读书笔记第二章多臂*有关,这种方法叫做有偏估计。对于采样平均法,初始值只影响一次。可是对于步长为常数的方法,初始值的影响一直都在。初始值在实际中有可能会影响到训练的速度和效果。

当我们把初始值设置为+5时,即使是采用greedy方法,算法依然进行了很多步的explore。对于这种使用初始值鼓励explore的方法我们叫做乐观初始值。对于稳态问题这是一个很有效的做法,但是这不是一个广义的鼓励explore的方法,比如对于非稳态的问题初始值仅仅是有一点临时的影响。事实上,任何使用特殊方法关注初始状态的都不会对非稳态问题有稳定的帮助。尽管这些方法很简单,但是很多时候他们中的一个或者组合在实际中就够用了。

练习2.6 在第一次取到最优动作时,其它的动作们平均值都很小,而最优动作返回的值比较大,那么就会连续选很多次最优值。但是选的多了,估计值也会慢慢下降,这是就有可能再选到其他动作。

练习2.7 强化学习(RLAI)读书笔记第二章多臂*

强化学习(RLAI)读书笔记第二章多臂*

强化学习(RLAI)读书笔记第二章多臂*

其中强化学习(RLAI)读书笔记第二章多臂*强化学习(RLAI)读书笔记第二章多臂*,因此第一项系数为0,即无偏。将(2)和(3)带入(1)中得到

强化学习(RLAI)读书笔记第二章多臂*。得证。

 

2.7 Upper-Confidence-Bound Action Selection

采用greedy方法会一直采用当前最优动作,但是进行一定的explore也会有可能找到更好的动作。强化学习(RLAI)读书笔记第二章多臂*-greedy法是定量分配一个小概率进行explore操作,但是直接在最优和有潜力成为最优的选项中无差别的搜索可能效果更好,比如根据下式来选择强化学习(RLAI)读书笔记第二章多臂*,其中t是当前总步数,c是大于0的常数,强化学习(RLAI)读书笔记第二章多臂*是采取当前动作的总次数。随着总步数的增加,采取数量较少的动作总的UCB会增加,因此增大了被选到的可能。

UCB方法在*这个问题里表现的比强化学习(RLAI)读书笔记第二章多臂*-greedy法更好,但是比它更难拓展到其它的强化学习问题中去。对于比较复杂的问题设定,这个方法是不实用的。

练习2.8 在选中了最优动作之前一直没有怎么选到该动作,积累了一定的UCB值,在被选择了之后又返回了一个很大的值,因此可以保持一段时间的最大。但是随着被选择次数增多UCB也会慢慢下降,因此也可以选到其他值,于是平均值也就下降了。

 

2.8 Gradient Bandit Algorithms

除了评估动作返回值这个方法,还有另外的方式来解决这个问题。比如为每个动作规定一个值preference使用强化学习(RLAI)读书笔记第二章多臂*表示。使用softmax分布或者叫做吉布斯或玻尔兹曼分布的方法来得到每个动作的概率:

强化学习(RLAI)读书笔记第二章多臂*

练习2.9 分子分母同时除以强化学习(RLAI)读书笔记第二章多臂*

根据梯度上升法能够得到H值的迭代公式,此处忽略。主要是有个当前估计值作为一个baseline需要注意。

 

2.9 Associative Search (Contextual Bandits)

目前考虑的问题都是非相关的设定,即不需要根据当前状况考虑动作。下面给个关联设定的例子。

假设我们有n个多臂*,每个*都有k个相同的动作,不同*相同的动作返回值的期望不同,而且每次采取动作的时候都是对着不同的*。如果每次进行动作的时候都有一个提示信息告诉我们当前是哪个*,那么这个问题就是个关联问题,因为我们需要根据提示信息考虑需要采取的动作。

这个例子叫做关联搜索任务,学名叫做contextual bandits。关联问题是多臂*和完全的强化学习问题之间的过渡。它像强化学习一样学习一个采取动作的策略,又像多臂*一样每个动作仅仅影响当前反馈值。如果每个动作还会影响以后的反馈,那么这就是个完全的强化学习问题。

练习2.10 0.5 随意选择  0.55 第一个选2  第二个选1

2.10 Summary

本章介绍了几个平衡explore和exploit的方法:一、强化学习(RLAI)读书笔记第二章多臂*-greedy法加UCB策略;二、Gradient bandit algorithms方法;三、乐观初值法。尽管这些方法很简单,但是确实可以称得上是最先进的方法。尽管有一些其它复杂的方法,但它们往往不够实用。这些虽然是我们目前能做的最好的方法,但是也称不上是一个令人满意的解决方案。

在贝叶斯方法里有一个方法叫做Gittins index法能够直接推算出bandit problem的最优解。其中一种贝叶斯方法是根据动作的后延概率分布来选择最优动作。这个方法叫做后验采样或者Thompson sampling法。尽管很难直接计算出精确解,但是有一些近似计算来进行估算。