强化学习(三)——Policy Gradients、Actor Critic、DDPG、A3C四种算法思想

一、Policy Gradients算法

       在强化学习(二)中讲过的Q learning算法是根据分析Q值来选取动作,那么本节介绍一个直接输出动作的算法:Policy Gradients。该算法可以在一个连续区间输出动作(输出的动作可以是连续值)。Policy Gradients通过更新神经网络来决定输出策略,那神经网络是如何进行更新呢?利用reward值来引导某一个动作是否应该增加被选的概率(基于概率的算法)。通常在数学上的做法是:给定一个目标函数,找出使目标函数最大的取值。

强化学习(三)——Policy Gradients、Actor Critic、DDPG、A3C四种算法思想_第1张图片

       其中\pi _{\theta }\left (s _{t} ,a_{t}\right )是在状态s采取动作a的概率,v_{t}为评价指标,用reward作为导向。依照上图所示公式来更新神经网络的参数\theta。但Policy Gradients是根据每一回合的输赢来判断该回合中的每一步是好还是坏(回合更新),因此我们引入下面的Actor Critic算法。

二、Actor Critic算法

       合并了以动作概率(Actor)为基础与以值(Critic)为基础的一类强化学习算法。Actor Critic的思想就是从 Critic (单步更新)评判模块得到对动作的好坏评价,然后反馈给 Actor,让 Actor 更新自己的策略。这两个模块用不同的神经网络来代替。但Actor Critic的不足之处在于:每次都是在连续状态中更新参数,每次参数更新前后都存在相关性,导致神经网络只能片面的看待问题,甚至导致神经网络学不到东西。

三、Deep Deterministic Policy Gradient算法

       Deep Deterministic Policy Gradient可拆解为两大部分:Deep和Deterministic Policy Gradient。Deep指的是DQN算法中使用一个记忆库和两个结构相同但参数不同的神经网络。Deterministic Policy Gradient指:Policy Gradient本是随机选择一个分布的动作,但现在Deterministic Policy Gradient改变了输出动作过程,使得输出更加确定。

强化学习(三)——Policy Gradients、Actor Critic、DDPG、A3C四种算法思想_第2张图片

       上图算法中\bigtriangledown _{a}Q\left ( S,a|\theta ^{Q} \right )表示从从critic net来的,指导actor net的动作要怎么移动,才能获取大的Q值。\bigtriangledown _{\theta ^{\mu } }\mu \left ( s|\theta ^{\mu } \right )表示actor net要怎么修改自身网络的参数,才更有可能做这个动作。总的来说就是朝着获取更大的Q值的那个动作来修改参数。y_{i}的表达式是针对critic网络进行更新的,这借助了Deep Q learning的方式。

       综上所述:这种方法就是deep actor net+deep  critic net两部分,每部分又有两个结构相同,参数更新不同的神经网络。采用deep神经网络可以切断相关性,提高收敛性。此外Deep Deterministic Policy Gradient可适用于无限动作的情况,因为在该算法中,我们采用向量表示动作,由于向量空间是无限的,那么也可以对应无限的动作空间。

四、Asynchronous Advantage Actor-Critic(A3C)算法

       创建多个并行环境,让多个拥有副结构的agent同时在这些并行环境上更新主环境中的参数(效率高)。并行的agent互不干扰,且主环境的更新受到副结构更新的不连续干扰(相关性降低,收敛性提高)。类似于有多个相同的机器人共同干着一件事,比如玩游戏,他们的经验上传到中央大脑,又从中央大脑获取到玩游戏的方法。

强化学习(三)——Policy Gradients、Actor Critic、DDPG、A3C四种算法思想_第3张图片

       A3C的思想就是中央大脑即:global net和它的参数,每个机器人:global net的副本local net。local net定时push自己的更新到global net,定时从global net中pull最新的综合更新。Actor根据二次分布(normal distribution:由均值和方差确定)选择动作。另外还需要Critic传过来的TD_error作为梯度下降的导向(这和Policy gradients算法中的公式吻合)。Critic需要得到状态的价值,因为这样才能计算出TD_error。

      

你可能感兴趣的:(强化学习(三)——Policy Gradients、Actor Critic、DDPG、A3C四种算法思想)