我在一行中描述我想要的东西时遇到了一些麻烦,这可能就是为什么我对谷歌没有太多运气的原因。
假设我有一个像 2048 这样的游戏,其中每个步骤的可能动作是固定的(并且不止两个)。我想训练一个选择移动的神经网络,所以我在输出层有 4 个神经元,我做出了最高预测的移动。输出向量被归一化(softmax 层)。
但是,我拥有的训练数据只是状态、所采取的行动以及结果是好是坏。如果选择的动作不好,我不知道其他哪个更好(如果有的话)。
我应该如何训练这个?我现在的想法是这样的:
- 好动?-> 选择的动作得到正错误(所以预测上升)
- 动作不好?-> 选择的步骤得到负错误(所以预测下降)
但我还没有找到支持这种猜测的文献。有替代方案:
- 也许我还应该更新未选择的选项(在相反的方向)?
- 直接设置错误而不是使用目标预测是个好主意吗?
- 正确和不正确的错误可能不同,也许是为了保持标准化?
- ...
(我在做2048,用的是神经网络,但我觉得不限于这个游戏或者这个方法。)