我已经构建了一个深度确定性策略梯度强化学习代理,能够处理任何只有一个动作的游戏/任务。但是,当有两个或更多动作时,代理似乎会严重失败。我试图在网上寻找有人在多动作系统上实现 DDPG 的任何示例,但人们大多将其应用于单动作问题的钟摆问题。
对于我目前的系统,它是一个3状态,2个连续控制动作系统(一个是调节系统的温度,另一个是调节机械位置,都是连续的)。但是,我一直将第二个连续动作冻结为最佳动作。所以 RL 只需要操纵一个动作。它在 30 集内解决。然而,当我允许 RL 尝试这两个连续动作时,它甚至在 1000 集之后都不会收敛。事实上,它的分歧很大。演员网络的输出似乎总是最大动作,可能是因为我正在使用tanh
演员的激活来提供输出约束。我对大动作添加了惩罚,但它似乎不适用于 2 连续控制动作的情况。
对于我的探索性噪音,我使用了 Ornstein-Ulhenbeck 噪音,并针对两种不同的连续动作进行了调整。噪声的平均值是动作平均值的 10%。
单动作和多动作 DDPG 之间有什么巨大的区别吗?
我更改了奖励功能以考虑这两种行为,尝试建立更大的网络,尝试优先重播等,但似乎我错过了一些东西。
这里有没有人有构建多动作 DDPG 的经验,可以给我一些指示?