背景:
我在强化学习任务中使用了神经网络Q值近似。该方法与该问题中描述的方法完全相同,但是问题本身不同。
在这种方法中,输出数量就是我们可以采取的行动数量。简单来说,算法如下:执行动作A,探索奖励,要求NN预测所有可能动作的Q值,选择最大Q值,将特定动作A的Q计算为R + max(new_state_Q)
。在预测的Q值上拟合模型,只有其中一个被代替R + max(new_state_Q)
。
问题:如果产出数量很大,这种方法的效率如何?
尝试:假设我们可以采取10个动作。在每个步骤中,我们都要求模型预测10个值,而在模型的早期,这种预测就是一团糟。然后,我们修改输出的1个值,并使模型适合这些值。
对于这种方法的优缺点,我有两种相反的想法,无法确定哪种方法是正确的:
- 从一个角度来看,我们在随机数据上训练每个神经元9次,而在接近实际值的数据上仅训练一次。如果NN在状态S下为动作A预测5,但实际值为-100,则将使NN与值5匹配9次,然后与值-100匹配一次。听起来很疯狂。
- 从其他角度来看,神经网络的学习是作为错误的反向传播实现的,因此,当模型预测5且我们在5上对其进行训练时,由于错误为0,因此不会学习任何新知识。权重不受影响。并且只有当我们将计算-100并将其拟合到模型中时,它才会进行权重计算。
哪个选项正确?也许还有其他我没有考虑的东西?
更新: “有效率”是指与一种输出(预期回报)的方法进行比较。当然,在这种情况下,动作将是输入的一部分。因此,方法1根据某种状态对所有动作进行预测,方法2对某种状态下采取的特定动作进行预测。