【强化学习】多臂老虎机

简介

强化学习与机器学习最大的不同,在于前者的训练信号是用来评估给定动作的好坏的,而不是通过给出正确动作范例来进行直接的指导。“评估性反馈”,表明当前采取的动作的好坏程度,但无法确定最好和最坏。“指导性反馈”表示应该选择的正确动作是什么,这是监督学习的基本方式,被广泛用于模式分类、人工神经网络等。

k臂老虎机问题

假设要重复地在k个选项中进行选择。每次做出选择之后,都会得到一定数值的收益,收益值由所选择的动作的平稳概率分布产生。每一次选择相当于拉动老虎机的一个操纵杆,通过多次的重复动作选择,你要学会将动作集中在最好的操作杆上,从而最大化你的奖金。
在这里插入图片描述
在这个问题中,每个动作被选择时都有一个期望或者平均收益,可以称之为动作的“价值”,收益和价值是不一样的,收益一般被认为是短期的,而价值是长期的。假设在某时刻t选择的动作记作 A t A_t At,对应的收益记作 R t R_t Rt。任一动作 a a a对应的价值,记作 q ∗ ( a ) q_*(a) q(a),则给定动作 a a a时,收益的期望是:
在这里插入图片描述

假设 R t R_t Rt未知,可以先做估计。将动作 a a a在时刻 t t t时的价值估计记作 Q t ( a ) Q_t(a) Qt(a),我们希望它接近 q ∗ ( a ) q_*(a) q(a)

如果持续对动作的价值进行估计,那么在任一时刻都会至少有一个动作的估计价值是最高的,我们将这些对应最高估计价值的动作称为贪心的动作。当选择了这些动作时,我们称为“开发”,否则,称为“探索”。为了获得大量的收益,强化学习智能体一定会喜欢那些在过去为它有效产生过收益的动作。但为了发现高收益动作,往往需要尝试为选择过的动作。所谓“开发”已有的经验的同时,进行“探索”。但是我们应该“探索”还是“开发”?这点取决于我们得到的函数估计、不确定性和剩余时刻的精确数值。

动作-价值方法

动作-价值方法,指的是使用价值的估计进行动作的选择。一种自然的方式是通过计算实际收益的平均值来估计动作的价值。
在这里插入图片描述
红色框部分的符号表示如果 A i = a A_i=a Ai=a为真,值为1,反之为0。
分子: t t t时刻前通过执行动作 a a a得到的收益总和。
分母: t t t时刻前执行动作 a a a的次数。
价值函数定义完之后,就需要定义如何根据价值函数选择动作,最简单的方法是选择具有最高估计值的动作,即“贪心动作”。
在这里插入图片描述
这种方法利用当前知识来最大化眼前的收益,这种方法根本不花时间去尝试那些劣质动作。贪心策略的一个简单替代策略是大部分时间都表现得贪心,但偶尔(比如以一个很小的概率ε)做出其他选择(等概率的),这种方法称为ε-贪心方法。这个方法的好处是,如果时刻无限长,则每一个动作都会被无限次采样,从而确保所有的 Q t ( a ) Q_t(a) Qt(a)都能收敛到 q ∗ ( a ) q_*(a) q(a)。也意味着选择最优动作的概率会收敛到大于1-ε。

10臂测试平台

在这里插入图片描述
假设共有10个动作,其动作收益期望 q ∗ ( 1 ) , q ∗ ( 2 ) , . . . , q ∗ ( 10 ) q_*(1),q_*(2),...,q_*(10) q(1),q(2),...,q(10)由均值为0,方差为1的正态分布生成,每个动作的实际以各自的收益期望为均值,1为方差的正态分布生成,符合上图的灰色部分的数据分布。

如下图所示。
在这里插入图片描述
在一个10臂测试平台上比较上述的贪心方法和两种ε贪心方法,贪心方法表现最差,因为它陷入了局部最优解。上图的下半部分也显示了贪心方法只在大约三分之一的任务中找到最优的动作,表明了贪心方法一直局限无法跳出来寻找最优动作。ε-贪心方法会表现得更好。ε=0.1的情况下探索的更多,所以它比ε=0.01更早发现最优解,但从趋势来看,ε=0.01最终会超越ε=0.1。

定性来看,如果动作收益的分布方差更大,说明收益的噪声更多,为了找到最优解,则需要更多的试探(试探),此时ε-贪心方法会比贪心方法好很多,方差为0,那么贪心方法在尝试一次后便能找到最优解。

增量式实现

前面讨论的动作-价值方法都把动作价值作为观测的收益的样本均值来估计,下面讨论如何在保持常数级的内存需求和常数级的单时刻计算量。假设 R i R_i Ri表示这一动作被选择i次后获得的收益, Q n Q_n Qn表示被选择n-1次后它估计的动作价值,可以简单写作:
在这里插入图片描述
但是这种简明的实现需要维护所有这些收益,然后每次估计价值时都需要进行计算。随着已知的收益越来越多,内存和计算量会随着时间增长,每增长一次收益就需要更多的内存存储和计算资源。所以可改成:
在这里插入图片描述
使用这个式子对于每一个新的收益,只需要存储 Q n Q_n Qn和n。表达式 R n − Q n R_n-Q_n RnQn是估计值的误差。误差会随着向“目标”(Target)靠近的每一步而减少。虽然“目标”可能充满噪声,但我们还是假设“目标”会告诉我们可行的方向。一个完整使用增量式计算的样本均值和ε-贪心动作选择的赌博机问题算法的伪代码如下所示,bandit(a)表示接受一个动作并且返回一个对应的收益。
在这里插入图片描述

跟踪一个非平稳问题

对于收益的概率分布不随着时间变化的赌博机问题,采取平均方法是可以的,但如果赌博机的收益概率随时间变化,该方法就不合适。如果我们遇到非平稳的强化学习问题。在这种情形下,给近期的收益赋予比过去很久的收益更高的权值可能会更好。例如用于更新n-1个过去的收益的均值 Q n Q_n Qn的规则改为
在这里插入图片描述
这里的 a a a是固定步长, a a a的区间是(0,1],这使得 Q n + 1 Q_{n+1} Qn+1成为对过去的收益和初始的估计Q1的加权平均
在这里插入图片描述
上面的式子中,首先有下面的结论
在这里插入图片描述
赋给收益 R i R_i Ri的权值依赖于它被观测到的当前时刻与具体时刻的差,即 n − i n-i ni 1 − a 1-a 1a小于1,因此赋予给 R i R_i Ri的权值会随着相隔次数的增加而递减,也就是离现在越远的收益造成的影响越小。所以这个方法也称为“指数近因加权平均”。

乐观初始值

以上讨论的方法都一定程度上依赖于初始动作值 Q 1 ( a ) Q_1(a) Q1(a)的选择。如下图所示。
在这里插入图片描述
假设初始值从一开始的0,设为+5,+5是乐观的估计,但是这种估计最中还是会被动作-价值方法去探索,因为无论是哪一种动作被选,收益都比最开始的估计值要小,从而转向另一个动作。所以可以看到它的曲线一开始比较不稳定,因为它需要多迭代几次。

基于置信度上界的动作选择

因为对动作-价值的估计总会存在不确定性,所以探索是必须的。贪心动作虽然在当前时刻看起来最好,但实际上其他一些动作可能从长远看更好。ε-贪心算法可能会盲目地选择非贪心的动作,但是最好是能根据动作的潜力来选择。这就要考虑它们的估计有多接近最大值,以及这些估计的不确定性。可以使用下面这个公式选择动作
在这里插入图片描述
l n t ln t lnt表示时刻t的自然对数, N t ( n ) N_t(n) Nt(n)表示在时刻t之前动作 a a a被选择的次数。c是一个大于0的数,它控制试探的程度。如果 N t ( a ) = 0 N_t(a)=0 Nt(a)=0,则a就被认为是满足最大化条件的动作。
基于置信度上界(upper confidence bound,UCB)的动作选择的思想是,平方根项是对a动作值估计的不确定性或方差的度量。
在这里插入图片描述
上图展示了在10臂测试平台上采用UCB算法的结果,并且表现良好,但是和ε-贪心算法相比,它更难推广到更一般的强化学习问题。

梯度赌博机算法

除了可以通过评估动作价值,继而使用估计值选择动作之外。还可以考虑针对每一个动作a,学习一个数值化的偏好函数 H t ( a ) H_t(a) Ht(a)。偏好函数越大,动作就越频繁地被选择,但偏好函数的概念并不是从“收益”的意义上提出的。只有一个动作对另一动作的相对偏好才是重要的。如果我们给每一个动作的偏好函数都加上1000,那么按照如下softmax分布确定的动作概率没有影响
在这里插入图片描述
π t ( a ) π_t(a) πt(a)是一个新的定义,用来表示动作a在时刻t被选择的概率。所有偏好函数的初始值都是一样的,例如对于所有的 a a a,其偏好函数都是0。所以每个动作被选择的概率是相同的。

基于梯度上升的思想,在每个步骤,在选择动作 A t A_t At并获得收益 R t R_t Rt之后,偏好函数将会按如下方式更新。
在这里插入图片描述
平均收益作为一个基准项,如果收益高于它,那么在未来选择动作At的概率就会增加,反之概率就会降低。未选择的动作被选择的概率上升。
在这里插入图片描述
上图是含基准项与不含收益基准项的梯度赌博机算法在10臂测试平台上的平均表现。它们真实的期望收益是按照平均值为+4而不是0的正态分布来选择。所有收益的这种变化对梯度赌博机算法没有影响,因为收益基准项让它可以马上适应新的收益水平。如果没有基准项,那么性能将显著降低。

关联搜索(上下文相关的赌博机)

前面所述皆为非关联任务,对它们来说,没有必要将不同的动作与不同的情境联系起来。当任务是平稳的时候,学习器会试图寻找一个最佳的动作,当任务是非平稳的时候,最佳动作会随着时间的变化而改变,此时它会试着去追踪最佳动作。然而,在一般的强化学习任务中,往往有不止一种情境,它们的目标是学习一种策略:一个从特定情境到最优动作的映射。

假设有一系列不同的k臂赌博机任务,每一步你都要随机地面对其中一个。因此,赌博机任务在每一步都是随机变化的。从观察者的角度来看,这是一个单一的,非平稳的k臂赌博机任务,因为真正的动作价值是每步随机变化的。你可以尝试使用前面描述的处理非平稳情况的方法,但是除非真正的动作价值的改变是非常缓慢,否则这些方法不会有很好的效果。

假设老虎机的外观颜色与它的动作价值集合一一对应,动作价值集合改变的时候,颜色也会改变。现在开始学习一些任务的策略,例如,用你所看到的颜色作为信号,把每个任务和该任务下最优的动作关联起来,比如,如果为红色,则选择1号臂,如果为绿色,则选择2号

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值