7
$\begingroup$

I've built a deep deterministic policy gradient reinforcement learning agent to be able to handle any games/tasks that have only one action. However, the agent seems to fail horribly when there are two or more actions. I tried to look online for any examples of somebody implementing DDPG on a multiple-action system, but people mostly applied it to the pendulum problem, which is a single-action problem.

For my current system, it is a 3 state, 2 continuous control actions system (One is to adjust the temperature of the system, the other one adjusts a mechanical position, both are continuous). However, I froze the second continuous action to be the optimal action all the time. So RL only has to manipulate one action. It solves within 30 episodes. However, the moment I allow the RL to try both continuous actions, it doesn't even converge after 1000 episodes. In fact, it diverges aggressively. The output of the actor-network seems to always be the max action, possibly because I am using a tanh activation for the actor to provide output constraint. I added a penalty to large actions, but it does not seem to work for the 2 continuous control action case.

For my exploratory noise, I used Ornstein-Ulhenbeck noise, with means adjusted for the two different continuous actions. The mean of the noise is 10% of the mean of the action.

Is there any massive difference between single action and multiple action DDPG?

I changed the reward function to take into account both actions, have tried making a bigger network, tried priority replay, etc., but it appears I am missing something.

Does anyone here have any experience building a multiple-action DDPG and could give me some pointers?

$\endgroup$
7
  • 2
    $\begingroup$ Technically, the difference here is between actions in (some subset of) $\mathbb{R}$ and $\mathbb{R}^n$, not between 1 or more "actions". In other words, you have an action space here that might have multiple dimensions, and something is going wrong for your agent when there are 2 or more dimensions. In RL, when something described as "having 2 actions" this is usually an enumeration - i.e. the agent can take action A or action B, and there are no quantities involved. $\endgroup$ – Neil Slater Aug 25 '18 at 7:09
  • 2
    $\begingroup$ Hi Neil, thanks for the reply. Yes, for classic RL, it agents' actions are indeed discrete. However, in 2015, Lilicrap published a paper called "continuous control with deep reinforcement learning", and then in 2017, the TRPO and PPO algorithms were designed to allow agents to perform multiple continuous actions. So you are correct about my action being in a high dimension space. In my research, I am comparing model predictive control using trajectory optimization vs AI-based control. Usually, in robotics and mechatronics, robots move multiple pieces. I am trying to achieve that with RL. $\endgroup$ – Rui Nian Aug 26 '18 at 4:41
  • 1
    $\begingroup$ I suggest you edit a more accurate description of your RL problem to replace the sentence "For my current system, it is a 3 state, 2 action system." - because that is not how it would be described in any literature. May also be worth explaining how you have adjusted the exploration function ("actor noise"), as a mistake there would be key. $\endgroup$ – Neil Slater Aug 26 '18 at 9:16
  • 1
    $\begingroup$ Done! I will also try different exploratory noise means to see if it helps. $\endgroup$ – Rui Nian Aug 27 '18 at 3:46
  • 1
    $\begingroup$ Thanks. I was wondering if you had somehow failed to adjust for different scales of the two axes of action, but it doesn't look like it. I cannot really tell what is wrong. However, I would not personally expect DDPG to be quite so fragile when scaling up from one to two dimensions of action, so I'd still suspect something about your implementation - I just don't know what it could be. $\endgroup$ – Neil Slater Aug 28 '18 at 7:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.