写在前面:

纯小白入门,真的不想再手抄了!用知乎作为媒介做笔记,笔记对应的视频课在经验回放 Experience Replay (价值学习高级技巧)

一、回顾深度Q网络和时序差分算法(Revisiting DQN and TD Learning)1)Deep Q Network(DQN)

DQN采用价值网络Q(s,a;w)来近似最优动作价值函数Q*(s,a)

选取优质经验公司怎么说_选取优质经验公司的标准_优质公司如何选取经验

2)TD Learning

我们通常使用TD算法来训练DQN,这里我们回顾一下TD算法的步骤:

①Agent在t时刻观测到一个状态st并做出动作at

②Agent与环境交互获得了一个新的状态st+1并且获得了一个奖励rt

③此时,我们得到了TD Target yt

④继而写出TD error δt

我们的目标是让qt接近yt,即使TD error δt尽量的小

优质公司如何选取经验_选取优质经验公司的标准_选取优质经验公司怎么说

因此TD算法就是寻找一个神经网络参数w使损失函数(Loss Function)L(w)尽可能的小

⑤采用梯度下降来使wt不断逼近w*

选取优质经验公司怎么说_选取优质经验公司的标准_优质公司如何选取经验

(st,at,rt,st+1)是一个四元组,这是一个transition,可以认为是一条训练数据,传统算法在使用完该训练数据后就把它丢掉,不再使用,这种对于DQN的训练效果并不好。

二、为什么要使用经验回放(Why use the Experience Replay)

其实,关于讨论为什么要使用经验回放,其实就是在讨论不使用经验回放会有什么缺点,以及使用了经验回放有什么有点。

1)缺点一:浪费经验(Shortcoming 1:Watse of Experience)

传统的TD算法每次仅使用一个transition,使用完后就丢掉,不再使用,这会造成浪费

选取优质经验公司怎么说_选取优质经验公司的标准_优质公司如何选取经验

2)缺点二:关联性更新(Shortcoming 2:Correlated Updates)

传统TD算法会按照顺序使用transition(st,at,rt,st+1),前后两条transition之间有很强的关联性,即st和st+1非常接近,实验表明这并不利于把DQN训练的很好。

选取优质经验公司怎么说_优质公司如何选取经验_选取优质经验公司的标准

三、经验回放(Experience Replay)1)回放缓冲区(Replay Buffer)

我们在使用完一个transition时,会把一个transition放入一个队列里,这个队列被称之为回放缓冲区(Replay Buffer),它的容量是一个超参数(Hyper Parameter)n,Replay Buffer可以存储n条transitions。

优质公司如何选取经验_选取优质经验公司怎么说_选取优质经验公司的标准

如果Replay Buffer满了,那么新来的transition会替代老的transition

选取优质经验公司的标准_优质公司如何选取经验_选取优质经验公司怎么说

2)TD算法中经验回放(TD with Experience Replay)

我们通过找到神经网络参数w来最小化损失函数Loss Function。

我们是用随机梯度下降(Stochastic Gradient Descent SGD)来最小化损失函数Loss Function:从buffer中随机抽取一个transition(si,ai,ri,si+1),然后计算TD error δi,再算出随机梯度(Stochastic Gradient)gi,使用随机梯度下降(SGD)来调整神经网络参数w。

优质公司如何选取经验_选取优质经验公司的标准_选取优质经验公司怎么说

值得一提的是,实践中,通常使用mini-batch SGD,即每次抽取多个transitions,算出多个随机梯度,利用这多个随机梯度的平均来更新神经网络参数w。

3)经验回放的优势(Benefits of Experience Replay)

①打破了经验的相关性

②重复利用过去的经验

选取优质经验公司怎么说_优质公司如何选取经验_选取优质经验公司的标准

四、优先经验回放(Prioritized Experience Replay)1)基础思想(Basic Idea)

对于Agent而言,并不是所有的transition都是同等重要的。例如在超级玛丽游戏中,左侧的普通关卡和右侧的boss关卡,它们的重要性就不一样:普通关卡很常见,而boss关卡需要通过很多普通关卡后才能进行。因此,我们必须让Agent珍惜数量更少的boss关卡,即让Agent充分利用boss关卡的这一经验。

选取优质经验公司的标准_选取优质经验公司怎么说_优质公司如何选取经验

实际训练中,我们怎么样让Agent知道哪个transition是重要的呢?

可以使用TD error的L1范式,即|δt|来判断它的重要。|δt|越大,就说明transition就越重要,应该给这个transition更高的优先级。

优质公司如何选取经验_选取优质经验公司的标准_选取优质经验公司怎么说

解释一下:训练出的DQN对于数量较少的场景不熟悉,所以预测就会偏离TD Target,因此产生的TD error就比较大,即|δt|就大。正因为DQN不熟悉数量较少的场景,所以要让DQN给这些场景更高的优先级,让它更好的应对这样的场景。

2)核心想法(Core Idea)

优先经验回放(Prioritized Experience Replay)的核心在于:使用非均匀抽样代替均匀抽样。这里有两种抽样方式:

①抽样概率pt正比于|δt|+ε

其中,ε是一个很小的数,避免抽样概率pt等于0

②对|δt|排序

|δt|越大越靠前,|δt|越小越靠后

选取优质经验公司怎么说_优质公司如何选取经验_选取优质经验公司的标准

两种方法的原理都是一样的:|δt|越大,就抽样概率pt就越大。

3)调整学习率(Scaling Learning Rate)

TD算法采用SGD来更新神经网络参数w,α是学习率。

如果做均匀抽样,那么所有的transitions的学习率α都相同;如果做非均匀抽样,那么就要根据每个transition的重要性来调整学习率。

选取优质经验公司的标准_优质公司如何选取经验_选取优质经验公司怎么说

如果一个transition有一个较大的抽样概率pt,那么对这个transition的学习率就应该调小,可以采用如下圈出的方法来自适应调整学习率的因子:如果pt很大,那么学习率就会变小

选取优质经验公司的标准_优质公司如何选取经验_选取优质经验公司怎么说

4)更新TD Error(Update TD Error)

为了做优先经验回放(PER),我们要对每一个transition标记上TD error δt。δt决定了这条transition的重要性,决定了它被抽样的概率。

如果一个transition刚刚被收集到,我们并不知道它的δt,那么我们就直接把它的δt设置为最大值,让它有最高的优先级。

每次从buffer中抽取一个transition,都要对它的δt进行一次更新

选取优质经验公司怎么说_选取优质经验公司的标准_优质公司如何选取经验

五、总结(Summary)

相比于传统的经验回放(ER),优先经验回放(PER)在每个transition中标注了δt,并根据δt的不同来确定不同的抽样概率和学习率,从而达到非均匀抽样的效果。

直接附图:

选取优质经验公司的标准_优质公司如何选取经验_选取优质经验公司怎么说

个人理解,欢迎RL大佬指正。

我相信好事多磨,作为一个准研一,一定能尽快发文!


本文由转载于互联网,如有侵权请联系删除!