我正在训练神经网络作为使用PPO进行强化学习的一部分,当模型首次初始化时,输出看起来像“正常”:
[-0.00611657 -0.01238834 0.00284606 0.02600986 -0.00587347 -0.00182077
-0.00975011]
但是输出逐渐增加,经过几个小时的训练,看起来像这样:
[-3119.771 1075.3921 513.0797 -3039.5288 -2695.9114 388.93564
-3112.1418 ]
来自环境的奖励通常在-5到+5之间,并且已经归一化:
rewards = (rewards - rewards.mean()) / torch.max(rewards.std(), torch.tensor(1e-5))
我在想这指向某个地方的错误?有什么想法可能导致输出像这样“爆炸”?
模型架构如下:
Sequential(
(0): Linear(in_features=174, out_features=500, bias=True)
(1): ReLU()
(2): Linear(in_features=500, out_features=500, bias=True)
(3): ReLU()
(4): Linear(in_features=500, out_features=500, bias=True)
(5): ReLU()
(6): Linear(in_features=500, out_features=500, bias=True)
(7): ReLU()
(8): Linear(in_features=500, out_features=500, bias=True)
(9): ReLU()
(10): Linear(in_features=500, out_features=500, bias=True)
(11): ReLU()
(12): Linear(in_features=500, out_features=7, bias=True)
)