最近,我尝试将朴素的策略梯度方法应用于我的问题。但是,我发现最后一层神经网络的不同输出之间的差异是巨大的,这意味着在应用了 softmax 层之后,只有一个动作会被标记为 1,而其他动作会被标记为 0。例如,最后一层的输出如下图所示:
[ 242.9629, -115.6593, 63.3984, 226.1815, 131.5903, -316.6087,
-205.9341, 98.7216, 136.7644, 266.8708, 19.2289, 47.7531]
应用 softmax 函数后,很明显只会选择一个动作。
[4.1395e-11, 0.0000e+00, 0.0000e+00, 2.1323e-18, 0.0000e+00, 0.0000e+00,
0.0000e+00, 0.0000e+00, 0.0000e+00, 1.0000e+00, 0.0000e+00, 0.0000e+00]
这个问题严重影响了最终的性能,因为神经网络只会在几步之后尝试不断的动作。因此,有没有办法解决这个问题?
(顺便说一句,即使我试图给神经网络一些负奖励,它选择的动作仍然没有改变。)