我正在尝试将深度确定性策略梯度(DDPG)应用于一个过程控制问题。动作输出是连续的。例如,该过程的温度将为25至100摄氏度,或者电机转速将为0至3.0 rpm。我工作的目的是通过将最好的动作输出应用于该过程来提高该过程的产品质量。我认为Actor-Critic和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)的范围内?
发布于 2018-05-30 01:56:09
为什么不通过一个已知“权重”的线性操作来重新缩放操作呢?如果为了简单起见,你使用逻辑而不是tanh作为你的激活,那么返回tf.add(tf.constant(<lower-bound>), tf.scalar_mul(tf.constant(<upper> - <lower>), action))没有测试,但似乎是合理的。如果您想要tanh,则可以简单地相应地修改计算。
https://stackoverflow.com/questions/50579735
复制相似问题