我正在与DQN一起训练代理商。报酬在增加而损失在减少。这是一个好成绩,我取得了很好的成绩。但是,我有点怀疑,因为损失减少了,突然上升到很高的值
这是前20个时代
37 epochs
~17000
之后,奖励达到15694
,损失减少到Reward: 16366.0 Steps: 100.0 Update: 117 Time: 17.44 Episodes: 40
Loss: 15099.0156
===============================
Reward: 15909.5 Steps: 100.0 Update: 120 Time: 17.9 Episodes: 41
Loss: 14892.0322
===============================
Reward: 16744.5 Steps: 100.0 Update: 123 Time: 17.87 Episodes: 42
Loss: 14705.1650
===============================
Reward: 16613.5 Steps: 100.0 Update: 126 Time: 18.39 Episodes: 43
Loss: 14518.6943
===============================
Reward: 16422.0 Steps: 100.0 Update: 129 Time: 18.8 Episodes: 44
Loss: 19189.0879
===============================
Reward: 16820.5 Steps: 100.0 Update: 132 Time: 19.27 Episodes: 45
Loss: 28676.2344
===============================
Reward: 16513.5 Steps: 100.0 Update: 135 Time: 19.66 Episodes: 46
Loss: 28341.6875
===============================
Reward: 16878.5 Steps: 100.0 Update: 138 Time: 20.08 Episodes: 47
Loss: 27986.1465
。
在这里可以注意到损失的大幅增加。超过100集,播放了3次
let options = [
'A',
'B',
'C'
];
我希望损失继续减少或稳定下来。我如何解释损失的增加?我该如何避免呢?
答案 0 :(得分:1)
也许是爆炸梯度问题。在训练期间,损失突然变得非常大。 您可以尝试使用L2归一化(https://keras.io/regularizers/)和渐变裁剪。此外,您可以尝试学习率,可以降低学习率或使用其他优化器(例如,仅使用SGD代替Adam或您使用的其他任何方法。如果您使用的是递归细胞,则可以尝试使用LSTM而不是GRU。 Here you can find some more information and ideas about how to fix it.