actor-critic 算法学习笔记

本文深入探讨actor-critic算法,对比基于值和策略的算法,阐述actor-critic如何结合两者优势。通过批评网络学习状态奖励映射,并指导演员网络更新。同时,介绍了TD-error算法在强化学习中的应用,分析它与蒙特卡洛算法的区别。文章提供actor和critic网络的代码实现。
摘要由CSDN通过智能技术生成

目录

1、基于值的算法和基于策略的算法对比

2、actor-critic 算法

3、TD-error 算法

critic 网络代码

actor网络代码


1、基于值的算法和基于策略的算法对比

  •  基于值的算法,典型的例子是 Deep Q learning。根据状态预测奖励值 (V(s)  表示 值函数),然后选择对应V(s)最大的动作。是不适用于连续的空间的,如果在无穷多的动作中计算价值,从而选择行为,其空间是无穷大的。
  • 基于策略的算法,典型的算法是 policy gradient。直接针对策略来进行优化。不需要分析奖励值,直接就可以选取动作。离散和连续都是适应的,可以在一个连续的空间内挑选动作。

2、actor-critic 算法

      policy gradient需要经过一整个episode之后,才可以获得reward。actor-critic算法是基于policy gradient上进行改进的算法,结合了policy gradient和动态规划的优势。

      actor-critic算法使用critic网络来学习环境和奖励之间的映射关系, 能够预测现在所处状态的潜在奖励, 利用critic网络来指导actor网络的更新,每个时刻都可以进行更新。actor网络可以根据输入的状态得到动作上的概率分布,本质上是一个策略网络,critic网络本质上是一个基于值的算法,根据输入的状态,输出当前状态的潜在奖励。使用时序差分误差来优化critic网络,然后使用策略梯度来优化actor网络。本文档提供了具体的代码实现。

3、TD-error 算法

     TD-error算法和蒙特卡洛算法都是model-free算法,不需要对环境进行建模,使用样本结果来估计环境反馈的奖励值(使用采样的方法来估计状态值函数,而动态规划则是直接使用model计算得到的)。对于蒙特卡洛算法和TD-error算法,其不同点主要在于值函数的估计。蒙特卡洛算法在进行估计的时候,得估计整个eposide对应的值函数,而TD算法,只是使用下个时刻的值函数来帮助当前时刻的值函数更新。蒙特卡洛算法和TD算法对比如下:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值