通过强化学习回归

Regression through reinforcement learning

我正在尝试构建一个可以使用 RL 玩 Pocket Tanks 的 Agent。我现在面临的问题是如何训练神经网络输出正确的功率和角度。所以而不是动作分类。我想要回归。

为了输出正确的功率和角度,您需要做的就是进入您的神经网络架构并更改最后一层的激活。

在您的问题中,您声明您当前正在使用动作分类输出,因此它很可能是 softmax 输出层。我们可以在这里做两件事:

  1. 如果功率和角度有硬约束,例如角度不能大于360°,或者功率不能超过700kW,我们可以将softmax输出改为TanH输出(双曲正切),乘以power/angle的约束。这将创建一个 "scaling effect",因为 tanh 的输出在 -1 和 1 之间。将 tanh 的输出乘以 power/angle 的约束可确保始终满足约束并且输出是正确的 power/angle.

  2. 如果没有约束你的问题。我们可以简单地一起删除 softmax 输出。移除 softmax 允许输出不再被限制在 0 和 1 之间。神经网络的最后一层将简单地充当线性映射,即 y = Wx + b。

希望对您有所帮助!

编辑:在这两种情况下,训练神经网络的奖励函数可能只是 MSE 损失。示例:损失 = (real_power - estimated_power)^2 + (real_angle - estimated_angle)^2