强化学习- Actor-Critic 算法

    提出理由:: REINFORCE算法是蒙特卡洛策略梯度,整个回合结束计算总奖励 G,方差大,学习效率低。G 随机变量,给同样的状态 s,给同样的动作 a,G 可能有一个固定的分布,但是采取采样的方式,本身就有随机性。

   解决方案:单步更新TD。直接估测 G 这个随机变量的期望值 ,拿期望值代替采样的值基于价值的(value-based)的方法 Q-learning。

Actor-Critic 算法,结合 策略梯度+时序差分 的方法:

  • 演员(Actor)是指策略函数πθ​(a∣s),即学习一个策略来得到尽量高的回报。
  • 评论家(Critic)是指值函数Vπ(s),对当前策略的值函数进行估计,即评估演员的好坏。
  • 借助于值函数,演员-评论家算法可以进行单步更新参数,不需要等到回合结束才进行更新。

知名算法: A3C(Asynchronous Advantage Actor-Critic)

  • 如果去掉 Asynchronous(异步),只有 Advantage Actor-Critic,就叫做 A2C
  • 如果加了 Asynchronous,变成 Asynchronous Advantage Actor-Critic,就变成 A3C

Actor-Critic

(1) Q-function 的定义 - - 在某一个状态 s,采取某一个动作 a,假设 policy 就是 π 的情况下会得到的累积奖励的期望值有多大。就是 G 的期望值。累积奖励的期望值就是 G 的期望值。

A2C Advantage Actor-Critic

      出现原因:上图中 会出现两个 估计的网络 Q-network 和 V-network,估测不准的风险就变成两倍 。所以希望只有一个。

     解决方案:Q 用 V表示:

 理由:在状态 s 采取动作 a,会得到奖励 r,然后跳到状态 st+1​。但是会得到什么样的奖励 r,跳到什么样的状态 st+1​,它本身是有随机性的。所以要把右边这个式子,取期望值它才会等于 Q-function。

   直接 把期望去掉, Q-function 用 r + V 取代掉 ,就不需要估计 Q 了,只需要估计 V  一个网络就够了。【经验验证结果最好的方案】

 上图 rtn​+Vπ(st+1n​)−Vπ(stn​) 叫做 Advantage function

流程:

1.初始策略 π,有个初始的 actor 去跟环境做互动,先收集资料。

2.先拿这些资料去估计价值函数,可以用 TD 或 MC 来估计价值函数 。

3. 估计完价值函数,代入梯度公式中更新策略 π。

tips

 (1)绿色的Network 是 V function 橙色的 和 policy 紫色的 的网络(也就是 actor)共享的,输入都是 s,所以它们前面几个层(layer)共享的。会让 actor 跟 critic 的前面几个层 共用同一组参数,例如 那这一组参数可能是 CNN 的参数,用于 将 输入的图像像素 变成比较 高级的信息 。

  • Critic 网络 Vπ(s)  输入 一个状态,输出 一个标量。
  • Actor 网络 π(s)  输入 一个状态,
    • 如果动作是离散的,输出就是一个动作的分布。
    • 如果动作是连续的,输出就是一个连续的向量。

(2)探索(exploration)。对 π 的 输出 的分布下一个约束,使得这个分布的 熵(entropy)不要太小,也就是希望不同的动作它的被采用的概率平均一点。这样在测试的时候,它才会多尝试各种不同的动作,才会把环境探索的比较好

A3C

  提出原因:强化学习训练很慢

  解决方案:同时开很多个 worker,那每一个 worker 其实就是一个影分身。那最后这些影分身会把所有的经验,通通集合在一起。(需要多cpu)

注意:

1.每一个 worker 工作前都会 global network 的参数复制过来

2.每一个 actor 跟环境做互动,互动完之后,就会计算出梯度。计算出梯度以后,就会要拿梯度去更新 global network 的参数。

3.所有的 actor 都是平行跑的,每一个 actor 就是各做各的,不管彼此

Pathwise Derivative Policy Gradient

改进Q-learning,解 连续动作 的一种特别的方法

Connection with GAN

代码实践

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值