【问题标题】:Debugging Reinforcement Learning Model (MsPacman)调试强化学习模型 (MsPacman)
【发布时间】:2020-10-07 21:07:18
【问题描述】:

我是 RL 的新手,我正在尝试训练 RL 代理在 PyTorch 中玩 MsPacman。我已经针对我的问题在 PyTorch 页面上调整了来自 tutorial 的代码。 DQN 具有以下架构:

DQN(
  (conv1): Conv2d(1, 32, kernel_size=(8, 8), stride=(4, 4), padding=(2, 2))
  (bn1): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
  (conv2): Conv2d(32, 64, kernel_size=(4, 4), stride=(2, 2), padding=(1, 1))
  (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
  (conv3): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
  (bn3): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
  (linear1): Linear(in_features=7040, out_features=512, bias=True)
  (linear2): Linear(in_features=512, out_features=9, bias=True)
)

我正在使用带有重放内存的actor(策略)和critic(目标)方法,它具有以下设置:

  • 回放缓冲区:100,000
  • 目标更新:每 10,000 步
  • 浴缸尺寸:128
  • 折扣率:0.999

对于探索权衡,我使用具有以下曲线的 epsilon-greedy:

其中 x 轴是步数(以百万为单位),y 是选择随机动作的概率。

策略网络的更新是这样的:

# next_state_values = Q-values precited by the target network
# GAMMA = discount rate (0.999)
# reward_batch = rewards for the states
expected_state_action_values = (next_state_values * GAMMA) + reward_batch

损失计算:

# state_action_values = actions taken by the policy agent
# expected_state_action_values - this is calculated above
loss = F.smooth_l1_loss(state_action_values, expected_state_action_values.unsqueeze(1))

更新策略(梯度被限制):

optimiser.zero_grad()
loss.backward()
for param in policy_net.parameters():
    param.grad.data.clamp_(-1, 1)
optimiser.step()

在训练代理时,我绘制了如下所示的每一集的持续时间(橙色线显示了前 100 集的平均值):

在 4,000 集之后,代理并没有真正取得进展,并陷入如下困境:

知道可能是什么问题吗?一些提示和指示会非常有帮助。

【问题讨论】:

    标签: python pytorch reinforcement-learning


    【解决方案1】:

    看到剧集奖励会很有趣,因为这正是代理正在优化的目标。代理是否从一开始就陷入困境?如果是这样,我猜想 epsilon 贪心策略(一开始几乎是纯随机的)没有正确实施。我假设代理会因吃掉这些点而获得奖励,因此应该有动力四处走动。

    尝试一个纯随机代理并查看其进展情况,您可以将其绘制为基线,它会告诉您您的代理是否正在学习任何东西。

    【讨论】:

      猜你喜欢
      • 2019-11-21
      • 2021-02-12
      • 2019-03-31
      • 2013-12-06
      • 2016-03-14
      • 2021-05-06
      • 1970-01-01
      • 2018-11-05
      • 2019-10-14
      相关资源
      最近更新 更多