Improving Exploration in Evolution Strategies for DRL via a Population of Novelty-Seeking Agents

Improving Exploration in Evolution Strategies for Deep Reinforcement Learning via a Population of Novelty-Seeking Agents

文章来自Uber AI Labs,主要通过在Evolution Strategies(ES)算法中引入 Novelty Search(NS)算法 和 Quality Diversity(QD)算法来解决RL任务中的探索问题。

Contribution:
1)将进化策略算法ES与新颖性搜索NS相结合,提出了三个新算法,即NS-ES,NSR-ES,NSRA-ES,有效提升了ES算法的探索能力。
2)讨论了NS-ES,NSR-ES,NSRA-ES 与 ES之间的性能优劣。

(ps:NS-ES,NSR-ES,NSRA-ES都用了NS,而只有后两个NSR-ES,NSRA-ES才用QD,因为他们考虑了quality/performance,即奖励R)

Code: https://github.com/uber-research/deep-neuroevolution

下面介绍作者如何从ES算法一步步改进并得出这三个算法。

ES

ES是个黑箱优化器,无需计算目标函数的梯度即可优化目标函数。ES另一个特点是高度并行运算能力,其运行速度随着CPU数量的增加而呈线性加速。尽管RL也有并行算法(如A3C),但并行能力不强,比如在同样的CPU核数,同样的神经网络结构下,A3C用了24小时达到的性能,ES只用了1小时。

直观地理解ES就是,给出一个策略 π θ \pi_\theta πθ,为了最大化适应度函数 f f f,将噪声 ϵ \epsilon ϵ 加入策略的参数 θ \theta θ 中进行变异,得到 n n n 个不同的策略,然后让每个策略在任务中跑一跑,得到的奖励作为适应度函数 f f f 的数值,然后看哪个策略得到的奖励多,或者说对适应度函数的贡献大,就往哪个策略的方向多更新一点。

ES的参数更新量为:

NS-ES

这个算法是在ES的基础上引入了novelty概念,它的计算公式如下:

其中 b ( π θ ) b(\pi_\theta) b(πθ)是策略 π θ \pi_\theta πθ的behavior characterization,它能反应该策略的行为特征,如在导航任务中,机器人当前的地图坐标即可作为 b ( π θ ) b(\pi_\theta) b(πθ) A A A是储存不同策略的 b ( π θ ) b(\pi_\theta) b(πθ)的buffer。

从novelty的计算公式可以看出,一个策略的新颖性等于该策略的行为特征其最近的 k k k个策略的行为特征之间的距离的平均值。

NS-ES的参数更新量为:

可以看出,到现在为止,这个更新公式与ES的不同之处在于只是将ES中关注任务奖励的适应度函数 f f f 改为新颖性函数而已。这么一改,则将该算法的目标导向变成了越是新颖的行为就越值得鼓励,而不是关注得到奖励与否。这个是单个 Agent 的 NS-ES 算法,而文中为了充分利用 population-based exploration 的优势,使用的是一个种群的 Agent。所以,还要进一步更改。

思想是,初始化 M 个Agent 为 { θ 1 , θ 2 , . . . , θ m } \{\theta^1, \theta^2, ... , \theta^m\} {θ1,θ2,...,θm},然后从中选择一个 Agent 来重复上面的更新过程。选择的办法是,新颖性高的策略有更高的概率被选中,公式如下 (eq.1)

所以 NS-ES 的最终参数更新公式为:

算法伪代码(其中的 eq.1 就是 (eq.1)):

NSR-ES

NSR-ES 比 NS-ES 多了一个R,即除了考虑新颖性之外,还考虑了任务奖励 R。

NSR-ES的参数更新公式为:

可以看出该公式,只比NS-ES的多了一个 f f f,且霸气地直接让新颖性与任务奖励取了个平均。

算法伪代码:

NSRA-ES

NSRA-ES 的全称是 NSRAdapt-ES, 即 NSR-ES 的一个变种,改变的仅仅是将 NSR-ES 中新颖性与任务奖励的均值配比改为自动配比。

NSRA-ES的参数更新公式为:

这么一改之后,在迭代中如果 Agent 更新后获得的奖励越来越多,那么就暂时不用去探索新颖性了,应降低新颖性的比重;然而,在一定的回合之后,Agent 不小心进入了local optimum之中了,那么奖励并不会随着参数的迭代更新而变得越来越多,这时候就要增加新颖性比重,探索新的方向,以便突破局部最优陷阱。

那么 ω \omega ω 的值怎么取的呢?请看下面的伪代码:

ps:上面NSRA-ES的参数更新公式中 ω \omega ω 的位置与下面伪代码的更新公式 line 19 中 ω \omega ω 的位置居然是相反的,但是他们两者都是在原文中找的。然而根据逻辑关系,能够推出这个伪代码中 line 19 的公式应该是不正确的,而改为 ω \omega ω f f f 相乘:

这样,下面的逻辑就通畅了:

从line 22 开始,如果更新后的策略表现得比以往最好的策略更好,那么, ω \omega ω 将会增加(line 23),则任务奖励的比重大,新颖性比重小。
如果更新后的策略不比之前的好,则 t b e s t t_{best} tbest 计数增加,而当该计数达到一定程度时, ω \omega ω 将会减小(line 30),则任务奖励的比重小,新颖性比重大,更重视搜索新策略。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值