深度确定性策略梯度、稀疏奖励(强化学习蘑菇书第十、十一章)

深度确定性策略梯度

离散动作是可数的,连续动作不可数,有时候动作连续(比如说推力大小,方向盘转动的具体角度)这些情况下,Q学习和DQN等算法都不方便处理。在这种情况下,输出连续的动作,我们还是要使用神经网络。

随机性策略确定性策略
输入某个状态s,输出概率,根据概率来选择某一个动作(具有一定随机性)不受概率的影响,神经网络的参数固定时,输入同样的状态,输出的动作也是同样的

所以,在连续控制领域,我们使用深度确定性策略梯度(Deep Deterministic Policy Gradient,简称 DDPG)。DDPG 的特点可以从它的名字当中拆解出来,拆解成 Deep、Deterministic 和 Policy Gradient。(深度、确定性和策略梯度)
Deep 是因为用了神经网络;
Deterministic 表示 DDPG 输出的是一个确定性的动作,可以用于连续动作的一个环境;
Policy Gradient 代表的是它用到的是策略网络。REINFORCE 算法每隔一个 episode 就更新一次,但 DDPG 网络是每个 step 都会更新一次 policy 网络,也就是说它是一个单步更新的 policy 网络。
在这里插入图片描述

DDPG 是 DQN 的一个扩展的版本。
在 DDPG 的训练中,它借鉴了 DQN 的技巧:目标网络和经验回放。
经验回放这一块跟 DQN 是一样的,但 target network 这一块的更新跟 DQN 有点不一样。DDPG在DQN基础上加了policy network,就可以直接输出动作值,所以DDPG一边学习Q网络,一边学习policy network,Q 网络的参数用 w来表示。策略网络的参数用 θ 来表示。
我们称这样的结构为 Actor-Critic 的结构。
在这里插入图片描述
DDPG 有四个网络,策略网络的 target 网络 和 Q 网络的 target 网络就是颜色比较深的这两个,它只是为了让计算 Q_target 的时候能够更稳定一点而已。因为这两个网络也是固定一段时间的参数之后再跟评估网络同步一下最新的参数。
在这里插入图片描述
这里面训练需要用到的数据就是 s,a,r,s’, 我们只需要用到这四个数据。我们就用 Replay Memory 把这些数据存起来,然后再 sample 进来训练就好了。这个经验回放的技巧跟 DQN 是一模一样的。注意,因为 DDPG 使用了经验回放这个技巧,所以 DDPG 是一个 off-policy 的算法。
在这里插入图片描述
再补一点Q学习角度的DDPG:
以往的实践证明,如果只使用单个”Q神经网络”的算法,学习过程很不稳定,因为Q网络的参数在频繁gradient update的同时,又用于计算Q网络和策略网络的gradient, 参见下面等式(1),(2),(3).
基于此,DDPG分别为策略网络、Q网络各创建两个神经网络拷贝,一个叫做online,一个叫做target:在训练完一个mini-batch的数据之后,通过SGA/SGD算法更新online网络的参数,然后再通过soft update算法更新 target 网络的参数。soft update是一种running average的算法:

优点:target网络参数变化小,用于在训练过程中计算online网络的gradient,比较稳定,训练易于收敛。
代价:参数变化小,学习过程变慢。
在这里插入图片描述

使用深度确定性策略梯度解决倒立摆问题

前面的都是离散的环境,这里的pendulum-v1是连续型的环境。实践了这个代码,还没补上,明天补上

第十章的课后题总结

高冷的面试官:请简述一下DDPG算法?

答:深度确定性策略梯度(Deep Deterministic Policy Gradient,简称 DDPG) 使用 Actor Critic 结构,但是输出的不是行为的概率,,而是具体的行为,用于连续动作的预测。优化的目的是为了将DQN扩展到连续的动作空间。另外,其字如其名:

Deep 是因为用了神经网络;
Deterministic 表示 DDPG 输出的是一个确定性的动作,可以用于连续动作的一个环境;
Policy Gradient 代表的是它用到的是策略网络。REINFORCE 算法每隔一个 episode 就更新一次,但 DDPG 网络是每个 step 都会更新一次 policy 网络,也就是说它是一个单步更新的 policy 网络。
高冷的面试官:你好,请问DDPG是on-policy还是off-policy,原因是什么呀?

答:off-policy。解释方法一,DDPG是优化的DQN,其使用了经验回放,所以为off-policy方法;解释方法二,因为DDPG为了保证一定的探索,对于输出动作加了一定的噪音,也就是说行为策略不再是优化的策略。

高冷的面试官:你是否了解过D4PG算法呢?描述一下吧。

答:分布的分布式DDPG(Distributed Distributional DDPG ,简称 D4PG),相对于DDPG其优化部分为:

分布式 critic: 不再只估计Q值的期望值,而是去估计期望Q值的分布, 即将期望Q值作为一个随机变量来进行估计。
N步累计回报: 当计算TD误差时,D4PG计算的是N步的TD目标值而不仅仅只有一步,这样就可以考虑未来更多步骤的回报。
多个分布式并行actor:D4PG使用K个独立的演员并行收集训练样本并存储到同一个replay buffer中。
优先经验回放(Prioritized Experience Replay,PER):使用一个非均匀概率 \piπ 从replay buffer中采样。

稀疏奖励

如果环境中的奖励很稀疏,强化学习问题就会比较困难,那么一般来说通过三个方向来进行解决:
设计奖励、课程学习和分层强化学习。
这一章节中,概念比较多,做了一个简单的总结吧:
第一个方向是 reward shaping。Reward shaping 的意思是说环境有一个固定的 reward,它是真正的 reward,但是为了让 agent 学出来的结果是我们要的样子,我们刻意地设计了一些 reward 来引导我们的 agent。
第二个方向是 curriculum learning 。Curriculum learning 不是 reinforcement learning 所独有的概念,其实在 machine learning,尤其是 deep learning 里面,你都会用到 curriculum learning 的概念。举例来说,curriculum learning 的意思是说,你为机器的学习做规划,你给他喂 training data 的时候,是有顺序的,通常都是由简单到难。
第三个方向是分层强化学习(hierarchical reinforcement learning,HRL)。分层强化学习是说,我们有好几个 agent。然后,有一些 agent 负责比较 high level 的东西,它负责订目标,然后它订完目标以后,再分配给其他的 agent,去把它执行完成。
reward shaping方法存在什么主要问题?
答:主要的一个问题是我们人为设计的reward需要domain knowledge,需要我们自己设计出符合environment与agent更好的交互的reward,这需要不少的经验知识,需要我们根据实际的效果进行调整。
Ref:
【1】https://datawhalechina.github.io/easy-rl/#/
【2】SUTTON R S,BARTO AG.Reinforcement Learning:An introduction (second edition) [M].London: The MIT Press,2018
【3】邱锡鹏.神经网络与深度学习[M].北京:机械工业出版社,2020

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值