DQN/Policy Gradients/Actor_Critic/DDPG三种算法的关系

http://dy.163.com/v2/article/detail/DPDH2SLF053110J9.html

DQN特点

以值为基础,可以单步更新。这种结构只需要输入一个state,然后输出是所有动作的Q-value,当Action太多时,这种结构明显的就不适用。适合小动作空间。
DQN/Policy Gradients/Actor_Critic/DDPG三种算法的关系_第1张图片

Policy Gradients的特点

1.可以不分析奖惩,直接输出行为,甚至可以为 Policy Gradients 加上一个神经网络来输出预测的动作。对比起以值为基础的方法, Policy Gradients 直接输出动作的最大好处就是, 它能在一个连续区间内挑选动作, 而基于值的, 比如 Q-learning, 它如果在无穷多的动作中计算价值, 从而选择行为,则可能崩溃。
2.观测的信息通过神经网络分析, 选出了行为, 我们直接进行反向传递, 使之下次被选的可能性增加, 但是奖惩信息却告诉我们, 这次的行为是不好的, 那我们的动作可能性增加的幅度随之被减低. 这样就能靠奖励来左右我们的神经网络反向传递
3.Policy Gradients没有误差。 但是他的确是在进行某一种的反向传递,这种反向传递的目的是让这次被选中的行为更有可能在下次发生。这次被选中的行为在下次发生的概率由奖惩决定。
4.适合大动作空间

Actor Critic的特点

1.原来 Actor-Critic 的 Actor 的前生是Policy Gradients, 这能让它毫不费力地在连续动作中选取合适的动作, 而 Q-learning 做这件事会瘫痪. 那为什么不直接用 Policy Gradients 呢? 原来 Actor Critic 中的 Critic 的前生是 Q-learning 或者其他的 以值为基础的学习法 , 能进行单步更新, 而传统的Policy Gradients 则是回合更新, 这降低了学习效率。
2.Policy Gradients中, 现实中的奖惩会左右 Actor 的更新情况。 Policy Gradients 也是靠着这个来获取适宜的更新. 那么何时会有奖惩这种信息能不能被学习呢?
这看起来不就是以值为基础的强化学习方法做过的事吗。那我们就拿一个 Critic 去学习这些奖惩机制, 学习完了以后,由 Actor 来指手画脚, 由 Critic 来告诉 Actor 你的那些指手画脚哪些指得好, 哪些指得差, Critic 通过学习环境和奖励之间的关系, 能看到现在所处状态的潜在奖励, 所以用它来指点 Actor 便能使 Actor 每一步都在更新, 如果使用单纯的 Policy Gradients, Actor 只能等到回合结束才能开始更新。
3.适合大的动作空间。

小结:
Actor的前生是Policy Gradients,而Policy Gradients是回合更新,学习效率低。
Critic的前生是Q-learning或者其他的以值为基础的学习法,可以进行单步更新,效率更高。
Actor输入一个具体的state,输出一个action,然后Critic输入这个state和Actor输出的action,得到一个Q-value。
Actor根据Critic的反馈来更新自身的策略。

DQN/Policy Gradients/Actor_Critic/DDPG三种算法的关系_第2张图片

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