【问题标题】:Best way to bound outputs from neural networks on reinforcement learning在强化学习中绑定神经网络输出的最佳方法
【发布时间】:2019-01-12 14:00:00
【问题描述】:

我正在训练一个神经网络(前馈、Tanh 隐藏层),它接收状态作为输入并将动作作为输出。我正在关注策略梯度强化学习的 REINFORCE 算法。

但是,我需要限制我的控制动作(假设从 0 到 5)。目前我这样做的方法是使用 sigmoid 输出函数并将输出乘以 5。虽然我的算法性能中等,但我发现使用这种“边界方案”作为输出有以下缺点:

我知道回归(因此我猜是强化学习)线性输出是最好的,虽然 sigmoid 有线性部分,但我担心网络无法正确捕获这种线性输出行为,或者它捕获它太慢了(因为它的最佳性能是分类,因此极化输出)。

我想知道还有哪些其他选择,也许还有一些关于此事的启发式方法。

【问题讨论】:

    标签: tensorflow machine-learning artificial-intelligence pytorch reinforcement-learning


    【解决方案1】:

    您是否考虑过使用nn.ReLU6()?这是整流线性单元的有界版本,其输出定义为

    out = min( max(x, 0), 6)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-30
      • 1970-01-01
      • 2016-05-25
      • 2019-06-30
      • 1970-01-01
      • 1970-01-01
      • 2020-11-24
      • 2016-07-11
      相关资源
      最近更新 更多