从Multi-arm Bandits问题分析 - RL进阶

【上一篇 强化学习(Reinforcement Learning, RL)初步介绍 】 【下一篇 有限马尔可夫决策过程(Finite Markov Decision Processes)

  RL与其他学习方法最大的区别在于它使用的训练信息是对actions的评价,而其他方法是给出正常的actions。这一次的教程就是通过一个具体的案例来对RL问题中的“evaluative aspect”进行介绍。

1、问题介绍:k-armed Bandit Problem

  Multi-armed bandit原本是从赌场中的多臂老虎机的场景中提取出来的数学模型,其中 arm 指的是老虎机(slot machine)的拉杆,bandit 是多个拉杆的集合,bandit=arm1,arm2,,armkbandit=arm1,arm2,……,armk。每个 bandit setting 对应一个回报函数(reward function),现在需要经过多次的尝试,来评估每个 bandit 的reward,这个问题的目标是如何最大化总的回报。 
  显然,在这个问题中一共包含 kk 个 actions,每个 action 都有一个期望的或者平均的 reward,称为是这个action的 valuevalue。记时间 tt 选择的行为为AtAt,其相对应的reward为RtRt,任意一个行为aa的value记为 q(a)q∗(a),因此,aa 期望的 reward 为: 

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

  显然,如果我们知道了每个 action 的 value,只有每次选择具有最大 value 的 action 就可以解决这个问题,这里令action  aa 在时间  tt  的估计 value 为  Qt(a)q(a)Qt(a)≈q∗(a) 。 
  如果在实验中,在当前时刻评估的value值最大的action就称为是 greedy actionsgreedy actions ,如果在下个时刻选择的是 greedy actions,那么这次选择就可以视为是 exploiting 当前已有的信息,相反如果在下个时刻选择的是 non-greedy actions,那么这次选择就可以视为是 exploring。下面将会介绍几种平衡 exploit 和 explore 的方法。

2、Action-Value Methods

  对一个行为 aa,最简单的评估方法就是用行为aa所返回的所有rewards进行平均,即: 

Q(a)sum of rewards when a taken prior to tnumber of times a taken prior to t=t1i=1RilAi=at1i=1lAi=aQ∗(a)≐sum of rewards when a taken prior to tnumber of times a taken prior to t=∑i=1t−1Ri⋅lAi=a∑i=1t−1lAi=a

其中, 
lpredicate={1,0,predicate is trueotherwiselpredicate={1,predicate is true0,otherwise

  若分母为0则令 Q(a)Q∗(a) 为一个默认的值。根据大数理论,当分母趋于无穷时,则  Qt(a)Qt(a)  趋近于  q(a)q∗(a) ,我们将这种估计action values的方法称为是  sampleaveragesample−average  方法。 
  最简单的策略就是每个时间t都选择当前的greedy actions,这种方法称为是 greedy action selection methodgreedy action selection method ,该方法的选择策略可以记为是: 
AtargmaxaQt(a)At≐argmaxaQt(a)

  可以看出,greedy action selection 每次都只会对当前的信息进行开发,而不会探索新的信息,对这种方法最简单的改进方式就是引入一个小的变量  εε ,每次选择actions时,以  1ε1−ε  的概率选择 greedy acitons,以  εε  的概率从所有actions中以相等的概率随机选择,这种方法称为是  εgreedy methodε−greedy method ,这种方法的优点在于在无限的时间下所有的 actions 都有机会被选择过,因此所有的  Qt(a)Qt(a)  都会趋近于  q(a)q∗(a)  。

3、Incremental Implementation(增量式实现)

  上一节介绍的方法是将所有的历史信息全部记录下来然后求平均,不仅耗费内存也浪费时间,这一节介绍的增量式的方法仅耗费固定大小的内存,并且每个时间都可以进行更新。 
  为了简化符合,这里只关注一个action,令 RiRi 代表第i次选择这个 action 获得的 reward,QnQn 代表这个action被选择了 n1n−1 次之后评估的 value 值,则有下面的等式成立: 


  上式中最后的更新规则可以写作是: 

NewEstimateOldEstimate+StepSize [TargetOldEstimate]NewEstimate←OldEstimate+StepSize [Target–OldEstimate]

  其中,表达式  [TargetOldEstimate][Target–OldEstimate]  是估计中的  errorerror  项,可以看出在增量式学习方法中的  StepSizeStepSize 项为  1/n1/n ,是随时间不断变化的,之后会用  αα  或  αt(a)αt(a)  来代表 step-size 参数。 
  算法的伪代码为: 


4、针对非固定的问题

  之前考虑的都是一个不变的环境,但如果bandit随时间不断变化该如何处理呢?这时有必要将当前的rewards赋予更高的权重,而过去的赋予较小的权重,最常用的实现方法就是使用一个固定的step-size参数,例如将上一节中的更新规则改为: 

Qn+1Qn+α[RnQn]Qn+1≐Qn+α[Rn−Qn]

  其中, α(0,1]α∈(0,1]  是个常数。对该式进行分解就会得到 


  因为 (1α)n+ni=1α(1α)ni=1(1−α)n+∑i=1nα(1−α)n−i=1, 因此可以将上式视为是一种加权平均。由于 1α<11−α<1,因此 ii 越大赋予 RiRi 的权重越大。通常将这种更新方式称作是 exponential, recencyweighted averageexponential, recency−weighted average

5、优化的初始值

  前面介绍的几种方法都与初始的action-value的评估值 Q1(a)Q1(a) 有关,在统计学方面这称为是“有偏的(biased)”。对于 sample-average 方法,这种 bias 在所有的 actions 都被最少选择过一次之后会消失;而对于具有常量 αα 的方法,这种 bias 是一直存在的。但是这种 bias 也不常常是有坏处的,也可以被利用起来,例如我们考虑 10-armed testbed 的问题,如果所有的初始值全部设为 00,第一个被随机选择的action只要回报不是00一定会成为其中的 greedy action,但如果所有的初始值全部设为55,若初始选择的action的回报小于55则它的估计值就会降低,从而促进算法进行explore的过程。

6、Upper-Confidence-Bound Action Selection

  在action选择过程中,greedy actions是当前认为最优的行为,但是最优的行为可能并非是它们,因此就需要exploration过程,εε-greedy action selection强制使non-greedy的行为也有机会被选择,但这并不是最优的exploration方式,最好的方式应该是将每个action的评估值和不确定性值均考虑在内,这种有效的选择规则为: 

Atargmaxa[Qt(a)+clogtNt(a)]At≐argmaxa[Qt(a)+clog⁡tNt(a)]

  其中  loglog  指的是自然对数, Nt(a)Nt(a)  指的是行为 aa 在时间 tt 已经被选择的次数,常数  c>0c>0  代表的是赋予exploration的权重。 
  这种选择方式称为是 upper confidence bound (UCB) action selectionupper confidence bound (UCB) action selection ,选择函数中的平方根项代表了对行为  aa  的不确定性,分子中对时间 tt 取自然对数是为了使分子的增长速度减慢。

参考文献 
[1] Reinforcement Learning: An Introduction, Richard S. Sutton and Andrew G. Barto 
[2] UCL Course on RL

猜你喜欢

转载自blog.csdn.net/hellocsz/article/details/80833470
RL
今日推荐