SOP论文

Striving for Simplicity and Performance in Off-Policy DRL: Output Normalization and Non-Uniform Sampling
复现代码

1原理

Streamlined Off Policy (SOP), 使用简单的方法实现了新的SOTA,性能超越SAC。并比SAC更加简单实现。
简单的两个tricks是

  1. Policy的原始输出 u k u_k uk经过Normalization后再过Squashing t a n h ( u k ) tanh(u_k) tanh(uk),在TD3中,policy model output是超过 a t a_t at的范围之外,经过tanh的挤压在有限的动作区间后 a t a_t at值在最大的边界附近,添加explore noise也难以改变边界的输出。而SAC的最大熵policy可以缓解这一问题。作者简单使用Normalization实现了同样的性能。 G = ∑ k ∣ u k ∣ / K k = 1 , 2 , . . . , K u k ⟵ u k / G i f G > 1 G=\sum _k\left | u_k \right |/ K \quad k=1,2,...,K\\ u_k\longleftarrow u_k/G \quad if\quad G>1 G=kuk/Kk=1,2,...,Kukuk/GifG>1
  2. Emphasizing Recent Experience (ERE),从replay buffer采用最近的samples, 因为当policy改进和探索状态空间的新区域时,新数据点可能包含⽐已更新多次的旧数据点更有趣的信息。基本思想是,在参数更新阶段,第⼀个 mini-batch 从整个缓冲区中采样,然后对于后续的每个 mini-batch,逐渐减少采样范围,以从最近的数据中采样更多。
    c k = N ⋅ η k c_k = N\cdot \eta ^k ck=Nηk
    其中 N N N为replay bufffer最大size, k k k为更新次数, η \eta η为最近采样factor.

2 Experimental Results

论文开头通过带熵和不带熵的policy,说明action squash 的存在问题
SOP论文_第1张图片

添加action normalization 效果
SOP论文_第2张图片
ablatoin实验对比
SOP论文_第3张图片
加上ERE 从buffer sample实验
SOP论文_第4张图片

3 Algorithm

流程与SAC类似
SOP论文_第5张图片
对构造normal的mean进行normaliation

abs_mean = torch.abs(mean)
Gs = torch.sum(abs_mean, dim=1).view(-1, 1)
Gs = Gs/K   

ones = torch.ones(Gs.size()).to(Gs.device)
Gs_mod1 = torch.where(Gs >= 1, Gs, ones)
mean = mean/Gs_mod1
       
pre_tanh_value = mean + normal.rsample()

你可能感兴趣的:(Deep,Reforcement,Learning,机器学习)