背景:
我在强化学习任务中使用神经网络 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 9 次拟合值为 5,然后拟合一次值为 -100。听起来很疯狂。
- 从另一个角度来看,神经网络的学习是作为误差的反向传播来实现的,所以当模型预测为 5 并且我们在 5 上训练它时,它不会学到任何新的东西,因为误差为 0。没有触及权重. 只有当我们计算 -100 并将其拟合到模型时,它才会重新计算权重。
哪个选项是正确的?也许还有其他一些我没有考虑到的事情?
更新: “效率如何”是指与具有一个输出的方法相比 - 预测奖励。当然,在这种情况下,动作将是输入的一部分。所以方法#1根据某个状态对所有动作进行预测,方法#2对在某个状态下采取的特定动作进行预测。