Reinforcement Learning:An introduction读书笔记-Chapter 2

来源:互联网 发布:上瘾网络剧拍摄花絮5 编辑:程序博客网 时间:2024/06/01 07:54

  • Chapter 2 Multi-arm Bandits
    • 1 A k-Armed Bandit Problem
        • k-armed bandit problem 是什么
        • 问题表示
    • 2 Action-Value Methods
      • sample-average
      • varepsilon-greedy methods
      • Example
    • 3 Incremental Implementation
    • 4 Tracking a Nonstationary Problem
    • 5 Optimistic Initial Values
    • 6 Upper-Confidence Bound Action Selection
    • 7 Gradient Bandit Algorithms
    • 8 Associative SearchContextual Bandits

Chapter 2 Multi-arm Bandits

评价性反馈(evaluative feedback):知道这个action有多好,但不知道是不是最好的。
指导性反馈(instructive feedback):已知正确的action是什么,和现在采取的action无关。

本章主要内容是增强学习简化的evaluate,即只在一个状态下的学习,也就是没有连接性的(nonassociative)。

2.1 A k-Armed Bandit Problem

k-armed bandit problem 是什么?

可以类比成一个自动售货机,这个售货机有k个拉杆,也就是有k种选择,每种选择都有一定的回报,且这些回报都是满足一个稳定的概率分布的。问题的目的就是要尽可能最大化总的回报(比如1000次选择后的回报)

问题表示

q(a) 是某个action a被选择时reward的期望,也就是action的value。

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

如果value是知道的,那么我们只要选择大value的action就可以了。如果我们不知道确切的value,那么就要让Qt(a)q(a)(Qt(a)是我们预估的action a 的期望。)

这时候就涉及到了exploration和exploitation矛盾的问题,尽管在每次预估的时候都会有一个value最大的action,这个action是greedy action,选择这个action (exploitation)满足了我们最大化回报的目的,但是我们并不知道其他的action会不会有更大的回报,选择其他的action(exploration)可能会造成短期的回报减少,但当找到回报更大的action时,我们的长期回报就会增加。

2.2 Action-Value Methods

sample-average

value Qt(a) 即为action a 被选中时reward的总和除以action a被选中的次数。

Qt(a)t1i=1Ri1Ai=at1i=11Ai=a

ε-greedy methods

在做选择时最简单的方法就是选value最大的action

AtargmaxaQt(a)

但是因为想做一定的exploration,就可以在大部分时间选取greedy-action,但是有很小的几率ε在所有action中随机选择。

这种做法的优势在于,随着时间的延长Qt(a)会逐渐收敛于q(a),最优的action的Q会逐渐收敛至大于1-ε(应该收敛到了1-ε+εn(n是action的总数)),但是效率并不一定高。

Example

该节举了一个10-armed bandit的例子,假设10个action value是从高斯分布(0,1)中选出的,真正的回报又是满足高斯分布(q(At),1),比较greedy method和两个ε-greedy method的表现,ε分别为0.1,0.01。

最后的结果是greedy method虽然在开始增长较快,但最后表现最差;ε为0.1的算法增长比ε为0.01的算法增长快,但是取到最优action的概率不会超过91%,其最后的表现不如ε为0.01的算法

ε的取值与很多因素有关,比如例子中的方差,如果reward的方差较大则偏向取ε较大的算法,反之相反,这是因为若reward的变化不大,greedy算法在第一次就能知道哪个action的value较大。

但随着学习时间及策略的变化,k-armed bandit的任务情况也在不断变化,所以哪怕reward的方差很小,也不能保证在变化中其他action的value会不会超过已知的最优action,所以exploration都是需要的。

2.3 Incremental Implementation

如何使得样本平均值可以更有效的计算出来(常数的内存,每步一次计算)

Qn+1=Qn+1n[RnQn]

范式:
NewEstimateOldEstimate+StepSize[TargetOldEstimate]

这里的StepSize参数就是1n,之后会用ααt(a)来表示

2.4 Tracking a Nonstationary Problem

在不稳定的情况下,让近期的reward占更大比重是有道理的。比较好的解决方法是将步长(α)设为一个常数。

Qn+1Qn+α[RnQn]=αRn+(1α)Qn=αRn+(1α)[αRn1+(1α)Qn1]=αRn+(1α)αRn1+(1α)2Qn1=αRn+(1α)αRn1+(1α)2αRn2+...+(1α)n1αR1+(1α)nQ1=(1α)nQ1+i=1n(1α)niαRi

由于系数和(1α)n+ni=1α(1α)ni=1所以叫做weighted average。

从式子中我们可以看出由于1α1,说明越早的reward的影响力在不断减小,这种方法也叫exponential,recency-weighted average。

我们还可以在每一步时都改变参数α,为了让最后的value收敛,序列αn(a)必须要满足以下条件。

n=1αn(a)=

这是为了让步长足够大避开一开始的一些波动与干扰,同时还要满足
n=1α2n(a)<

这是为了让步长足够小以便于收敛。

α是常数的时候不满足后面的条件所以它是不收敛的。这样的步长是不稳定状态下所需要的。

2.5 Optimistic Initial Values

之前讨论的所有方法都是与最开始的action-value有关(Q1(a))。对于sample-average,Q1(a)的影响要在所有a都被取到时才被消除,而对于α为常数的weighted average,由于Qn+1=(1α)nQ1+ni=1(1α)niαRi,所以始终与Q1(即所有Q1(a)有关)。

初始的action-value值还可以鼓励agent进行exploration。比如将10-armed bandit问题的初始值设为5,则无论选择哪个action,reward都少于初始值,也就是Qt(a)在减小,所以所有的action都会被尝试。这种方法被称为optimistic initial values,这个方法在稳定的情况下比较有效。

2.6 Upper-Confidence Bound Action Selection

如果选择的时候更偏向于有潜力成为最优的non-greedy actions会更好,将它们的估值与最大值的差距以及它们估值的不确定性都考虑进来。

Atarg maxa[Qt(a)+clogtNt(a)]

其中logt为t的自然对数,Nt(a)是在t前a被选择的次数,c>0控制着exploration的程度。如果Nt(a)=0,a会被认为是取到最大值的action,称为upper confidence bound(UCB)。

其中平方根项为a value的不确定性或者说是方差。这整个项便是action a可能最大值的上限,c决定了可信度。每次某个action被选择了,那么其不确定性就会降低。相反,当t增加,但是Nt(a)不变其不确定性就会增大。对数的应用则是随着时间的增加,其增长会变小,但是无限的。所有actions都会被选择到,但是随着时间的增加value小的action被选择到的频率就会更小。

2.7 Gradient Bandit Algorithms

学会对于每个action a的偏好(preference)。只有相对偏好有用。下述式子中πt(a)是采取各个action的概率,Ht(a)是各action的preference

Pr{At=a}eHt(a)kb=1eHt(b)πt(a)

在每次选择了action At之后Ht(a)的更新如下
Ht+1(At)Ht+1(a)Ht(At)+α(RtR¯¯¯t)(1πt(At))Ht(a)α(RtR¯¯¯t)πt(a),aAt

其中α是步长,α>0

Gradient Bandit Algorithm事实上就是Stochastic Gradient Ascent,证明如下。

Stochastic Gradient Ascent:

Ht+1(a)E[Rt]Ht(a)+αE[Rt]Ht(a)//HH使Ebπt(b)q(b)

根据Stochastic Gradient Ascent的几条性质可以进行推导
E[Rt]Ht(a)=Ht(a)[bπt(b)q(b)]=bq(b)πt(b)Ht(a)//q(b)Ht(a)=b(q(b)Xt)πt(b)Ht(a)//Xtbaction1Ht(a)bπt(b)Ht(a)=0,Xtπt(b)Ht(a)=0.=bπt(b)(q(b)Xt)πt(b)Ht(a)/πt(b)=E[(q(At)Xt)πt(At)Ht(a)/πt(At)]=E[(RtR¯¯¯t)πt(At)Ht(a)/πt(At)]=E[(RtR¯¯¯t)πt(At)(1a=Atπt(a))/πt(At)]//1a=Ata=At10//πt(b)Ht(a)=πt(b)(1a=bπt(a))=E[(RtR¯¯¯t)(1a=Atπt(a))]//a=AtaAt

接着证明πt(b)Ht(a)=πt(b)(1a=bπt(a))

πt(b)Ht(a)=Ht(a)πt(b)=Ht(a)[eHt(b)kc=1eHt(c)]=eHt(b)Ht(a)kc=1eHt(c)eHt(b)kc=1eHt(c)Ht(a)(kc=1eHt(c))2=1a=beHt(a)kc=1eHt(c)eHt(b)eHt(a)(kc=1eHt(c))2//eHt(b)Ht(a)=eHt(b)Ht(b)Ht(b)Ht(a)a=beHt(a)0//kc=1eHt(c)Ht(a)c=aeHt(a)0eHt(a)=1a=beHt(b)kc=1eHt(c)eHt(b)eHt(a)(kc=1eHt(c))2=1a=bπt(b)πt(b)πt(a)=πt(b)(1a=bπt(a))

正因为如此,我们可以保证这个算法和stochastic gradient ascent一样是收敛的,至于baseline,选择什么数都不影响其收敛,但是会影响其收敛速度,选择Rt¯¯¯¯在大部分情况下都可以表现的比较好

2.8 Associative Search(Contextual Bandits)

本节主要讨论结合不同的action到不同的场景中去的做法。
Example:如果有几个不同的k-armed bandit task,在每一步都是随机的碰到其中的一个。在每次action value变化时你会得到变化的提示,比如在第一个机器上做选择时其显示为红色,第二个显示为绿色。这样你就可以选择在红色出现时选择最优的选择arm 1,而在绿色出现时改变策略。
这个问题介于k-armed bandit tasks和完全增强学习问题之间,如果其选择会影响到下一步那么就变成了一个完全增强学习问题。

阅读全文
0 0
原创粉丝点击