深度 Q 学习中神经网络中的多个输出层

数据挖掘 机器学习 神经网络 深度学习 q学习
2021-10-11 20:12:06

我正在尝试使用 DQN 训练计算机玩乐高积木(模拟)。我的输入是具有 4 个颜色通道(RGB 和深度)的图像,神经网络的输出是应该放置下一块砖的最佳位置的坐标。

而不是拥有 X*是的*z (在哪里 ķ 是沿 k 轴的位置大小)不同的输出,我想要 3 个输出层,每个输出层返回最佳位置的 x、y 或 z 坐标,所以我只有 X+是的+z 输出。

我的想法是用三个全连接输出层代替全连接输出层,但三层只有一个奖励值(标记值)。我可以这样做吗?如果奖励相同,三层会返回不同的输出吗?

1个回答

你决定输出层代表什么,所以应该可以(并且可能更容易实现)有一个大小的全连接层 X+是的+z并在您自己的代码中解释输出。例如nX=ñ(X),n是的=ñ(X+是的),nz=ñ(X+是的+z), 在哪里 ñ(一世) 是的输出 一世H神经元。在回归的情况下,这应该与每个维度的 3 个单独的全连接层具有非常相似的行为。

然而,一旦你有任何一种结构,你是否会再直接估计奖励就不清楚了。绝对不能保证两者之间的奖励相同nX,n是的,nz,实际上在大多数情况下它们不会。您将需要定义一个函数r^(X,是的,z)它结合了网络的输出,并从中计算出你的损失和误差梯度。该功能可能只是r^(X,是的,z)=nX+n是的+nz 或许 r^(X,是的,z)=nX×n是的×nz

显然,这种近似值具有内在的局限性——由于其结构,它可能会高估和低估奖励。如果简化的结构与您的问题相匹配,那么这会很好 - 它甚至可以加速收敛。但如果不是,它将限制性能。

如果您不想构建具有大量输出的网络,另一种选择是将单个奖励估计作为输出,并将动作选择作为输入。这样做的好处是将近似的细节留给神经网络。它的缺点是您需要将网络运行到X*是的*z时间来决定每个州的政策。

由于您的案例中有大量可能的操作,您可能希望查看基于策略的学习方法,而不是 DQN。这些算法有基于深度神经网络的版本。最近发布的称为 Asynchronous Advantage Actor-Critic (A3C) 的算法在计算机游戏任务中表现良好,可能适合您的问题。