DDPG算法流程

Introduction

DDPG算法流程包括如何进行采样,然后如何使用采集的样本进行训练,以及如何更新网络。这里忽略了具体的实现原理,更加注重整体上的流程。

DDPG算法流程

DDPG网络结构由现实actor网络、目标actor网络、现实Q网络、目标Q网络这四个网络组成。
现实Actor和目标Actor网络结构一样,输入都是状态,输出是动作
现实Critic和目标Critic网络结构一样,输入都是状态和动作,输出这个状态下采取这个动作的评分Q
DDPG算法流程_第1张图片
DDPG具体使用流程:
步骤1:先初始化现实Actor和现实Critic。然后把现实Actor和现实Critic的网络参数复制到目标Actor和目标Critic网络。就得到了这样四个网络了。
步骤2:我们使用现实Actor与环境进行交互,也就是上图中输入状态S到现实Actor得到动作a,对环境施加动作a,环境会返回给你下一时刻的状态s’和奖励r。于是我们就用四元组(S,a,r,S’)表示这一过程的数据。这个四元组(S,a,r,S’)就表示了在状态S时,采取动作a,得到的奖励r和下一个状态S‘。这个四元组我们也称它为transition,把它放到经验池里面。于是这时就知道了现实Actor网络具有与环境交互,得到样本数据(S,a,r,S’)的功能。
步骤3:现实critic的更新。我们从经验池里面取出现实Actor得到的样本(S,a,r,S’)进行训练。把(S,a,r,S’)中的S和a输入到现实Critic中,得到现实Q(S,a)值,令Q=Q(S,a)。(下面的操作内容结合上面的图来看就非常清晰了)然后把(S,a,r,S’)中的S’输入到目标Actor中,得到动作a‘。并把S’和a’一起输入到目标Critic中,得到Q(S’,a’)于是目标Q值为Q’=r+gamma×Q(S’,a’ )值。 我们希望现实critic输出的Q值要等于目标Q‘的值,于是就是一个监督学习的问题了,Q’看成标签,我们更新现实critic使得输出Q尽量接近标签Q‘。
步骤4:现实Actor的更新。我们再更新现实Actor,因为现实Actor输出的动作,在现实critic里给出了Q值,我们更新Actor使得Q值输出最大。(具体更新公式可以去看别的介绍。本文主要介绍流程,不希望涉及太多公式)
步骤5:目标Actor和目标Critic的更新。然后我们每隔一段时间就把这两个网络的参数,拿去更新目标Actor和目标Critic。
步骤6:然后回到步骤2使用现实Actor去采样,再更新再采样。就是一个循环过程。

你可能感兴趣的:(强化学习,强化学习,机器学习)