DDPG算法是训练一个deterministic policy来处理动作连续的问题,主要是基于DQN的思想,训练一个Q-functon来衡量动作的Q值。一般的DQN方法得到下面这个Q的最优值是很容易的,因为动作是离散的,取对应Q值最大的动作即可。但是在连续动作上就不太好处理了。

DDPG,CONTINUOUS CONTROL WITH DEEP REINFORCEMENT LEARNING 论文阅读

 原始的Q-Learning的贝尔曼方程是:

DDPG,CONTINUOUS CONTROL WITH DEEP REINFORCEMENT LEARNING 论文阅读

贝尔曼方程可以用来学习最优的Q函数,目标函数为:

DDPG,CONTINUOUS CONTROL WITH DEEP REINFORCEMENT LEARNING 论文阅读

 因为连续动作DDPG,CONTINUOUS CONTROL WITH DEEP REINFORCEMENT LEARNING 论文阅读没法像离散动作那样直接得到Q的最大值,所以训练一个actor DDPG,CONTINUOUS CONTROL WITH DEEP REINFORCEMENT LEARNING 论文阅读,让这个actor输出的动作使Q最大。目标函数就变成了:

DDPG,CONTINUOUS CONTROL WITH DEEP REINFORCEMENT LEARNING 论文阅读

其中DDPG,CONTINUOUS CONTROL WITH DEEP REINFORCEMENT LEARNING 论文阅读如下:

DDPG,CONTINUOUS CONTROL WITH DEEP REINFORCEMENT LEARNING 论文阅读

更新时先更新Q网络,再固定Q网络更新actor网络。 

 还有几个tricks:

  • 训练跟DQN一样,使用经验池,一次取一个batch,off-line进行训练。经验池要大一些,可以使得取到的数据不相关。
  • 使用target network,Q网络跟actor都要用,将DDPG,CONTINUOUS CONTROL WITH DEEP REINFORCEMENT LEARNING 论文阅读变成DDPG,CONTINUOUS CONTROL WITH DEEP REINFORCEMENT LEARNING 论文阅读
  •  target network的更新是“soft”的,DDPG,CONTINUOUS CONTROL WITH DEEP REINFORCEMENT LEARNING 论文阅读,让target network的更新变慢,提高学习的稳定性。
  • 通过在动作上加噪声的方法进行动作的探索,DDPG,CONTINUOUS CONTROL WITH DEEP REINFORCEMENT LEARNING 论文阅读DDPG,CONTINUOUS CONTROL WITH DEEP REINFORCEMENT LEARNING 论文阅读是随机噪声。

总体算法流程:

DDPG,CONTINUOUS CONTROL WITH DEEP REINFORCEMENT LEARNING 论文阅读

相关文章: