在几个训练时期后,近端策略优化 (PPO) 中的熵项变得不确定

人工智能 强化学习 Python 喀拉斯 近端策略优化
2021-10-27 12:00:37

我已按如下方式实现了我的 PPO 目标的完全损失:-

total_loss = critic_discount * critic_loss + actor_loss -  entropy_beta * K.mean(-(newpolicy_probs * K.log(newpolicy_probs)))

在训练了几个 epoch 之后,熵项由于某种原因变成了“nan”。当熵变得未定义时,我曾经tf.Print()看到新的策略概率,如下所示 -

新政策问题:[[6.1029973e-06 1.93471514e-08 0.000299338106...]...]

我不清楚为什么将这些小概率的日志记录为nan. 知道如何防止这种情况吗?

1个回答

我浏览了 PPO 的其他一些实现,它们都添加了小偏移量 (1e-10) 以防止未定义的 log(0)。我做到了,现在培训有效。