深度 Q-Learning 在随机环境中的收敛性差

人工智能 强化学习 深度神经网络 喀拉斯 q学习 收敛
2021-11-04 18:23:02

我正在尝试在 Keras/TF 中实现一个深度 Q 网络,该网络学习玩扫雷(我们的随机环境)。我注意到,无论是小板还是大板,智能体都能很好地玩游戏。但是,它仅在每个游戏的地雷布局相同时才会收敛/学习。也就是说,如果我在游戏之间随机化地雷分布,代理什么也学不到 - 或接近它。我尝试使用各种网络架构和超参数,但无济于事。

我尝试了很多网络架构,包括:

  1. 网络的输入是整个棋盘矩阵,如果未显示,则单个单元格的值为 -1,如果显示,则为 0 到 8。
  2. 网络的输出也是代表点击每个单元的可取性的整个板。
  3. 尝试了完全连接的隐藏层(宽和深)。
  4. 尝试了卷积隐藏层(尝试堆叠它们,使用不同的内核大小、填充等)。
  5. 也尝试在隐藏层之后添加 Dropout。

DQN 是否适用于每集都会改变的环境,还是我从错误的角度处理了这个问题?

似乎无论网络架构如何,代理都不会学习。非常感谢任何输入。如果您需要任何代码或进一步的解释,请告诉我。

1个回答

您描述的输入似乎足以让基于 DQN 的代理学习玩扫雷的好策略,无论起始布局是否发生变化。输入包含所有必要的信息。

但是,如果最初的问题始终相同,那么问题肯定会变得容易得多(可能太容易了)。DQN 算法很可能会“抓住”这一趋势并“利用”它。输入可能足以学习更通用的扫雷策略,但如果它每次都始终面对相同的“级别”,那么 DQN 算法将更容易准确地记住地雷的位置并完美地发挥在那个记忆上,而不是任何实际的策略。由于实现学习的方式(基于梯度下降),该算法通常倾向于收敛到这种易于实现的“记忆”策略,而不是实际上“智能”的策略。

出于这个原因,我确实认为在布局随机化的情况下训练会慢得多。我不只是按照例如这里慢两倍的思路来思考,而是希望成功学习所需的经验要多几个数量级。不过,这只是我有根据的猜测,从未尝试专门为扫雷机训练 DQN,因此无法确定。它可能还需要更精细的超参数调整,并且可能需要不同的网络架构(可能需要更大的网络)。