docstr: update actor and critic model of self.models[model_id] with DDPG algorithm
          
docstr_tok: ["update","actor","and","critic","model","of","self.models","[","model_id","]","with","DDPG","algorithm"]
code: def learn(
      self,
      obs,
      action,
      reward,
      next_obs,
      terminal,
      actor_lr,
      critic_lr,
      model_id,
  ):
      """update actor and critic model of self.models[model_id] with DDPG algorithm"""
      actor_cost = self._actor_learn(obs, actor_lr, model_id)
      critic_cost = self._critic_learn(
          obs, action, reward, next_obs, terminal, critic_lr, model_id
      )
      return actor_cost, critic_cost
  
file_path: PARL/examples/NeurIPS2018-AI-for-Prosthetics-Challenge/multi_head_ddpg.py
imports: import parl
  from parl import layers
  from copy import deepcopy
  from paddle import fluid
label_desc: Use image node_id 4 for calling the MultiHeadDDPG obj's underlying member method code with example usage: obj.learn(obs, action, reward, next_obs, terminal, actor_lr, critic_lr, model_id) and returns: actor_cost,  critic_cost