基于Pytorch的强化学习(DQN)之REINFORCE VS A2C

Posted ZDDWLIG

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于Pytorch的强化学习(DQN)之REINFORCE VS A2C相关的知识,希望对你有一定的参考价值。

目录

1. 引言

2. 比较

3. 本质联系


1. 引言

我们前面两次学习了与baseline有关的两种算法:REINFORCE 和 A2C,仔细阅读的同学会发现两者的神经网络的结构是一致的,那么这两者究竟有什么关系呢?

2. 比较

我们先来看看两者的算法

REINFORCE:

  1. 观测到从 时刻到游戏结束的一个trajectory
  2. 计算观测到的return
  3. 计算误差
  4. 更新策略网络 
  5. 更新价值网络 

A2C:

  1. 观测到一个 transition 
  2. 计算TD target 
  3. 计算TD error 
  4. 更新策略网络 
  5. 更新价值网络 

我们可以看到两者不同的地方有三处:1,2,3。先看 REINFORCE 算法,REINFORCE 算法是以  时刻的 return 为目标,所以我们要先观测到是一个trajectory,使用baseline单纯只是为了减小随机过程的方差,使其收敛更快。再来看A2C算法,A2C本质上是一个Actor-Critic方法,是基于TD算法的,所以使用的是部分真实的信息而不是完全真实的信息,所以只需要观测到一个transition就行了而不需要等到游戏结束,这两者参数更新的方式都是一样的。

3. 本质联系

两种算法在本质上是有联系的,由于A2C是基于TD算法的,于是在A2C的第2步中,我们可以使用Multi-step方法 来提升收敛速度,也就是说我们修改TD target为 ,当  时TD target便变成了  时刻的return,A2C便变成了REINFORCE,所以我们可以将REINFORCE看成时A2C的一个特例,这便是两者的本质联系。

与50位技术专家面对面 20年技术见证,附赠技术全景图

以上是关于基于Pytorch的强化学习(DQN)之REINFORCE VS A2C的主要内容,如果未能解决你的问题,请参考以下文章

基于Pytorch的强化学习(DQN)之Q-learning

基于Pytorch的强化学习(DQN)之 Baseline 基本概念

基于Pytorch的强化学习(DQN)之 Multistep TD target

(pytorch复现)基于深度强化学习(CNN+dueling network/DQN/DDQN/D3QN)的自适应车间调度(JSP)

(pytorch复现)基于深度强化学习(CNN+dueling network/DQN/DDQN/D3QN)的自适应车间调度(JSP)

(pytorch复现)基于深度强化学习(CNN+dueling network/DQN/DDQN/D3QN/PER)的自适应车间调度(JSP)