mirror of
https://github.com/openmlsys/openmlsys-zh.git
synced 2026-04-05 19:58:22 +08:00
Fix Typos (#210)
* fix chap12 render * add distributed rl chapter * fix bug Co-authored-by: Dalong <39682259+eedalong@users.noreply.github.com>
This commit is contained in:
@@ -10,7 +10,7 @@
|
||||
|
||||
这里我们可以根据前面对单智能体强化学习过程的马尔可夫决策过程描述,给出多智能体强化学习的马尔可夫决策过程,它可以用一个数组$(\mathcal{S}, N, \boldsymbol{\mathcal{A}}, \mathbf{R}, \mathcal{T}, \gamma)$来表示。$N$是智能体个数,$\mathcal{S}$和$\boldsymbol{\mathcal{A}}=(\mathcal{A}_1, \mathcal{A}_2, ..., \mathcal{A}_N)$分别是环境状态空间和多智能体动作空间,其中$A_i$是第$i$个智能体的动作空间,$\mathbf{R}=(R_1, R_2, ..., R_N)$是多智能体奖励函数,$\mathbf{R}(s,\mathbf{a})$: $\mathcal{S}\times \boldsymbol{\mathcal{A}}\rightarrow \mathbb{R}^N$为对于当前状态$s\in\mathcal{S}$和当前多智能体动作$\mathbf{a}\in\boldsymbol{\mathcal{A}}$的奖励向量值,其中$R_i$是对第$i$个智能体的奖励值。从当前状态和动作到下一个状态的状态转移概率定义为$\mathcal{T}(s^\prime|s,\mathbf{a})$: $\mathcal{S}\times\boldsymbol{\mathcal{A}}\times\mathcal{S}\rightarrow \mathbb{R}_+$。$\gamma\in(0,1)$是奖励折扣因子(假设多个智能体采用相同的奖励折扣因子)。不同于单智能体强化学习,多智能体强化学习的目标除了常见的最大化每个智能体各自的期望累计奖励值$\mathbb{E}[\sum_t \gamma^t r^i_t], i\in[N]$之外,还有许多其他可能的学习目标,如达到纳什均衡、最大化团队奖励等等。
|
||||
|
||||
由上述介绍和定义可以发现,多智能体强化学习是一个比单智能体强化学习更加复杂的问题。而实际上,多个智能体的存在,对于每个智能体的决策而言,绝对不是简单的把每个单智能体决策累加的难度,实际情况要比单智能体决策问题复杂很多。多智能体系统的研究实际上是门古老的学科,它与博弈论(Game Theory)密切相关,在深度强化学习盛行以前早已有大量研究和许多理论上未解的难题。其中一个典型的问题是纳什均衡在双人非零和博弈下没有多项式时间内可解的方法(实际上,这是一个PPAD(Polynomial Parity Argument, Directed version)类的问题。见Settling the Complexity of Computing Two-Player Nash Equilibria. Xi Chen, et al.)。由于篇幅限制,我们这里无法对多智能体问题做深入探讨,我们可以用一个简单例子来介绍为什么多智能体强化学习问题无法简单地用单智能体强化学习算法来解。
|
||||
由上述介绍和定义可以发现,多智能体强化学习是一个比单智能体强化学习更加复杂的问题。而实际上,多个智能体的存在,对于每个智能体的决策而言,绝对不是简单的把每个单智能体决策累加的难度,实际情况要比单智能体决策问题复杂很多。多智能体系统的研究实际上是门古老的学科,它与博弈论(Game Theory)密切相关,在深度强化学习盛行以前早已有大量研究和许多理论上未解的难题。其中一个典型的问题是纳什均衡在双人非零和博弈下没有多项式时间内可解的方法(实际上,这是一个PPAD(Polynomial Parity Argument, Directed version)类的问题。(见论文Settling the Complexity of Computing Two-Player Nash Equilibria. Xi Chen, et al.)由于篇幅限制,我们这里无法对多智能体问题做深入探讨,我们可以用一个简单例子来介绍为什么多智能体强化学习问题无法简单地用单智能体强化学习算法来解。
|
||||
|
||||
:剪刀石头布奖励值
|
||||
|
||||
|
||||
@@ -10,4 +10,4 @@
|
||||
:width:`800px`
|
||||
|
||||
:label:`ch12/ch12-rlzoo`
|
||||
近来研究人员发现,强化学习算法领域的发展瓶颈,可能不仅在于算法本身,而在于智能体采集数据的模拟器的模拟速度。Issac Gym :cite:`makoviychuk2021isaac`是Nvidia公司于2021年推出的基于GPU的模拟引擎,在单GPU上实现2-3倍于之前基于CPU的模拟器的运行速度。关于GPU上运行加速我们已经在章节5中有所介绍。之所以GPU模拟能够对强化学习任务实现显著的加速效果,除了GPU本身多核心的并行运算能力之外,还在于这省却了CPU与GPU之间的数据传输和通信时间。传统的强化学习环境,如OpenAI Gym(这是一个常用的强化学习基准测试环境)等,都是基于CPU进行的模拟计算,而深度学习方法的神经网络训练通常是在GPU或TPU上进行的。从智能体与CPU上实例化的模拟环境交互过程所收集的数据样本,通常先暂时以CPU的数据格式存储,在使用的时候被转移到GPU上成为具有GPU数据类型的数据(如使用PyTorch时可通过tensor.to(device)的函数实现,只需将device设为“cuda”即可将一个类型为troch.Tensor的tensor转移到GPU上),然后来进行模型训练。同时,由于模型参数是以GPU上数据的类型存储的,调用模型进行前向传递的过程中也需要先将输入数据从CPU转移到GPU上,并且可能需要将模型输出的GPU数据再转移回CPU类型。这一系列冗余的数据转换操作都会显著增长模型学习的时间,并且也增加了算法实际使用过程中的工程量。Isaac Gym模拟器的设计从底层上解决了这一困难,由于模拟器和模型双双实现在GPU上,他们之间的数据通信不再需要通过CPU来实现,从而绕过了CPU与GPU数据双向传输这一问题,实现了对强化学习任务中模拟过程的特定加速。
|
||||
近来研究人员发现,强化学习算法领域的发展瓶颈,可能不仅在于算法本身,而在于智能体采集数据的模拟器的模拟速度。Isaac Gym :cite:`makoviychuk2021isaac`是Nvidia公司于2021年推出的基于GPU(Graphics Processing Unit)的模拟引擎,在单GPU上实现2-3倍于之前基于CPU(Central Processing Unit)的模拟器的运行速度。关于GPU上运行加速我们已经在章节5中有所介绍。之所以GPU模拟能够对强化学习任务实现显著的加速效果,除了GPU本身多核心的并行运算能力之外,还在于这省却了CPU与GPU之间的数据传输和通信时间。传统的强化学习环境,如OpenAI Gym(这是一个常用的强化学习基准测试环境)等,都是基于CPU进行的模拟计算,而深度学习方法的神经网络训练通常是在GPU(或TPU,Tensor Processing Unit)上进行的。从智能体与CPU上实例化的模拟环境交互过程所收集的数据样本,通常先暂时以CPU的数据格式存储,在使用的时候被转移到GPU上成为具有GPU数据类型的数据(如使用PyTorch时可通过tensor.to(device)的函数实现,只需将device设为“cuda”即可将一个类型为torch.Tensor的tensor转移到GPU上),然后来进行模型训练。同时,由于模型参数是以GPU上数据的类型存储的,调用模型进行前向传递的过程中也需要先将输入数据从CPU转移到GPU上,并且可能需要将模型输出的GPU数据再转移回CPU类型。这一系列冗余的数据转换操作都会显著增长模型学习的时间,并且也增加了算法实际使用过程中的工程量。Isaac Gym模拟器的设计从底层上解决了这一困难,由于模拟器和模型双双实现在GPU上,他们之间的数据通信不再需要通过CPU来实现,从而绕过了CPU与GPU数据双向传输这一问题,实现了对强化学习任务中模拟过程的特定加速。
|
||||
Reference in New Issue
Block a user