我刚刚为游戏tic-tac-toe编写了第一个神经网络实现。
我有9个输入神经元(1,0,-1表示状态),1个输出神经元(从-1到1 - 表示状态值)。
我使用简单的强化算法: 获胜状态获得值+1,前一状态获得1-1 *比例,下一状态获得1-2 *比例,依此类推。 丢失状态获得值-1,前一状态获得-1 + 1 *比例,下一状态获得-1 + 2 *比例,依此类推。 (目前为止可选)
我将此值提供给网络以获取要使用的错误功能。 在下一次迭代中,我将采用所有可能的状态并将它们提供给网络。然后我选择具有最高值的状态。
现在的问题是:如果我只使用奖励获胜,算法就可以了 很好,输出值会收敛到奖励公式计算的值。对于随机玩家,我获胜率约为85%。 如果我使用奖励赢得和(负)奖励,则算法根本不会收敛,并且往往只输出正值或仅输出负值(大约+1或大约-1)。< / p>
有谁知道这背后的原因是什么?我为我的神经元使用tanh(x)输出函数。
谢谢,并祝福,
beinando