如何限制特定范围内的演员输出?

时间:2018-05-29 08:31:15

标签: python-3.x tensorflow reinforcement-learning

我试图在过程控制问题上应用深度确定性策略梯度(DDPG)。行动结果是连续的。例如,该过程的温度为25至100℃,或者电动机旋转速率为0至3.0rpm。我的工作目的是通过将最佳动作输出应用于该过程来提高该过程的产品质量。我认为Actor-Critic和DDPG算法将是解决我问题的好方法。

当我实现Actor部分时,我发现大多数在线示例限制了(-1,1)范围内的Actor输出。这是一个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)电机旋转速率?

1 个答案:

答案 0 :(得分:0)

为什么不通过已知“重量”的班轮操作重新调整动作?如果您为了简单而使用logistic而不是tanh作为激活,那么返回tf.add(tf.constant(<lower-bound>), tf.scalar_mul(tf.constant(<upper> - <lower>), action)) 没有测试,但似乎合理。如果你想要tanh,可以直接相应地修复计算。