我理解神经网络用于将状态作为输入并输出状态-动作对的 Q 值这一事实。然而,为了计算它并更新它的权重,我们需要计算下一个状态的最大 Q 值. 为了得到它,在 DDQN 的情况下,我们输入下一个状态在目标网络中。
我不清楚的是:我们如何训练这个目标网络本身来帮助我们训练另一个 NN?它的成本函数是什么?
我理解神经网络用于将状态作为输入并输出状态-动作对的 Q 值这一事实。然而,为了计算它并更新它的权重,我们需要计算下一个状态的最大 Q 值. 为了得到它,在 DDQN 的情况下,我们输入下一个状态在目标网络中。
我不清楚的是:我们如何训练这个目标网络本身来帮助我们训练另一个 NN?它的成本函数是什么?
在 DQN 和 DDQN 中,目标网络都以 Q 网络的精确副本开始,与 Q 网络具有相同的权重、层、输入和输出维度等。
DQN 代理的主要思想是 Q 网络从给定状态预测动作的 Q 值并选择其中的最大值并使用均方误差 (MSE) 作为其成本/损失函数。也就是说,它执行梯度下降步骤
目标在哪里被定义(在 DQN 的情况下)为
是 Q 网络权重和是目标网络权重。
在通常固定数量的时间步之后,目标网络通过复制 Q 网络的权重来更新其权重。因此,基本上,目标网络从不执行前馈训练阶段,因此忽略了成本函数。
在 DDQN 的情况下,目标定义为
如介绍 DDQN 的论文所述,该目标用于将动作的选择(即argmax部分)与其评估(即使用该选定动作计算下一个状态的 Q 值)分离
(2) 和 (3) 中的标准 Q 学习和 DQN 中的最大运算符使用相同的值来选择和评估动作。这使得它更有可能选择高估的值,从而导致过度乐观的价值估计。为了防止这种情况,我们可以将选择与评估分离