Я тренирую нейронную сеть как часть обучения с подкреплением, используя 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)
)