微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何解决政策梯度中的零概率问题?

如何解决如何解决政策梯度中的零概率问题?

最近,我尝试将朴素的策略渐变方法应用于我的问题。但是,我发现神经网络最后一层的不同输出间的差异很大,这意味着在应用softmax层之后,只有一个动作将被标记为1,其他动作将被标记为0。例如,最后一层的输出如下所示:

[ 242.9629,-115.6593,63.3984,226.1815,131.5903,-316.6087,-205.9341,98.7216,136.7644,266.8708,19.2289,47.7531]

应用softmax函数后,很明显只会选择一个动作。

[4.1395e-11,0.0000e+00,2.1323e-18,1.0000e+00,0.0000e+00]

这个问题严重影响了最终性能,因为神经网络仅在几个步骤后才会尝试持续作用。因此,有什么办法可以解决这个问题?

(顺便说一句,即使我试图给神经网络带来一些负面的奖励,它所选择的动作仍然没有改变。)

我的训练曲线如下所示:

Training curve

解决方法

实际上,没有确定的方法来解决此问题,因为这是优化领域中一个古老的问题,称为“探索-开发难题”。具体来说,在强化学习中,有两种简单的方法可以解决此问题:

  1. 首先,降低学习率是解决此问题的最简单方法。在学习率较低的情况下,政策网络可以探索更多不同的动作,从而避免陷入局部最优状态。
  2. 第二,将策略熵项添加到损失函数中是解决此问题的另一种方法。这种想法的一个很好的例子是软参与者评论(SAC)算法。

这两种方法均已在我的任务中得到验证,并且两种方法都可以有效缓解过早出现的问题。但是,这两个参数都有一个需要手动调整的参数,这增加了算法的复杂性。

通过这种方式,类似于Q-Learning,我们还可以使用epsilon-greedy机制来鼓励代理探索更多的动作。但是,由于很难确定ε值,因此这不是解决该问题的理想方法。

,
    据我所知,通常采用PG来处理连续动作。您可能需要尝试基于价值的算法。
  1. softmax是否正确实施?将您的代码粘贴到此处,或者一些学习过程的指标可能会有所帮助

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。