使用DDPG算法,env文件自己写的,代码可以运行,但是训练到最后actor总是选择action_space的边界,这可能是哪些原因造成的?
之前使用DQN算法的时候,也出现了这种现象,当时是两层的网络,隐含层节点也比较少,后来增加了层数和隐含层节点数,结果有变化,但也不是好的或者说没有选择正确的动作,所以怀疑是不是因为DQN对动作空间离散化粒度太小造成的,现在换成了DDPG,想着不对动作空间进行离散化,直接使用连续动作空间会好一些,结果总是选择边界值(action_bound.high),看一些帖子说调参,也进行了尝试,发现没有多大改善。
另外,由于动作空间的上下限并不是对称的,所以尝试修改了输出层的激活函数,原来为tf.nn.tanh,修改为tf.nn.relu有些变化,但是结果也不正确。
请大神不吝赐教,拜谢。