强化学习——多臂赌博机问题

强化学习区别于其他类型的学习,它使用训练数据不仅能够产生正确的行为指令,并且能够评价该行为。由此产生了显示搜索有利行为的主动探索需求。纯评价是反馈指明了行为值(对于行为收益的评估),而不是单纯的行为好坏性评价。另一方面,纯指示型反馈则指明应该采取的正确行为,独立于实际采取的行动。这种反馈基于监督式学习,他包含了大量的模式匹配、人工神经网络和系统识别。在这种纯粹的形式下,这两种反馈是完全不同的:评价式反馈依赖于所采取的动作,而指示型反馈则独立于实际采取的动作。

 

在此我们研究增强学习在简化场景下的评价方面,所谓简化场景就是说它不涉及多个场景的学习,这种非关联场景已经有许多相关工作涉及到评价式反馈,而且它避免了复杂的完全增强学习问题。学习这些例子有助于我们理解评价式反馈以及与之相区别的指示型反馈。

 

我们将探索的这种特殊的非关联性评价式反馈问题是k-armed banditproblem的简化版本。我们用多臂赌博机问题来引出后续章节中药介绍的完全增强学习的基本方法。

 

多臂赌博机问题介绍


考虑以下问题:你重复面对着K个不同的选项或者说是动作,在每个动作选择之后,你会从固定的概率分布中得到相应得动作数值奖励。你的目标是在一段时间内最大化期望总奖赏。比如,超过1000次动作选择或者时间步。这就是最初的多臂赌博机问题。

 

K-臂赌博机问题中,每个动作的选择都有一个期望奖赏或者平均奖赏。我们用At表示在时间t采取的动作.与之对应的奖赏表示为Rt.而任意一个动作a的值表示为q*(a), q*(a)是选择a的期望奖赏。


               q(a)=E[Rt|At=a]


在此,我们假设不知道每个动作的真实值,虽然你可以估计其值,我们用Qt(a)表示在时间t下采取动作a的值,Qt(a)是一个实验值,服从一定的概率分布。我们需要看到的效果是Qt(a)收敛于q*(a),即Qt(a)≈q(a)


探索(exploration VS 利用(exploitation


贪婪动作(greedy action:在已有的动作估计值中,在任意一个时间不长中必定至少存在一个最佳动作,这个最佳动作具有最大的估计值,选择估计值最大的动作便是贪婪动作。

 

利用(exploit):根据当前的动作值集合,选择贪婪动作便是利用。

 

探索(explore:选择非贪婪动作。

 

利用在具体的时间不长中会获得一个最大的期望奖赏值(一个动作的奖赏值最大),但探索在长期的运作中或许能产生更好的总奖赏。所以强化学习的问题之一就是平衡探索和利用以获取最大的总奖赏

 

行为值估计法


对行为值的估计是为了更好的选择行为。行为的值为每次执行该行为所得奖励的期望。因此可以用t时刻前行为已得到的奖励作为行为值的估计,即:

上式中如果分母为0,则Qt(a)0。当试验次数接近无穷时,Qt(a)将收敛于q(a)这种方法称为样本平均(sample-average),当然,这只是估计行为值得一种方法,但并不是最好的一种。并在t 时刻选择行为时,使用贪心策略选择行为值最大的行为,即


                                                      At = arg max Qt(a)


贪心算法:上式描述了贪心算法,即每次选择具有最大值的行为。这种方法具有一定的缺陷,即只有利用并不探索,在某种程度上来说,贪心算法可以得到立即奖赏最大值,但从长远角度来看,它并不一定能得到最大的奖赏总值。由此产生了ε-greedy方法:在大多数情况下选择贪婪动作,而在ε概率下从所有的动作中等概率选择(所有包括贪心动作也包括非贪心动作,或许有的资料上除去了贪心动作,但在笔者的参考资料上是所有的动作)。ε-greedy方法的一个优势在于它能在有限的时间内更行行为的估计值,已达到Qt(a)收敛于q(a)的效果。

 


十臂测试平台(实例)


 

为了系统的评估贪心算法和ε贪心算法的有效性。我们做了一个恰当的实验:

设定k-armed banditk=10,并且随机运行2000次。

 

在每个赌博机问题中,动作值(action value)服从期望为0,方差为1的高斯分布。当一个具体的学习方法应用于在时间步t选择动作问题上时,实际奖赏Rt服从期望q*(At)方差1的正态分布。如图2.1所示,我们把这种实验称为十臂测试平台。

                                                                    (2.1)

在以上数据的基础上,在十臂赌博机基础上考虑一下三种情况来做一个实验:贪心算法、ε-贪心算法(ε=0.1)和ε-贪心算法(ε-0.01)其结果如下:

 

由图我们可以得到结论表示:短期内,贪婪算法显然更占优势,但从长远来看,适当的探索对我们更有利。

 

增量实现


目前我们所讨论的动作值方法中,所有估计的动作值都是所观察到的样本平均值。现在我们把问题焦点转为怎样使用更有效的计算方法计算出这些平均值,特别是利用连续记忆和持续时间步长计算。

 

为了简化我们所关注的单个动作,我么用Ri表示第i个动作选择之后得到的奖赏值。用Qn表示选择n-1次的动作值。简化如下:

  

               

显然,通过上式我们可以计算并记录任意时刻的奖赏估计值。但长期运作下,这对于计算机内存以及计算性能要求很高,并不明智。上式可化解如下:

          

这样就只需要记录n即可得到Qn+1。扩展到一般形式如下:

 

                                              NewEstimateOldEstimate +StepSize [ Target – OldEstimate ]

                                              Target-OldEstimate :估计差

                                              Target :前进的理想方向

 

追踪不稳定问题

 上述讨论的平均法适用于稳定的赌博机问题,而赌博机问题的奖赏分布不会随时间的变化而变化。但强化学习问题又通常是不稳定的,在这种情况下,最近的奖赏相比于前面的奖赏通常占有更重的比值。解决这类问题的通常方法是固定步长参数,令α为步长因子,α=

。则2.3式变为:

 

          

为了推导出步长因子与奖赏之间的权重关系,做如下变化:

     

       

步长因子在每一步中都会有变化,我们用 来表示步长因子,在n足够大的时候,能保证上式收敛于真实值。但这种收敛在所有的{序列中并不足以得到保证。随机逼近理论的一个知名结果给了我们保证上式收敛的条件:

             

第一个条件用于保证不长足够大最终克服任何初始条件或者随机的起伏。第二个条件保证了最终的步数变得足够小保证收敛。

 

注意在样本平均值的情况下两个收敛条件都要成立,即 。但对于固定步长参数的情况下却不是同时满足两个收敛条件,即。后者不满足第二个收敛条件这表明了估计值不会完全收敛于真实值但会不断变化影响最近的奖赏。正如我们刚所提到的,这种做法在不稳定的环境中是可信赖的,并且此类问题在强化学习中不稳定问题是很常见。因此,一系列的步长参数在上述两个收敛条件下往往会收敛得比较慢或者需要适当的调整以达到一个满意的收敛率。


优化初始值

 

目前我们讨论过的所有方法都在某种程度上依赖于初始动作值的估计,。在统计学中,这些方法在初值是估计的情况下结果是有偏差的。在样本平均方法中,只有在所有的动作都至少选择了一次之后这种偏差才会消失。但在使用到常量α的方法中,虽然这种偏差在时间步长增加的过程中会减弱,但这种偏差永恒存在。在实践中,这种偏差通常不是一个考虑问题甚至在某些时候这种偏差会很有帮助。坏处在于初始参数必须是由用户提供的一系列值集合,不然只能都初始化为0,而好处是它以一种简单的方式提供了一些奖赏可期望程度的先验知识。

                                


初始动作值也可以作为一个简单的鼓励探索方法。在下图中,优化方法在最开始的时候因为探索更多而表现的不是很好,但随着探索的减少最终它表现的更好。我们称这种鼓励探索的方法为优化初始值。但这种方式并不适用于不稳定问题。因为在不稳定情景中,情景(task)一旦变化,又会重新探索,优化初始值并不会所帮助。

 

置信上界选择


我们总是需要探索,因为动作值估计准确度的不确定性。贪心动作在目前的情况下看起来是最好的,但或许实际上一些其他的动作会更好。ε-greedy贪心动作选择面临着非贪心动作的选取,但这种选取很弱智,它只会等概率的选择所有动作,而不会根据动作的潜力值(成为最优动作的潜力)来选取。一种有效的方式便是通过动作的潜力来选择动作:

 

   

 

置信上界选择核心思想是平方根是衡量动作值估计的准确度或方差。因此,数量上最大化可能是动作a值的真实值,而c决定了置信指数。一方面,每次选择a动作都会使得不确定性减少:Nt(a)增加,分母增大,总函数值减少。另一方面,每次选择a以外的动作,时间t增大,Nt(a)不会增大,不确定性则增大。而使用自然对数的原因是为了随时间的增加让增长率变小一点,但不会有上界。所有的动作都会被选择到,但是针对估计值低的动作,或者是被选择平凡的动作,会降低其选择频率。

 

                             


 梯度赌博算法

 

目前我们所讨论的方法都是估计动作值并且用这些估计的数值来选择动作。这确实是一种好的方法,但并不是最佳的方法。现在我们考虑学习对每个动作a的数值偏好,用表示,qi 值越大,动作被选择的机会越大。但这种偏好在奖赏方面并不会有什么解释,不同动作之间只有相对偏好重要。如果我们把动作偏好增加1000,那么对于选择动作的概率并没有什么影响,它是由soft-max分布决定:

                  

                

 

基于随机梯度上升的思想,有一个自然学习算法,在每一步中,选择动作之后会收到一个奖赏,通过如下函数更新动作偏好:

 

在十臂赌博机上运行梯度算法的结果图如下:

总结


这张我们介绍了几种简单的平衡探索和利用的方法,ε-greedy方法以ε概率随机选择动作,UCB方法选择确定动作但同时UCB又巧妙地设计了在每一步倾向于选择那些收到样本更少的动作进行探索。梯度赌博算法估计的不是动作值,而是动作偏好,更加倾向于选择统一分级的动作,而其分布概率方法则采用了soft-max概率分布方法。乐观初始值方法比贪心算法更加显著的进行探索。但很多人会产生一个疑问:这些方法中那个方法最好。我们在此通过parameter study 图来给出解答:


在方法的选择中我们不仅应该评估其在最优参数下的表现,还要看其对参数的敏感度。所有的这些算法对参数都不敏感,参数在一个数量级内变化时这些算法表现都很好,但总的来说,UCB表现最佳。

 

尽管本章提出的这些简单的方法可能是我们目前所能做到的最好的方法,但是他们离满意地解决探索与利用问题还有非常大的距离。目前在平衡和探索方面做的比较好的是贝叶斯方法,在贝叶斯方法中,我们甚至可以计算出探索与利用之间的平衡。感兴趣的读者可以自行研究。

                  

参考:Reinforcement Learning:An introduction       ——Richard S.Sutton and Andrew G.Barto
代码实现网址: 点击打开链接


 



 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值