200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 【从RL到DRL】深度强化学习基础(四)——策略梯度中的Baseline Reinforce与A2C的对比

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

时间:2024-07-06 06:31:26

相关推荐

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

目录

带有Baseline的策略梯度数学推导蒙特卡洛近似(With Baseline) Reinforce With Baseline使用Reinforce算法训练: Advantage Actor-Critic(A2C)A2C的训练: 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的一种特例

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。