(202401)深度强化学习基础2:策略梯度

2024-01-21 01:52

本文主要是介绍(202401)深度强化学习基础2:策略梯度,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
  • 策略梯度
    • 1 基于价值算法的缺点
    • 2 策略梯度算法
    • 3 REINFORCE算法
    • 本章小结

前言

感谢Datawhale成员的开源本次学习内容的文档地址为 第九章 策略梯度

策略梯度

这个章节会开始介绍基于策略梯度的算法。前面的算法都是针对“奖励”或者说“回报(reward)”的,而这次的则是直接对策略本身进行近似优化。这与之前的差别很大,我这里也大约明白了一点为什么任务一直接让人跳到DQN但是却不跳过第二章“马尔克夫决策过程”,因为马尔科夫决策过程是前面介绍过的全部强化学习算法的基础,它提供了可量化的指标从而能够从数学上优化决策。而现在我们大约是将会被介绍一种不同于“马尔科夫决策过程”的方法了!

但是根据我后面看到的内容,我发现并不是这样(QAQ),策略梯度算法也是需要使用“价值”的;具体的容我下面试图理解。

这个方法的粗略描述是,将策略描述成一个带有参数 θ \theta θ的连续函数,某个状态是输出,对应的动作概率分布是输出,乘坐随机性策略。但是看到这里,依然不理解是怎样进行优化的;或许数学功底足够好的人看到“描述成连续函数”就能够恍然大悟,但是我是不理解的,还需要继续看下去。

1 基于价值算法的缺点

  • 无法表示连续动作:可以理解为其实之前的都是一个选择,比如跳格子,前进一步、两步、三步;而实际上机器人的运动控制基本都是连续动作空间。虽然在使用的时候可以把连续的离散化,反正如果是我的话,就凑合着过呗——但是既然现在知道有这样一种能表示连续动作空间的,那就要努力接受。
  • 高方差:基于价值的方法通常都是通过采样的方式来估计价值函数,这样会导致估计的方差很高,从而影响算法的收敛性。然后后面提到改进的DQN算法如改善经验回放、目标网络的方式都可以在一定程度上减小方差,但是不能解决问题。
  • 探索与利用的平衡问题:这一段基本读不懂,请查阅原文,大概意思是说,DQN这些基于价值的算法一般用贪心来实现一定程度的随机,但是不够理想。

2 策略梯度算法

看这位佬的视频多少有一点理解了,这个东西我没法表达了,就不表达了(^ _ ^)。

3 REINFORCE算法

因为策略梯度实际操作起来求解是很困难的,所以要用蒙特卡罗策略梯度算法近似求解:采样一部分且数量足够多的轨迹,然后利用这些轨迹的平均值来近似求解目标函数的梯度。

呃呃,要不我们继续看视频吧。

本章小结

策略梯度算法是强化学习的另一大类算法,介绍了常见策略函数的设计方法,位后面Actor-Critic算法章节做铺垫。

这篇关于(202401)深度强化学习基础2:策略梯度的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/628022

相关文章

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

redis过期key的删除策略介绍

《redis过期key的删除策略介绍》:本文主要介绍redis过期key的删除策略,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录第一种策略:被动删除第二种策略:定期删除第三种策略:强制删除关于big key的清理UNLINK命令FLUSHALL/FLUSHDB命

Python中__init__方法使用的深度解析

《Python中__init__方法使用的深度解析》在Python的面向对象编程(OOP)体系中,__init__方法如同建造房屋时的奠基仪式——它定义了对象诞生时的初始状态,下面我们就来深入了解下_... 目录一、__init__的基因图谱二、初始化过程的魔法时刻继承链中的初始化顺序self参数的奥秘默认

Android Mainline基础简介

《AndroidMainline基础简介》AndroidMainline是通过模块化更新Android核心组件的框架,可能提高安全性,本文给大家介绍AndroidMainline基础简介,感兴趣的朋... 目录关键要点什么是 android Mainline?Android Mainline 的工作原理关键

pytorch自动求梯度autograd的实现

《pytorch自动求梯度autograd的实现》autograd是一个自动微分引擎,它可以自动计算张量的梯度,本文主要介绍了pytorch自动求梯度autograd的实现,具有一定的参考价值,感兴趣... autograd是pytorch构建神经网络的核心。在 PyTorch 中,结合以下代码例子,当你

SpringRetry重试机制之@Retryable注解与重试策略详解

《SpringRetry重试机制之@Retryable注解与重试策略详解》本文将详细介绍SpringRetry的重试机制,特别是@Retryable注解的使用及各种重试策略的配置,帮助开发者构建更加健... 目录引言一、SpringRetry基础知识二、启用SpringRetry三、@Retryable注解

MySQL 分区与分库分表策略应用小结

《MySQL分区与分库分表策略应用小结》在大数据量、复杂查询和高并发的应用场景下,单一数据库往往难以满足性能和扩展性的要求,本文将详细介绍这两种策略的基本概念、实现方法及优缺点,并通过实际案例展示如... 目录mysql 分区与分库分表策略1. 数据库水平拆分的背景2. MySQL 分区策略2.1 分区概念

mysql的基础语句和外键查询及其语句详解(推荐)

《mysql的基础语句和外键查询及其语句详解(推荐)》:本文主要介绍mysql的基础语句和外键查询及其语句详解(推荐),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋... 目录一、mysql 基础语句1. 数据库操作 创建数据库2. 表操作 创建表3. CRUD 操作二、外键

Python基础语法中defaultdict的使用小结

《Python基础语法中defaultdict的使用小结》Python的defaultdict是collections模块中提供的一种特殊的字典类型,它与普通的字典(dict)有着相似的功能,本文主要... 目录示例1示例2python的defaultdict是collections模块中提供的一种特殊的字