1.7 DPPO
原则上,强化学习范式允许直接从简单的奖励信号中学习复杂的行为。然而,在实践中,通常要专门地设计奖励函数,以鼓励一个特定的解决方案,或从示范数据中推导得出方案。本文探讨了丰富的环境如何能帮助促进复杂行为的学习。DPPO(Distributed Proximal Policy Optimization)简单来说就是多线程并行版的 PPO。不过与上面介绍的A3C情况不同,A3C 也是分布式的方法,副网络与主网络有着相同的网络结构,并用副网络计算出来的梯度更新主网络的参数,更新完后再将主网络的参数同步给副网络。DPPO的副网络不必拥有和主网络相同网络结构,每个副网络只需要有自己独立的环境就好了。副网络在不同的环境中收集数据,然后交给主网络来更新参数。
稳健的策略梯度与PPO。策略梯度算法为连续控制提供了一个有效范式。它们的运作方式是直接将预期的奖励之和最大化:
预期是关于由策略π_θ和系统动态共同引起的轨迹分布τ的:
相对于θ的梯度目标由以下公式给出:
DPPO。数据收集和梯度计算都分布在worker身上。作者对同步和异步更新都进行了实验,发现平均梯度和同步应用梯度在实践中会带来更好的结果。为了方便使用批量更新的RNN,同时也支持可变长度的episodes,遵循一个策略,使用截断的反向传播,通过时间的长度为K的窗口。因此,可以使用K-step returns来估计优势,即在相同的K-step窗口上将return相加,并在K-step之后从值函数中引导。参数存放在参数服务器,worker在每个梯度步骤后同步其参数。
DPPO算法的伪代码在Algorithm 2和Algorithm 3中提供。W为worker数量,D为worker的数量设定了一个阈值,其梯度必须可用于更新参数。M、B是给定一批数据点的策略和基线更新的子迭代的数量。T是在计算参数更新之前每个worker收集的数据点的数量。K是计算K-step返回和截断反推的时间步数(对于RNNs)。
在分布式环境中,我们发现在不同的workers之间分享相关的统计数据进行数据规范化是很重要的。归一化是在数据收集过程中应用的,统计数字在每个环境步骤之后都会在本地更新。当一个迭代完成后,对统计数据的局部改变被应用于全局统计数据(伪代码中未显示)。时变的正则化参数λ也是跨workers共享的,但是更新是根据每个worker在本地计算的平均KL来确定的,并由每个worker分别应用调整后的α˜=1+(α-1)/K。此外,DPPO还采用了一个额外的惩罚项,当KL超过期望的变化一定幅度时(上面伪代码中阈值是2KL_target),该惩罚项就会生效。
当前 SOTA!平台收录DPPO共 3 个模型实现资源。
模型 | SOTA!平台模型详情页 |
DPPO | 前往SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/dppo |
1.8 IQN
IQN是对DQN的扩展,是model-free、off-policy、value-based、discrete的方法,具体是使用量化回归来逼近state-action奖励分布的全部量化函数。通过对样本空间的分布进行重新参数化,生成一个隐式定义的奖励分布,并产生了一大类风险敏感策略。从学习离散的量值集到学习完整的量值函数,这是一个从概率到奖励的连续映射。当与基础分布相结合时,如U([0, 1]),就形成了一个隐性分布,能够在给定足够的网络容量的情况下,近似于returns的任何分布。首先,分布的近似误差不再由网络输出的量值数量控制,而是由网络本身的规模和训练量控制。第二,IQN可以根据需要在每次更新时使用很少或很多的样本,随着每次训练更新的样本数量增加,提供更好的数据效率。第三,奖励分布的隐式表示使我们能够扩大策略的类别,以更充分地利用所学到的分布。具体来说,通过将基础分布视为非均匀分布,将策略类别扩展为任意失真风险措施的贪婪策略。
IQN是一个神经网络,输入为状态 x 和一个采样 τ∼U[0,1] ,输出不同离散动作对应的值函数分布的 τ 分位数Zτ(x,a):=FZ−1(τ|x,a) 。定义与风险倾向有关的值函数如下:
其中,β(⋅):[0,1]→[0,1] 函数是单位映射,这个Q函数和之前定义的一样,是值函数分布的期望。如果该函数为凸函数(或者在图像上都在单位映射下方),那么就等于往较差情况加了较大的权重,这就产生了risk-averse型的风险偏好;如果该函数为凹函数(或者在图像上都在单位映射上方),那么就等于往较好情况加了较大的权重,这就产生了risk-seeking型的风险偏好。
定义在此值函数下的贪心策略:
实际计算中通过采样来得到该策略:
使用梯度下降优化如下损失函数:
其中,ρ(⋅) 为quantile regression的损失函数。
IQN使用与DQN中相同的函数ψ和f,但引入了一个额外的函数φ。把这些结合起来形成近似值Z_τ (x, a) ≈ f(ψ(x)⊙ φ(τ ))a,其中⊙表示element-wise(Hadamard)乘积。由于f的网络不是特别深,使用乘法形式ψ ⊙φ来强制卷积特征和样本嵌入之间的互动。最终的IQN算法如下:
当前 SOTA!平台收录IQN共 1 个模型实现资源。
项目 | SOTA!平台项目详情页 |
IQN | 前往SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/iqn |
前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及API等资源。
网页端访问:在浏览器地址栏输入新版站点地址 sota.jiqizhixin.com ,即可前往「SOTA!模型」平台,查看关注的模型是否有新资源收录。
移动端访问:在微信移动端中搜索服务号名称「机器之心SOTA模型」或 ID 「sotaai」,关注 SOTA!模型服务号,即可通过服务号底部菜单栏使用平台功能,更有最新AI技术、开发资源及社区动态定期推送。