强化学习导论笔记:多臂赌博机问题(初稿)

前言:

接触强化学习最开始是参看的Sutton的本系列是参照Sutton的reinforcement learning an introduction这本书,刚开始读的时候感觉这本书晦涩难懂,非常不好理解。因此就找了几本中文的强化学习相关的书籍,阅读之后发现这些教材里很多东西都没讲清楚。折腾了一圈,最后还是决定仔细研读Sutton的这本教材。为了检验自己对于强化学习知识点的掌握情况,我就写了这个系列的博客。边看书,边记录。我一直认为,只有能把一个知识点讲清楚,才算是掌握了这个知识点。如有不对的地方,还希望有大神能够指正。

正文:

第二章通篇都在讲多臂赌博机问题。我们先来看什么是多臂赌博机问题?赌博机有K个摇臂,代表K个动作(action),每个时间步长(Step-size),我们会选择一个动作,每个动作都对应一个期望的奖励(reward),我们称此奖励为该动作的价值(value)。我们的目标是经过一段时间的选择,使累积的奖励最大。换言之,在每个时间步长里,我们选择一个动作,经过一段时间,是累积的奖励最大化。

在这个问题里,我们需要明确:这里提到的奖励(reward)是符合一个特定的概率分布。我们用$A_{t}$表示在时间t时要选择的动作,$R_{t}$表示在实践t选择该动作对应的奖励,$q_{*}(a)$表示动作a的价值。为了求得这个价值,我们提出如下公式:

注意,这里$q_{*}(a)$的值是一个期望。那么什么叫期望?期望就是概率的加权值。如果这点没有看懂,我们稍后还会提到。

 

在这个赌博机问题中,如果我们清楚的知道每个动作的价值(value),我们每次只需要选择具有最大价值的动作,就可以解决这个赌博机问题(这应该很好理解,你都知道选哪个动作好了,只需要每次都选那个最好的就能得到最优解)。但是呢,我们之前提到过,我们并不知道每个动作对应的确切价值,因为这个价值是符合一个分布,不是一个确定值。所以,我们用$Q_{t}(a)$来表示对于动作$a$在时间$t$时价值的近似值,$Q_{t}(a) \approx q_{*}(a)$。这个$Q_{t}(a)$就是我们在时间t上对于$q_{*}(a)$的估值。

 

那么,接着就有一个问题:如何对动作进行估值?这是这一章的重点内容。我们来讨论估算动作的价值的方法。之前的定义是:一个动作的价值是选择该动作时得到的奖励的期望(注意这里也提到了奖励的期望或者均值,为什么是均值?因为每选择一个动作,我们得到的是一个奖励的概率分布!)。因此,我们得到以下公式:

这个公式的含义是在时刻t时,动作a的估值(估计价值)是在之前的t-1时间里,通过选择动作a得到的奖励除以选择动作a的次数。根据大数定理,档分无趋近于无穷时,$Q_{t}(a)$将会聚合于$q_{*}(a)$。这种估算动作价值的方法被称为sample-average method。

 

下面,我们来讨论多臂赌博机中动作选择的问题。之前提到过,如果我们准确知道每个动作的价值(value),只需要每次选择具有最大价值的动作。我们现在将这个具有最大价值的动作称为greedy action。例如下面这个公式,就是采用的每次都选择估值最大的动作。

但是,在多臂赌博机问题中,我们并不知道每个动作的确切价值,每次都选择greedy action就会造成最终的结果不是最优解。这里就引除了在强化学习的动作选择中,探索与利用平衡的问题(exploit and explore)。简单来讲,我们每次选择greedy action,就可以看成是一次利用,这里的利用是指利用现有关于各个动作评估价值的信息。简单来讲,利用就是指,基于已有的信息,我们选择评估价值最大的动作。探索则是指我们选择non-greedy action,其主要目的在于寻找潜在的评估价值更高的动作。我们可以看到,“利用”可以找到最大的一个时间步长内的期望奖励。但是,探索有助于找到更高的在一段时间内的奖励。那么,这里就涉及到了一个利用与探索的平衡问题。

 

针对于利用-开发平衡的问题,我们介绍一种$\epsilon-greedy$算法。在该算法中,会有$\epsilon$的概率随机选择动作,这样就会造成每种动作都有被选到的可能。可以看到$\epsilon-greedy$这种算法就是在强制在学习过程中必须完成探索。10摇臂的例子,不细说了。

 

之前,我们估算动作价值时候是使用sampleaverages of observed rewards。现在,我们来思考一下这个均值应该如何更加简洁的计算。为了表达简便,我们只考虑一个动作。例如,在下面这个公式:

我们现在采用sample averagemethod来对动作进行评估价值。我们使用$Q_{n}$来表示对于该动作的估计价值当该动作被选择$n-1$次之后。计算机在计算$Q_{n}$的时候,可以采用一种简单的方法,即将每一个奖励都存起来,当需要计算估计价值时候,就调用。这样做的坏处是会占用大量的存储空间。因此,作者设计了递增的方法,使用$Q_{n}$和$R_{n}$就能够计算$Q_{n+1}$,公式推导如下图所示:

强化学习导论笔记:多臂赌博机问题(初稿)_第1张图片

基于以上推导,作者总结了这个问题对应的算法如下:

强化学习导论笔记:多臂赌博机问题(初稿)_第2张图片

进而,总结出了一个公式,这个公式将贯穿全书:

这个公式中,表达式Target-OldEstimate代表的是估值的错误。此外,stepsize会随着时间变化。

 

sample-average method的估值方法适合稳态问题,即每个动作的奖励是恒定不变的,不是一个概率分布。然而,在一些非稳态的问题中,即动作的奖励满足某种分布,在估值时,考虑给与最近的奖励更多的权重。常见的做法是将stepsize变成一个常数,如下图公式所示:

强化学习导论笔记:多臂赌博机问题(初稿)_第3张图片

注意在公式中,,就好像给每个动作都分了一个权值,时刻n的权值最大(因为$1-\alpha$小于1,)。最终,距离时刻n+1越远的动作,对于时刻n+1的动过估值的影响就越小。

 

接下来是讨论初始值的问题。这部分其实也没什么好讲的,主要是阐述初始值选择的不同对结果会造成影响。这里的初始值就是这上面公式中的$Q_{1}$。书中是将初始值为0和5进行对比,当初始值为5的时候,探索过程会被触发。这是因为当选择一个估值为5的动作时候,所得奖励小于5,造成学习者转而选择其他动作,最终,所有动作都会被选择一遍。

 

(未完待续)

 

 

 

你可能感兴趣的:(强化学习:从入门,到放弃)