我无法回答这样的问题:,负回报到底是如何帮助机器避免的?
这个问题的起源来自谷歌的游戏游戏解决方案。根据他们的逻辑,一旦游戏结束(代理赢或输分),环境返回奖励(+1或-1)。任何中间状态返回0作为奖励。这意味着每一次胜利/松散都会返回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假设是某种标准函数,suppose可以是在这里发现的。win (+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)请帮我回答下几个问题:
我也是读这个答案,但是我仍然没有弄明白为什么负面的比正的更糟糕。对我来说,拥有这样的东西更有意义:
loss = tf.reduce_sum(tf.pow(cross_entropies, reward))但实验进行得并不顺利。
发布于 2019-02-19 11:42:59
Tensorflow优化器通过绝对值最小化损失(不关心符号,完全损失总是0),对吗?
不对。尽量减少损失意味着要尽可能地实现一个小的价值。也就是说,-100比0“好”。因此,-7.2优于7.2。因此,一个0的值实际上没有特殊的意义,除了设置了许多损失函数外,0决定了“最优”值。然而,这些损失函数通常被设置为非负函数,因此不存在正负值问题。例如交叉熵、平方误差等。
发布于 2019-02-19 12:43:34
是的,只是因为我们把它乘以-1。思考原木的自然符号(P)。由于p是一个概率(即0到1之间),log(p)的范围为(-inf,0)。
不,标志很重要。它总结了所有的损失和他们的迹象完好无损。
如下所示,从增加奖励的角度看,损失7.234比损失-7.234要好得多。整体的正亏损表明我们的代理人正在做出一系列的好的决定。
归一化奖励在强化学习中产生回报提出了一个非常好的观点,即签名奖励的存在是为了控制梯度的大小。正/负奖励对梯度大小起“平衡”作用。这是因为一个巨大的梯度从一个大的损失会导致一个大的变化,重量。因此,如果您的代理所犯的错误与正确的移动次数一样多,则该批处理的总体更新应该不会很大。
https://stackoverflow.com/questions/54759181
复制相似问题