【从RL到DRL】深度强化学习基础(四)——策略梯度中的Baseline,Reinforce与A2C的对比

带有Baseline的策略梯度

策略梯度方法中常用Baseline来降低方差,可以让收敛更快

数学推导

定义Baseline函数b,它与变量A是完全独立的,则根据之前推导的公式,可以得到如下推论:在这里插入图片描述
由此得到性质:如果b独立于动作A则b·f(A)关于A求期望的值为0.则前文的策略梯度求解公式就可以加入Baseline变形为:在这里插入图片描述
总结:如果Baseline函数b与动作A无关,则策略梯度就可以表示为:在这里插入图片描述

b不会影响期望的求解,但是会影响蒙特卡洛近似的进行。

蒙特卡洛近似(With Baseline)

将梯度算式中的期望部分记为g(At),依据策略函数π(·|st;θ)随机选择动作at,并可以计算出g(at),g(at)就可以最为关于策略梯度的一个无偏估计在这里插入图片描述
实际训练网络时,就可以使用g(at)来做梯度上升。在看g(at)的表达式,因为b与A完全独立,因此b的加入不会 影响期望值,但是b的加入会影响到具体的g(at)值,选择合适的b,可以使得g(at)有更小的方差(越接近Qπ)

Reinforce With Baseline

Reinforce:使用观测到的回报ut来近似Qπ
取上文中的b为Vπ(st),并用神经网络函数近似Qπ,得到如下关系式:在这里插入图片描述

一共使用了三次近似(包含两次蒙特卡洛)

因此需要两个网络,一个用来控制Agent,也即策略网络,另一个用来训练价值,也即价值网络。

使用Reinforce算法训练:

策略网络在这里插入图片描述
价值网络Value Network
在这里插入图片描述
更新通过策略梯度更新策略网络,使用梯度上升思想:
在这里插入图片描述
更新价值网络:因为公式中是使用v(st,w)来近似的ut。因此希望通过学习过程的进行,两者的误差逐渐减小,便是一个梯度下降的过程。
在这里插入图片描述

Advantage Actor-Critic(A2C)

将Baseline应用于AC网络
在这里插入图片描述
这与原来的AC网络结构完全一致,关键在于如何训练神经网络。

A2C的训练:

  • 观测到一个transition:

在这里插入图片描述

  • 计算TDtarget:在这里插入图片描述
  • 计算TD error:在这里插入图片描述
  • 分别更新策略网络与价值网络:在这里插入图片描述

Reinforce与A2C对比

A2C与Reinforce虽然使用的神经网络基本一致,但是价值网络的功能有所区别。A2C中的价值网络也即Critic角色,用来评价动作价值的好坏。而Reinforce中的价值网络仅仅是一个Baseline而已,其唯一用途就是降低随机梯度的方差。
回顾Reinforce with Baseline的计算过程:在这里插入图片描述
其余A2C的最大不同之处是,Reinforce方法是使用了一整个过程中的真实回报ut来计算误差,而A2C方法使用的则是 TD Error,部分基于价值函数,部分基于环境的真实回报。
A2C通常使用多步TDTarget(With Bootstrapping):在这里插入图片描述
Reinforce则使用观测 到的回报:在这里插入图片描述
ut可以理解为yt的一种特例,也即Reinforce也是A2C的一种特例

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值