为什么神经网络的输出值会增加/“爆炸”?

时间:2019-10-12 08:47:24

标签: machine-learning neural-network

我正在训练神经网络作为使用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)
)

0 个答案:

没有答案