代理学习平衡(点击完整的动态图)
原始链接视图)
目前,一些支持的算法可以在三种类型的可调代理上运行。
第一类是DQN agent,可以实现深度Q学习()和很多增强功能,如变步长跟踪(-)、双DQN和可调对抗架构()。DQN是一个非策略算法,我们的实现默认使用优先体验回放()。DQN代理主要处理离散的动作空间。
第二类是A2C智能体,它采用同步多步“主导行动关键”模型,这是一种基于策略的算法。(关于A2C和A3C之间的差异的更多信息,请参考https://openai.com/blog/baselines-acktr-a2c/.的这篇博文)哈士奇允许像A2C这样的基于策略的算法轻松地同时从多个环境实例中获得经验数据,这有助于数据整理过程变得更加稳定,从而更有利于学习。
第三类是DDPG代理,它采用可变步长跟踪的深度确定性策略梯度算法,默认情况下也使用优先体验回放。DDPG特工是专门用来处理连续行动空间问题的。
外壳代理学习改进钟摆
外壳可以轻松地跨多个CPU内核并行计算环境动态,这对于加速A2C和PPO(从多个并发经验源中学习数据)等战略算法非常有帮助。首先,如果我们想同时使用多个环境实例,我们只需要为基于策略的代理和模拟器提供所需数量的环境实例;然后将环境实例分布在多个进程上,这些进程会在可用的CPU核上自动并行化;之后,我们只需要在调用sim.train()函数时为max_subprocesses参数提供所需的值,如下面的代码片段所示。
外壳实现了战略算法加速的代码段(跳转到原文查看完整代码)
此外,应该注意的是,为每个环境实例使用不同的策略非常简单,只需提供一个策略列表,而不是提供一个策略对象。
外壳A2C代理同时学习16个环境实例来平衡cartpole。其中,较粗的蓝线表示使用贪婪目标策略获得的奖励。当gaussianepsilon-greedy策略用于其他15种环境时,均值从0变为1。
但是在一些简单的环境中,比如cartpole环境,强制并行使用多个进程会因为进程间通信成本的增加而降低训练速度。因此,这种多进程并行性只有在计算成本高的环境下才能发挥有益的作用。
所有操作代理都依赖于每个问题规范,因此它们使用的神经网络由用户提供。这些神经网络是多样化的(简单、简单、复杂、深入)。代理通常在内部向所提供的神经网络添加一层或多层,以便正确执行其预期功能。此外,所有算法都充分利用了自定义Keras的丢失,使其尽可能快速简洁地运行。目前我们有三个例子(每个代理一个)。这些例子使用微小且完全连接的网络来显示代理的功能。即使使用简单的模型,结果也不会改变。
目前,Huskarl支持DQN(DeepQ-LearningNetwork)、多步骤QN、双步骤QN、a2c(A2C(Advantage Actor-Criteria)、ddpg(deep determinative policy gradient)等算法,PPO(principal policy optimization)、地理驱动勘探等算法仍在规划中。
外壳支持的算法列表
未来计划
我们计划增加更多新颖的深度强化学习算法,如PPO (ProximalPolicyOptimization)、SAC(soft actor-Criteria)和TD3(TwindelayeddeDeterDeministratePolicy Gradient)。
此外,我们还计划引入内在奖励方法,如好奇心和赋权。其目的是希望用户能够更容易地交换和组合深度强化学习算法的不同组成部分,比如体验回放、辅助奖励以及像堆乐高积木这样的代理任务。同时,我们还计划在未来开放源代码的多代理环境和Unity3D环境。
原始地址
https://midium.com/@ tensorflow/introduction-haskarl-the-module-deep-rewarding-learning-framework-e47d 4b 228 DD 3
Github地址
https://github.com/danaugrs/huskarl