如何在特定范围内限制Actor输出?



我正在尝试在过程控制问题上应用深度确定性策略梯度(DDPG(。动作输出是连续的。例如,过程温度为 25 至 100 摄氏度,或电机转速为 0 至 3.0 rpm。我工作的目的是通过将最佳操作输出应用于该过程来提高该过程的产品质量。我认为演员-评论家和DDPG算法将是解决我问题的好方法。

当我实现Actor部分时,我发现网上的大多数示例都将Actor输出限制在(-1,1(范围内。这是一个tanh激活函数。

import tensorflow as tf
def actor_network(state):
net = tf.layers.dense(state, 100, activation=tf.nn.relu)
action = tf.layers.dense(net, action_dimension, activation=tf.nn.tanh)
return action

这是我的问题:

我应该如何修改我的执行器网络,以将动作输出限制在温度的 (25, 100( 和电机旋转速率的 (0, 3.0( 范围内?

为什么不通过具有已知"权重"的衬垫操作来重新缩放动作?如果您为简单起见使用逻辑而不是 tanh 作为您的激活,则返回tf.add(tf.constant(<lower-bound>), tf.scalar_mul(tf.constant(<upper> - <lower>), action))没有测试过,但似乎很合理。如果你想要tanh,可以直接相应地修复计算。

最新更新