1. Experience Relay 经验回放
1.1. shortcomings of original algorithms
-
Waste of Experience
transition (st,at,rt,st+1)(s_t,a_t,r_t,s_{t+1})(st,at,rt,st+1),称从开始到结束所有的transition为经验,原始算法中每次使用一个transition后丢弃。
-
Correlated Updates
原始算法中,相邻transition具有相关性,实验证明这种相关性不利于训练。
1.2. Experience Relay
-
replay buffer:可储存最新的n个transition,n为超参数,通常设置在105−10610^5-10^6105−106之间。
-
TD with Experience Relay
-
目标函数:L(w)=1T∑t=1Tδt22L(w)=\frac{1}{T}\sum_{t=1}^T\frac{\delta_t^2}{2}L(w)=T1∑t=1T2δt2
-
Stochastic gradient descent (SGD)
每次从replay buffer中随机均匀抽取一个transition (s1,ai,ri,si+1)(s_1,a_i,r_i,s_{i+1})(s1,ai,ri,si+1);
计算TD error δi\delta_iδi;
随机梯度:gi=∂δi2/2∂w=δi⋅∂Q(Siai;w)∂wg_i=\frac{\partial \delta_i^2/2}{\partial w}=\delta_i·\frac{\partial Q(S_ia_i;w)}{\partial w}gi=∂w∂δi2/2=δi⋅∂w∂Q(Siai;w);
SDG:w←w−α⋅giw\leftarrow w-\alpha·g_iw←w−α⋅gi。
-
实际中常常随机抽取多个transition(一个batch),计算多个随机梯度,以平均值更新参数www。
-
打破了序列的相关性,可重复利用过去的经验。
-
1.3. Prioritized Experience Relay 优先经验回放
-
Basic Idea
不是所有transition都有相同的重要性。可以用TD error的值判断重要性,绝对值越大,说明网络越不熟悉该场景,其重要性越大。
-
Importance Sampling
使用非均匀抽样代替均匀抽样:
-
Option 1:抽样概率 pt∝∣δt∣+ϵp_t\propto|\delta_t|+\epsilonpt∝∣δt∣+ϵ(ϵ\epsilonϵ避免概率为0)
-
Option 2:抽样概率pt∝1rank(t)p_t\propto \frac{1}{rank(t)}pt∝rank(t)1
rank(t)rank(t)rank(t)为δt\delta_tδt的序号,δt\delta_tδt绝对值越大,序号就越小,抽样概率越大。
-
-
Scaling Learning Rate
-
非均匀抽样,不同transiton得到的概率不同,会导致DQN的预测有偏差,应相应调整学习率以抵消偏差。
-
SGD:w←w−α⋅ww\leftarrow w-\alpha·ww←w−α⋅w
-
将学习率α\alphaα乘以(n⋅pt)−β(n\cdot p_t)^{-\beta}(n⋅pt)−β,超参数β∈(0,1)\beta\in(0,1)β∈(0,1),起初较小,逐渐增大到1
对于均匀抽样,p1=p2⋅⋅⋅=pn=1n,n⋅t=1p_1=p_2···=p_n=\frac{1}{n},n\cdotp_t=1p1=p2⋅⋅⋅=pn=n1,n⋅t=1;
对于非均匀抽样,ptp_tpt越大,学习率越小。
-
-
Update TD Error
- 为每一条transition计算TD error δt\delta_tδt
- 对新收集到还未使用的transition,δt\delta_tδt未知,将其赋最大值,即拥有最高的优先级
- 训练DQN的同时更新δt\delta_tδt,权重也随之
2.Target Network & Double DQN
2.1. Bootstrapping 自举
在强化学习中,指用一个估算去更新同类的估算:“using an estimated value in the update step for the same knid of estimated value.”
TD算法中,使用一个transition更新参数www。TD target中使用到了st+1s_{t+1}st+1,说明为了更新DQN在ttt时刻的估计,需使用到DQN在t+1t+1t+1时刻的预测。
2.2. Problem of Overestimation
-
TD算法导致DQN高估行动价值action-value,原因:
-
Maximization:计算TD target时使用了最大化计算maxaQ(st+1,a;w)\max_a Q(s_{t+1},a;w)maxaQ(st+1,a;w),导致高估
-
Bootstrapping:用自己的估计更新自己,高估会一步步叠加(正反馈)
计算TD target时使用到了qt+1=maxaQ(st+1,a;w)q_{t+1}=\max_a Q(s_{t+1},a;w)qt+1=maxaQ(st+1,a;w),并使用其更新Q(st,at;w)Q(s_t,a_t;w)Q(st,at;w)。
如果DQN高估行动价值,则Q(st+1,at;w)Q(s_{t+1},a_t;w)Q(st+1,at;w)是高估的,maximization导致其进一步高估。
更新参数,导致被更新参数高估Q(st,at;w)Q(s_t,a_t;w)Q(st,at;w)。
-
-
Why is overestimation a shortcoming?
均匀高估不会影响决策,不均匀高估影响决策。由于每个二元组(st,at)(s_t,a_t)(st,at)在replay buffer中的概率不同,故高估的程度不同。
-
Solution:target network(解决bootstrapping),double DQN(解决maximization)
2.3. target network
target network: Q(s,a;w−)Q(s,a;w^-)Q(s,a;w−),与DQN网络Q(s,a;w)Q(s,a;w)Q(s,a;w)结构相同,参数不同。
使用Q(s,a;w)Q(s,a;w)Q(s,a;w)控制agent并收集经验transitions;
使用Q(s,a;w−)Q(s,a;w^-)Q(s,a;w−)计算TD target,yt=rt+γ⋅maxaQ(st+1,a;w−)y_t=r_t+\gamma·\max_a Q(s_{t+1},a;w^-)yt=rt+γ⋅maxaQ(st+1,a;w−)。
- 使用一个transition对www进行参数更新的过程:
- 观测得到transition st,at,rt,st+1s_t,a_t,r_t,s_{t+1}st,at,rt,st+1
- TD target: yt=rt+γ⋅maxaQ(st+1,a;w−)y_t=r_t+\gamma·\max_a Q(s_{t+1},a;w^-)yt=rt+γ⋅maxaQ(st+1,a;w−)
- TD error: δt=Q(st,at;w)−yt\delta_t=Q(s_t,a_t;w)-y_tδt=Q(st,at;w)−yt
- SGD: w←w−α⋅δt⋅∂Q(st,at;w)∂ww\leftarrow w-\alpha·\delta_t·\frac{\partial Q(s_t,a_t;w)}{\partial w}w←w−α⋅δt⋅∂w∂Q(st,at;w)
- Periodically update w−w^-w−
- Option1: w−←ww^-\leftarrow ww−←w
- Option2: w−←τ⋅w+(1−τ⋅w−)w^-\leftarrow \tau\cdot w+(1-\tau\cdot w^-)w−←τ⋅w+(1−τ⋅w−)
由于使用了另一个网络计算TD error,使用target network可以一定程度减小bootstrapping导致DQN高估的程度,但依然无法解决maximization导致的高估。同时,由于target network的参数依赖于DQN网络,故bootstrapping依然存在。
2.4. double DQN
-
计算TD target的方法:
DQN:
a∗=argmaxaQ(st+1,a;w)yt=rt+γ⋅Q(st+1,a∗;w) \begin{aligned} a^*&=\arg\max_a Q(s_{t+1},a;w) \\y_t&=r_t+\gamma\cdot Q(s_{t+1},a^*;w) \end{aligned} a∗yt=argamaxQ(st+1,a;w)=rt+γ⋅Q(st+1,a∗;w)
target network:
a∗=argmaxaQ(st+1,a;w−)yt=rt+γ⋅Q(st+1,a∗;w−) \begin{aligned} a^*&=\arg\max_a Q(s_{t+1},a;w^-) \\y_t&=r_t+\gamma\cdot Q(s_{t+1},a^*;w^-) \end{aligned} a∗yt=argamaxQ(st+1,a;w−)=rt+γ⋅Q(st+1,a∗;w−)
double DQN:
a∗=argmaxaQ(st+1,a;w)yt=rt+γ⋅Q(st+1,a∗;w−) \begin{aligned} a^*&=\arg\max_a Q(s_{t+1},a;w) \\y_t&=r_t+\gamma\cdot Q(s_{t+1},a^*;w^-) \end{aligned} a∗yt=argamaxQ(st+1,a;w)=rt+γ⋅Q(st+1,a∗;w−)
大幅提升性能,虽然不能彻底消除高估,但是高估不太严重。
-
Why does double DQN work better?
Selection using DQN: a∗=argmaxaQ(st+1,a;w)a^*=\arg\max_a Q(s_{t+1},a;w)a∗=argmaxaQ(st+1,a;w)
Evaluation using target network: yt=rt+γ⋅Q(st+1,a∗;w−)y_t=r_t+\gamma\cdot Q(s_{t+1},a^*;w^-)yt=rt+γ⋅Q(st+1,a∗;w−)
Q(st+1,a∗;w−)≤maxaQ(st+1,a;w−) Q(s_{t+1},a^*;w^-)\leq\max_aQ(s_{t+1},a;w^-) Q(st+1,a∗;w−)≤amaxQ(st+1,a;w−)
上式左侧Double DQN选择的a∗a^*a∗实际上不是QQQ值最大的动作,以部分避免高估。
3.Dueling Network
3.1. Advantage Function
-
Definations
Optimal action-value function: Q∗(s,a)=maxπQπ(s,a)Q^*(s,a)=\max_\pi Q_\pi(s,a)Q∗(s,a)=maxπQπ(s,a)
Optimal state-value function: V∗(s)=maxπVπ(s)V^*(s)=\max_\pi V_\pi(s)V∗(s)=maxπVπ(s)
Optimal advantage function(优势函数): A∗(s,a)=Q∗(s,a)−V∗(s)A^*(s,a)=Q^*(s,a)-V^*(s)A∗(s,a)=Q∗(s,a)−V∗(s)
-
Properties of Advantage Function
Theorem 1: V∗(s)=maxaQ∗(s,a)V^*(s)=\max_a Q^*(s,a)V∗(s)=maxaQ∗(s,a)
A∗(s,a)=Q∗(s,a)−V∗(s)maxaA∗(s,a)=maxaQ∗(s,a)−V∗(s)=0 \begin{aligned} A^*(s,a)&=Q^*(s,a)-V^*(s) \\\max_a A^*(s,a)&=\max_a Q^*(s,a)-V^*(s)=0 \end{aligned} A∗(s,a)amaxA∗(s,a)=Q∗(s,a)−V∗(s)=amaxQ∗(s,a)−V∗(s)=0
将进行如下变换:
A∗(s,a)=Q∗(s,a)−V∗(s)Q∗(s,a)=V∗(s)+A∗(s,a)−maxaA∗(s,a) \begin{aligned} A^*(s,a)&=Q^*(s,a)-V^*(s) \\Q^*(s,a)&=V^*(s)+A^*(s,a)-max_a A^*(s,a) \end{aligned} A∗(s,a)Q∗(s,a)=Q∗(s,a)−V∗(s)=V∗(s)+A∗(s,a)−maxaA∗(s,a)
Theorem 2: Q∗(s,a)=V∗(s)+A∗(s,a)−maxaA∗(s,a)Q^*(s,a)=V^*(s)+A^*(s,a)-max_a A^*(s,a)Q∗(s,a)=V∗(s)+A∗(s,a)−maxaA∗(s,a)
3.2. Dueling Network
-
Approximation Advantage Function A(s,a;wA)A(s,a;w^A)A(s,a;wA)
-
Approximation State-Value Function V(s;wV)V(s;w^V)V(s;wV)
-
Dueling Network
根据Theorem 2,得到对动作价值函数的近似(与DQN相同):
Q∗(s,a;wA,wV)=V∗(s;wV)+A∗(s,a;wA)−maxaA∗(s,a;wA) Q^*(s,a;w^A,w^V)=V^*(s;w^V)+A^*(s,a;w^A)-max_a A^*(s,a;w^A) Q∗(s,a;wA,wV)=V∗(s;wV)+A∗(s,a;wA)−maxaA∗(s,a;wA)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xe0bBddO-1672473344043)(null)]Dueling Network与DQN的输入输出均相同,但是网络结构不同。
-
Training
学习参数w=(wA,wV)w=(w^A,w^V)w=(wA,wV),训练过程与DQN相同,也可以应用其他高级技巧。
3.3. Overcome Non-identifiability
-
Problem of Non-identifiability
Equation 1: Q∗(s,a)=V∗(s)+A∗(s,a)Q^*(s,a)=V^*(s)+A^*(s,a)Q∗(s,a)=V∗(s)+A∗(s,a)
Equation 2: Q∗(s,a)=V∗(s)+A∗(s,a)−maxaA∗(s,a)Q^*(s,a)=V^*(s)+A^*(s,a)-max_a A^*(s,a)Q∗(s,a)=V∗(s)+A∗(s,a)−maxaA∗(s,a)
Equation 1中,无法通过学习Q∗Q^*Q∗唯一确定V∗,A∗V^*,A^*V∗,A∗,如果A∗A^*A∗增加10,V∗V^*V∗减小10,得到的输出Q∗Q^*Q∗不变。若A,VA,VA,V两个网络存在反向的波动,二者相加后的输出呈现稳定,但是实际上A,VA,VA,V两个网络训练效果都不好。
Equation 2解决了不唯一性,如果A∗A^*A∗增加10,V∗V^*V∗减小10,得到的结果减小10。