基于Pytorch的强化学习(DQN)之REINFORCE VS A2C
Posted ZDDWLIG
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于Pytorch的强化学习(DQN)之REINFORCE VS A2C相关的知识,希望对你有一定的参考价值。
目录
1. 引言
我们前面两次学习了与baseline有关的两种算法:REINFORCE 和 A2C,仔细阅读的同学会发现两者的神经网络的结构是一致的,那么这两者究竟有什么关系呢?
2. 比较
我们先来看看两者的算法
REINFORCE:
- 观测到从 时刻到游戏结束的一个trajectory
- 计算观测到的return
- 计算误差
- 更新策略网络
- 更新价值网络
A2C:
- 观测到一个 transition
- 计算TD target
- 计算TD error
- 更新策略网络
- 更新价值网络
我们可以看到两者不同的地方有三处: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)