(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 DTO(最新推荐)

《深度解析JavaDTO(最新推荐)》DTO(DataTransferObject)是一种用于在不同层(如Controller层、Service层)之间传输数据的对象设计模式,其核心目的是封装数据,... 目录一、什么是DTO?DTO的核心特点:二、为什么需要DTO?(对比Entity)三、实际应用场景解析

深度解析Java项目中包和包之间的联系

《深度解析Java项目中包和包之间的联系》文章浏览阅读850次,点赞13次,收藏8次。本文详细介绍了Java分层架构中的几个关键包:DTO、Controller、Service和Mapper。_jav... 目录前言一、各大包1.DTO1.1、DTO的核心用途1.2. DTO与实体类(Entity)的区别1

深度解析Python装饰器常见用法与进阶技巧

《深度解析Python装饰器常见用法与进阶技巧》Python装饰器(Decorator)是提升代码可读性与复用性的强大工具,本文将深入解析Python装饰器的原理,常见用法,进阶技巧与最佳实践,希望可... 目录装饰器的基本原理函数装饰器的常见用法带参数的装饰器类装饰器与方法装饰器装饰器的嵌套与组合进阶技巧

深度解析Spring Boot拦截器Interceptor与过滤器Filter的区别与实战指南

《深度解析SpringBoot拦截器Interceptor与过滤器Filter的区别与实战指南》本文深度解析SpringBoot中拦截器与过滤器的区别,涵盖执行顺序、依赖关系、异常处理等核心差异,并... 目录Spring Boot拦截器(Interceptor)与过滤器(Filter)深度解析:区别、实现

深度解析Spring AOP @Aspect 原理、实战与最佳实践教程

《深度解析SpringAOP@Aspect原理、实战与最佳实践教程》文章系统讲解了SpringAOP核心概念、实现方式及原理,涵盖横切关注点分离、代理机制(JDK/CGLIB)、切入点类型、性能... 目录1. @ASPect 核心概念1.1 AOP 编程范式1.2 @Aspect 关键特性2. 完整代码实

SpringBoot中4种数据水平分片策略

《SpringBoot中4种数据水平分片策略》数据水平分片作为一种水平扩展策略,通过将数据分散到多个物理节点上,有效解决了存储容量和性能瓶颈问题,下面小编就来和大家分享4种数据分片策略吧... 目录一、前言二、哈希分片2.1 原理2.2 SpringBoot实现2.3 优缺点分析2.4 适用场景三、范围分片

SpringBoot开发中十大常见陷阱深度解析与避坑指南

《SpringBoot开发中十大常见陷阱深度解析与避坑指南》在SpringBoot的开发过程中,即使是经验丰富的开发者也难免会遇到各种棘手的问题,本文将针对SpringBoot开发中十大常见的“坑... 目录引言一、配置总出错?是不是同时用了.properties和.yml?二、换个位置配置就失效?搞清楚加

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据

Redis过期删除机制与内存淘汰策略的解析指南

《Redis过期删除机制与内存淘汰策略的解析指南》在使用Redis构建缓存系统时,很多开发者只设置了EXPIRE但却忽略了背后Redis的过期删除机制与内存淘汰策略,下面小编就来和大家详细介绍一下... 目录1、简述2、Redis http://www.chinasem.cn的过期删除策略(Key Expir

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和