【问题标题】:Negative reward in reinforcement learning强化学习中的负回报
【发布时间】:2019-07-12 12:57:11
【问题描述】:

我无法解决这个问题:负奖励究竟如何帮助机器避免它们?

问题的起源来自google's solution for game Pong。按照他们的逻辑,一旦游戏结束(代理赢或输点),环境就会返回奖励(+1 或 -1)。任何中间状态都返回 0 作为奖励。这意味着每次赢/输都将返回 [0,0,0,...,0,1] 或 [0,0,0,...,0,-1] 奖励数组。然后他们打折并标准化奖励:

#rwd - array with rewards (ex. [0,0,0,0,0,0,1]), args.gamma is 0.99
prwd = discount_rewards(rwd, args.gamma)
prwd -= np.mean(prwd)
prwd /= np.std(prwd)

discount_rewards 假设是某种标准函数,impl 可以是found here。获胜(+1)的结果可能是这样的:

[-1.487 , -0.999, -0.507, -0.010,  0.492, 0.999, 1.512]

对于松散(-1):

[1.487 , 0.999, 0.507, 0.010,  -0.492, -0.999, -1.512]

因此,每一步都会得到奖励。它们的损失函数如下所示:

loss = tf.reduce_sum(processed_rewards * cross_entropies + move_cost)

请帮我回答下一个问题:

  1. 交叉熵函数可以产生从 0 -> inf 的输出。对吗?
  2. Tensorflow 优化器通过绝对值最小化损失(不关心符号,完美损失始终为 0)。对吗?
  3. 如果语句 2 正确,则损失 7.234 与 -7.234 一样糟糕。对吗?
  4. 如果以上所有内容都是正确的,那么负奖励如何告诉机器它是坏的,而正奖励如何告诉机器它是好的?

我也有read this answer,但我仍然无法理解究竟为什么消极比积极更糟糕。对我来说更有意义的是:

loss = tf.reduce_sum(tf.pow(cross_entropies, reward))

但是那个实验并不顺利。

【问题讨论】:

    标签: python tensorflow machine-learning reinforcement-learning pong


    【解决方案1】:
    1. 交叉熵函数可以从 0 -> inf 产生输出。对吧?

    是的,只是因为我们将它乘以 -1。考虑 log(p) 的自然符号。由于 p 是概率(即介于 0 和 1 之间),所以 log(p) 的范围为 (-inf, 0]。

    1. Tensorflow 优化器通过绝对值最小化损失(不关心符号,完美损失始终为 0)。对吧?

    不,标志很重要。它总结了所有损失,其迹象完好无损。

    1. 如果语句 2 正确,则损失 7.234 与 -7.234 一样糟糕。对吧?

    见下文,在增加奖励方面,损失 7.234 比损失 -7.234 要好得多。整体正损失表明我们的代理正在做出一系列正确的决定。

    1. 如果以上所有内容都正确,那么负奖励如何告诉机器它不好,而正奖励如何告诉机器它是好的?

    Normalizing Rewards to Generate Returns in reinforcement learning 提出了一个很好的观点,即签名奖励用于控制梯度的大小。正/负奖励对梯度大小执行“平衡”行为。这是因为大损失产生的巨大梯度会导致权重发生大的变化。因此,如果您的代理犯了与正确移动一样多的错误,那么该批次的整体更新应该不会很大。

    【讨论】:

      【解决方案2】:

      “Tensorflow优化器通过绝对值最小化损失(不关心符号,完美损失总是0)。对吧?”

      错了。最小化损失意味着尝试获得尽可能小的值。也就是说,-100 比 0“好”。因此,-7.2 好于 7.2。因此,0 的值实际上并没有什么特别的意义,除了许多损失函数的设置使得 0 决定了“最佳”值。但是,这些损失函数通常设置为非负值,因此不会出现正值与负值的问题。例如交叉熵、平方误差等。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-12-06
        • 2018-11-05
        • 2019-04-16
        • 2022-12-28
        • 2016-10-24
        • 2022-09-28
        • 2019-01-18
        • 2021-06-26
        相关资源
        最近更新 更多