主要内容

培训代理商使用并行计算和gpu

如果你有并行计算工具箱™软件,你可以在多核处理器上运行并行模拟或gpu。如果你另外有MATLAB®并行服务器™软件,你可以在计算机上运行并行模拟集群或云资源。

注意,并行代理使用递归神经网络的训练和模拟,不支持多智能体环境,或代理。金宝app

独立的设备用于模拟或火车代理,代理已经训练之后,可以生成代码部署最优政策CPU或GPU。这是更详细地解释部署训练强化学习策略

使用多个进程

当你训练特工使用并行计算,并行池客户机(MATLAB程序启动培训)发送拷贝其代理人和环境并行工作。每个工人模拟环境中的代理并将其模拟数据发送回客户端。客户端代理可以从工人和发送的数据发送更新后的政策参数回工人。

图显示一个客户端连接有四个工人。

创建一个平行的N工人,使用以下语法。

池= parpool (N);

如果你没有创建一个平行池使用parpool(并行计算工具箱),火车函数自动使用默认创建一个平行池的偏好。这些首选项指定的更多信息,请参阅指定您的平行的偏好(并行计算工具箱)。注意,使用并行的线程池的工人,如池= parpool(“线程”),不支持。金宝app

训练一个代理你必须通过使用多个流程火车一个函数rlTrainingOptions对象的UseParallel属性设置为真正的

有关配置的更多信息培训使用并行计算,看到UseParallelParallelizationOptions选项rlTrainingOptions。例如关于如何配置选项异步优势actor-critic (A3C)代理培训,看到最后一个例子rlTrainingOptions

例如,火车一个代理在MATLAB使用并行计算,看看列车空调代理使用并行计算平衡Cart-Pole系统。例如,火车一个代理在仿真软件中使用并行计算金宝app®,请参阅火车DQN代理车道保持辅助使用并行计算两足机器人使用强化学习代理行走训练

智能体并行训练注意事项

强化学习代理可以并行训练在两个主要方面,经验并行化,工人只计算的经验,基于和梯度并行,工人们也计算梯度,使代理接近者学习。

经验并行化(DQN DDPG、TD3囊,PPO, TRPO)

当训练一个DQN, DDPG、TD3囊,PPO并行或TRPO代理人,环境仿真是由工人和梯度计算是通过客户端。具体地说,工人们模拟(副本)代理(副本)环境中,并发送经验数据(下观察,观察、行动、奖励,和终止信号)给客户机。客户端从经验,然后计算梯度更新代理参数和发送更新后的参数回工人,然后继续执行模拟使用的副本更新代理。

这种类型的并行训练也被称为经验并行化,并且可以运行使用异步培训(即模式财产的rlTrainingOptions对象传递给你火车可以设置为函数“异步”)。

经验并行化可以减少培训时间只有在模拟环境的计算成本很高的成本相比,优化网络参数。否则,环境仿真是足够快时,工人被搁置不用等待客户学习和返回更新后的参数。

换句话说,经验并行化可以提高抽样效率(作为一个代理可以处理样品的数量在给定时间)只有当比率R环境复杂性和步学习之间的复杂性很大。如果两个环境模拟和梯度计算(即学习)也同样计算昂贵,经验并行不太可能提高抽样效率。在这种情况下,off-policy代理支持并行(DQN, DDPG、TD3和囊)可以减少m金宝appini-batch大小R大,从而提高抽样效率。

请注意

经验的并行化,不要使用你所有的处理器核心并行训练。例如,如果您的CPU有六个核心,火车有四个工人。这样做为平行池客户提供更多的资源来计算梯度基于经验发回的工人。

和经验的例子并行训练,看到火车DQN代理车道保持辅助使用并行计算

Gradient-Based并行化(AC和PG)

当训练一个并行交流或PG代理人,环境模拟和梯度计算都是由工人完成的。具体来说,工人模拟(副本)代理(副本)内环境,获得经验,从经验计算梯度,梯度并将其发送给客户端。客户平均梯度,更新代理参数和发送更新后的参数回工人,这样他们就可以继续使用一个更新的副本执行模拟代理。

这种类型的基于并行训练也被称为梯度并行化,并允许您实现,原则上,速度提高近线性数量的工人。但是,这一方案要求同步培训(即模式财产的rlTrainingOptions对象传递给你火车必须设置为函数“同步”)。这意味着员工必须暂停执行,直到所有的工人都完成了,结果只训练进步速度是最慢的工人允许。

一般来说,限制工人的数量,以便留一些处理器核心基于客户端没有必要当使用梯度并行,因为梯度不计算在客户机上。因此,基于对梯度并行化,它可能是有益的使用你所有的处理器核心并行训练。

和基于示例的梯度并行训练,看到列车空调代理使用并行计算平衡Cart-Pole系统

使用gpu

你可以加快训练表演演员和评论家操作(如梯度计算和预测),在本地GPU而不是CPU。为此,当创建一个评论家或演员,设置它UseDevice选项“图形”而不是“cpu”

“图形”选择需要软件和CUDA并行计算工具箱®使英伟达®GPU。支持gpu看到更多的信息金宝appGPU计算的需求(并行计算工具箱)

您可以使用gpuDevice(并行计算工具箱)查询或选择一个当地的GPU设备使用MATLAB。

使用gpu可能是有益的,当你有一个深神经网络的演员或评论家等大型批量大小或需要执行操作多个卷积层输入图像。

例如如何训练一个代理使用GPU,明白了火车DDPG代理摇摆起来,平衡摆与图像观察

同时使用多个进程和gpu

你也可以训练特工同时使用多个进程和当地的GPU(之前选择使用gpuDevice(并行计算工具箱))在同一时间。要做到这一点,首先创建一个评论家或演员接近者对象的UseDevice选项设置为“图形”。然后您可以使用评论家和演员来创建一个代理,然后火车代理使用多个进程。这是通过创建一个rlTrainingOptions对象中UseParallel被设置为真正的并通过火车函数。

基于对梯度并行化,(必须在同步模式下运行)环境仿真是通过工人,也使用当地的GPU计算梯度和执行一个预测的步骤。渐变然后发送回平行池客户过程中计算平均水平,更新网络参数并将它们发送回的工人,所以他们继续模拟剂,使用新的参数,针对环境。

对于经验并行,(可以运行在异步模式),工人们模拟剂对环境,平行池经验数据发送到客户端。然后客户端使用其本地GPU计算梯度的经历,然后更新网络参数,将更新后的参数发送回工人,继续模拟剂,使用新的参数,对环境。

注意,当使用并行处理和GPU PPO特工训练,工人使用当地的GPU计算优势,然后发送处理经验轨迹(包括优势、目标和行动的概率)回客户机。

另请参阅

功能

对象

相关的例子

更多关于