分层强化学习(Hierarchical Reinforcement Learning, HRL)最早一般视为1993封建强化学习的提出.

一、HL的基础理论

1.1 MDP

MDP(马尔可夫决策过程):MDP是一种用于建模序列决策问题的框架,包含状态(state)、动作(action)、转移概率(transition probability)、奖励(reward)等要素。它假设系统在每个时间步的状态转移是马尔可夫的,即当前状态和动作决定了下一个状态的概率分布。MDP的时间步是固定的,每次状态转移都发生在相同的时间间隔内.

1.主要理论
  • 马尔可夫决策过程(MDP):强化学习的核心数学模型,包括状态、动作、奖励和转移概率。
  • 贝尔曼方程:用于计算价值函数和最优策略的递推关系。
  • 折扣因子与回报:通过折扣因子对未来的奖励进行折现,以计算长期回报。
  • 策略与价值函数:策略定义了在每个状态下选择动作的方式,价值函数评估状态或动作的价值。
  • 最优性与贝尔曼最优性方程:用于确定最优策略和最优价值函数
2. 算法分类

在这里插入图片描述

1.2 SMDP

SMDP(半马尔可夫决策过程):SMDP是MDP的扩展,用于处理动作持续时间不固定的情况。在SMDP中,每个动作的执行时间(称为停留时间)是一个随机变量,状态在这段时间内保持不变SMDP的状态转移不仅取决于当前状态和动作,还与动作的持续时间有关.

1. 定义

SMDP可以定义为一个五元组 (S,A,P,T,R):

  • S:状态集合。
  • A:动作集合。
  • P:状态转移概率,表示从状态 s 执行动作 a 转移到状态 s′ 的概率。
  • T:动作的停留时间分布,表示动作持续的时间步数。
  • R:奖励函数,表示在状态 s 执行动作 a 获得的即时奖励
2. 关键公式
  • 期望回报:SMDP的目标是在不同时间间隔的任务中最大化长期期望回报。其回报函数包括时间间隔的折扣:

R = ∑ t = 0 ∞ γ τ t r t R=\sum_{t=0}^{∞} \gamma^{\tau_t}r_t R=t=0γτtrt
γ \gamma γ 是折扣因子, τ t \tau_t τt​ 是动作持续的时间间隔

  • Bellman方程:SMDP的值函数可以通过Bellman方程扩展为半马尔可夫形式。在给定策略 π 下,状态 s 的值函数表示为:
    V π ( s ) = E π [ r ( s , a ) + γ τ V π ( s ′ ) ] V^{\pi}(s) =\mathbb{E}_{\pi}[r(s,a)+\gamma^{\tau}V^{\pi}(s')] Vπ(s)=Eπ[r(s,a)+γτVπ(s)]

其中, r ( s , a ) r(s,a) r(s,a) 是在状态 s 执行动作 a 的即时奖励, τ \tau τ 是动作持续时间,s′ 是转移后的状态

  • Q-learning扩展:SMDP中的Q-learning算法类似于标准的Q-learning,但需要考虑时间间隔的影响。其Q值更新公式为:

Q ( s , a ) ← Q ( s , a ) + α ( r + γ τ max ⁡ a ′ Q ( s ′ , a ′ ) − Q ( s , a ) ) Q(s,a) \leftarrow Q(s,a)+\alpha(r+\gamma^{\tau} \max_{a'} Q(s',a')-Q(s,a)) Q(s,a)Q(s,a)+α(r+γτamaxQ(s,a)Q(s,a))

其中,α 是学习率

3. 分层架构

SMDP在分层强化学习中常用于建模高层策略和低层策略的不同时间尺度:

  • 高层策略:负责选择长期目标或子任务,这些目标可能需要多个时间步来完成

  • 低层策略:在较短的时间步内执行具体动作,以实现高层策略设定的目标

1.3 MDP和SMDP的异同

特性MDPSMDP
时间步时间步是固定的,每次状态转移的时间间隔相同时间步是可变的,每个动作的持续时间是一个随机变量
状态转移转移概率仅依赖于当前状态和动作转移概率不仅依赖于当前状态和动作,还与动作的持续时间有关
适用场景适用于固定时间步的决策问题,如机器人每秒更新状态适用于动作持续时间不固定的复杂任务,如无人机在目标区域盘旋
复杂度相对简单,适合短时间跨度的任务更复杂,适合长时间跨度或多步策略的任务
分层结构通常不涉及分层常用于分层强化学习,高层策略选择长期目标,低层策略执行具体动作

二、HRL

分层强化学习 的核心是通过层次化分解复杂任务,以提高学习效率和策略泛化能力。

层次结构:分层强化学习中通常存在多个层次,每个层次负责不同粒度的决策。高层次负责抽象和长期规划,而低层次负责具体操作和短期执行。

可提供的参考资料:

  1. 《一文看尽系列:分层强化学习(HRL)经典论文全面总结》 ,腾讯云文章

  2. 《分层强化学习(Hierarchical RL)》 ,华为云

  3. 【Hierarchical RL】不允许你不了解分层强化学习(总结篇) ,腾讯云

2.1 Options框架

  • 定义:将动作序列抽象为“选项”(Option),每个选项包含三个部分:初始状态集(Initiation Set)、内部策略(Policy)和终止条件(Termination Condition)。上层策略通过调用选项解决半马尔可夫决策过程(semi-MDP)(SMDP)

  • 优势:缩短时间步长,解决长序列任务的稀疏奖励问题。例如,导航任务中“移动到某区域”可视为一个选项.

  • 细节: 将行动策略视为可选项(option),每个选项由三个部分组成:

    • 初始集(Initiation Set):定义在哪些状态下可以选择该选项。
    • 政策(Policy):定义在选项被激活期间如何进行行动选择。
    • 终止条件(Termination Condition):定义何时结束该选项。
  • 理论支持:由于选项可能会持续不定长时间,因此分层强化学习常用SMDP来建模,这种模型允许动作(即选项)具有可变长度的持续时间。


选项(Options),也被称为技能 或者 宏操作,是一种具有终止条件的子策略。它观察环境并输出动作,直到满足终止条件为止。终止条件是一类时序上的隐式分割点,来表示相应的子策略已经完成了自己的工作,且顶层的选项策略(Policy-Over-Action)需要切换至另一个选项。
给定一个状态集为 S、动作集为 A 的 MDP选项 ω ∈ Ω ω ∈ Ω ω被定义为三元组 ( I ω , π ω , β ω ) (I_ω , π_ω , β_ω ) (Iω,πω,βω),其中 I ω ⊆ S I_ω ⊆ S IωS一组初始状态集 π ω : S × A → [ 0 , 1 ] π_ω : S × A → [0, 1] πω:S×A[0,1] 是一个选项内置策略,而 β ω : S → [ 0 , 1 ] β_ω : S → [0, 1] βω:S[0,1] 是一个通过伯努利分布提供随机终止条件的终止函数。一个选项 ω ω ω只有在 s ∈ I ω s ∈ I_ω sIω 时,才能用于状态 s。

一个选项框架由两层结构组成:底层的每个元素是一个选项,而顶层则是一个选项策略,用来在片段开始或上个选项终结时候选择一个选项。选项策略从环境给出的奖励信息学习,而选项可通过明确的子目标来学习。
在这里插入图片描述

2.2 经典算法:Option-Critic Architecture

参考资料:

  1. 《2 分层强化学习】Option-Critic》 ,知乎
  2. B站视频《Option-Critic框架学习记录》
  3. 论文《The Option-Critic Architecture》
  4. 分层强化学习博客园,含案例,合集似乎很牛逼啊

选项-批判者结构(Option-Critic Architecture)(Bacon et al., 2017) 将策略梯度定理扩展至选项,它提供一种端到端的对选项选项策略的联合学习。它直接优化了折扣化回报。我们考虑 选项-价值函数(1)状态-选项对 (s, ω) 后执行某个动作的价值(2), 进入一个状态 s′ 时,执行 ω 的价值(3)

在这里插入图片描述在这里插入图片描述

用于学习选项的随机梯度下降算法的结构如图 10.3 所示,其中梯度由定理 10.1 和定理 10.2给出,
在这里插入图片描述

图的解析:

  • π Ω \pi_{\Omega} πΩ 表示最顶层的策略,确定选择哪个option
  • π ω \pi_{\omega} πω 内置函数, β ω \beta_{\omega} βω终止函数(停止当前的option选项)
    critic结构中的参数+上面3个参数都是需要学习的~
  • 在option-critic 结构中,对于 s t s_t st π Ω \pi_{\Omega} πΩ选定option,由critic对其评估。当选定一个option,由其输出动作at. at与Environment交互,一方面返回即时奖励rt和下一状态 s t + 1 s_{t+1} st+1
  • critic通过gradients指导option内的( π ω \pi_{\omega} πω β ω \beta_{\omega} βω)的更新。

在这里插入图片描述

2.3 Feudal Reinforcement Learning(封建强化学习)

封建制网络(Feudal Networks,FuNs)是一个完全可微模块化的 FRL 神经网络,它有两个模块:管理者和工作者。管理者在一个潜在状态空间中更低的时间分辨率上设定目标,而工作者则学习如何通过内在奖励达到目标.
在这里插入图片描述

  • 结构:模仿封建等级制度,上层智能体(Manager)设定子目标,下层智能体(Worker)执行具体动作。特征是“奖赏隐藏”和“信息隐层”,即下层仅关注局部状态.
    在这里插入图片描述

2.4 MAXQ值函数分解

《Hierarchical Reinforcement Learning with the MAXQ Value Function Decomposition》
在这里插入图片描述

方法:将任务分解为子任务三元组(动作、终止状态、专属奖励函数),通过递归分解实现层次化策略。例如,导航任务可分解为“避开障碍”和“寻找奖励”子任务

2.5 HAM(分层抽象机)

HAM 全程 Hierarchical of abstraction machine

  • 机制:通过状态转换机简化MDP,分为行为状态(执行动作)、调用状态(启动子任务)、选择状态(选择子任务)和停止状态

2.6 现代扩展方法

  • HIRO:通过离线策略修正解决层次间非平稳性问题
  • FuN(封建网络) :自动发现子目标,结合LSTM处理长期依赖

HRL与gridworld实践

三、GridWorld环境设计

3.1 地图生成规则

  • 网格结构:采用10x10网格,水平和垂直墙壁随机生成,保证地图连通性(任意两点存在可达路径)
  • 障碍物生成:使用泊松圆盘采样算法生成非均匀分布的障碍物,确保障碍物之间最小间距为2格,避免死胡同
  • 奖励机制:设置3个奖励点(+5、+3、+1),分布在障碍物稀疏区域,且不与起点重叠
  • 动态要素:每局游戏随机初始化起点位置,若智能体进入奖励点后,该点奖励重置为0,防止重复刷分
  • 参考地图,来源于文献
    在这里插入图片描述在这里插入图片描述

3.2 状态与动作空间

  • 状态表示:包含坐标(x,y)、周围8格障碍物掩码(0/1)、最近奖励点方向向量( Δ x , Δ y \Delta x,\Delta y Δx,Δy)。
  • 动作空间:基础动作为{上,下,左,右},引入30%概率的动作噪声(如执行"上"可能实际向左偏移)。
  • 观测限制:部分可观测设定,智能体仅能感知周围5x5区域内的状态

四、分层强化学习(HRL)算法设计

4.1 分层架构设计

层级输入输出更新频率算法选择
Manager全局地图特征(Flatten后)子目标坐标 ( g x , g y ) (g_x,g_y) (gx,gy)每10步PPO (Actor-Critic)
Worker局部观测+子目标相对坐标基础动作每步DQN (Dueling Network)

核心机制:

  • 子目标修正:Manager通过 g t = c l i p ( g t − 1 + Δ g , 0 , 9 ) g_t = clip(g_{t-1} + Δg, 0, 9) gt=clip(gt1+Δg,0,9)动态调整子目标,避免突变。
  • 内在奖励:Worker获得与子目标距离成反比的奖励 ,加速子任务完成
  • 动态层次:当Worker连续5次未完成子目标时,Manager强制生成新子目标,防止局部震荡

4.2 奖励函数分解

  • 全局奖励: R g l o b a l = ∑ r e x t − 0.01 × t ( 到达奖励点 + 时间惩罚 ) R_{global} =\sum r_{ext} -0.01 \times t(到达奖励点+时间惩罚) Rglobal=rext0.01×t(到达奖励点+时间惩罚)
  • 分层奖励:

R M a n a g e r = λ 1 R g l o b a l + λ 2 I g o a l r e a c h e d R_{Manager} =\lambda_1 R_{global}+\lambda_2 \mathbb{I}_{goal_reached} RManager=λ1Rglobal+λ2Igoalreached
R W o r k e r = r i n t − 0.1 × I c o l l i s i o n R_{Worker}=r_{int}-0.1 \times \mathbb{I}_{collision} RWorker=rint0.1×Icollision
其中, λ 1 = 0.7 , λ 2 = 0.3 \lambda_1=0.7,\lambda_2=0.3 λ1=0.7,λ2=0.3为权重系数。

4.3 网络结构

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/85001.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/85001.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/85001.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java延时

在 Java 中实现延时操作主要有以下几种方式,根据使用场景选择合适的方法: 1. Thread.sleep()(最常用) java 复制 下载 try {// 延时 1000 毫秒(1秒)Thread.sleep(1000); } catch (InterruptedExcepti…

电阻篇---下拉电阻的取值

下拉电阻的取值需要综合考虑电路驱动能力、功耗、信号完整性、噪声容限等多方面因素。以下是详细的取值分析及方法: 一、下拉电阻的核心影响因素 1. 驱动能力与电流限制 单片机 IO 口驱动能力:如 STM32 的 IO 口在输入模式下的漏电流通常很小&#xf…

NY271NY274美光科技固态NY278NY284

美光科技NY系列固态硬盘深度剖析:技术、市场与未来 技术前沿:232层NAND架构与性能突破 在存储技术的赛道上,美光科技(Micron)始终是行业领跑者。其NY系列固态硬盘(SSD)凭借232层NAND闪存架构的…

微信开发者工具 插件未授权使用,user uni can not visit app

参考:https://www.jingpinma.cn/archives/159.html 问题描述 我下载了一个别人的小程序,想运行看看效果,结果报错信息如下 原因 其实就是插件没有安装,需要到小程序平台安装插件。处理办法如下 在 app.json 里,声…

UE5 读取配置文件

使用免费的Varest插件,可以读取本地的json数据 获取配置文件路径:当前配置文件在工程根目录,打包后在 Windows/项目名称 下 读取json 打包后需要手动复制配置文件到Windows/项目名称 下

【kdump专栏】KEXEC机制中SME(安全内存加密)

【kdump专栏】KEXEC机制中SME&#xff08;安全内存加密&#xff09; 原始代码&#xff1a; /* Ensure that these pages are decrypted if SME is enabled. */ 533 if (pages) 534 arch_kexec_post_alloc_pages(page_address(pages), 1 << order, 0);&#x1f4cc…

C# vs2022 找不到指定的 SDK“Microsof.NET.Sdk

找不到指定的 SDK"Microsof.NET.Sdk 第一查 看 系统盘目录 C:\Program Files\dotnet第二 命令行输入 dotnet --version第三 检查环境变量总结 只要执行dotnet --version 正常返回版本号此问题即解决 第一查 看 系统盘目录 C:\Program Files\dotnet 有2种方式 去检查 是否…

Pytest断言全解析:掌握测试验证的核心艺术

Pytest断言全解析&#xff1a;掌握测试验证的核心艺术 一、断言的本质与重要性 什么是断言&#xff1f; 断言是自动化测试中的验证检查点&#xff0c;用于确认代码行为是否符合预期。在Pytest中&#xff0c;断言直接使用Python原生assert语句&#xff0c;当条件不满足时抛出…

【编译原理】题目合集(一)

未经许可,禁止转载。 文章目录 选择填空综合选择 将编译程序分成若干个“遍”是为了 (D.利用有限的机器内存,但降低了执行效率) A.提高程序的执行效率 B.使程序的结构更加清晰 C.利用有限的机器内存并提高执行效率 D.利用有限的机器内存,但降低了执行效率 词法分析…

uni-app项目实战笔记13--全屏页面的absolute定位布局和fit-content自适应内容宽度

本篇主要实现全屏页面的布局&#xff0c;其中还涉及内容自适应宽度。 创建一个preview.vue页面用于图片预览&#xff0c;写入以下代码&#xff1a; <template><view class"preview"><swiper circular><swiper-item v-for"item in 5&quo…

OVS Faucet Tutorial笔记(下)

官方文档&#xff1a; OVS Faucet Tutorial 5、Routing Faucet Router 通过控制器模拟三层网关&#xff0c;提供 ARP 应答、路由转发功能。 5.1 控制器配置 5.1.1 编辑控制器yaml文件&#xff0c;增加router配置 rootserver1:~/faucet/inst# vi faucet.yaml dps:switch-1:d…

PCB设计教程【大师篇】stm32开发板PCB布线(信号部分)

前言 本教程基于B站Expert电子实验室的PCB设计教学的整理&#xff0c;为个人学习记录&#xff0c;旨在帮助PCB设计新手入门。所有内容仅作学习交流使用&#xff0c;无任何商业目的。若涉及侵权&#xff0c;请随时联系&#xff0c;将会立即处理 1. 布线优先级与原则 - 遵循“重…

Phthon3 学习记录-0613

List&#xff08;列表&#xff09;、Tuple&#xff08;元组&#xff09;、Set&#xff08;集合&#xff09;和 Dictionary&#xff08;字典&#xff09; 在接口自动化测试中&#xff0c;List&#xff08;列表&#xff09;、Tuple&#xff08;元组&#xff09;、Set&#xff08…

UVa12298 3KP-BASH Project

UVa12298 3KP-BASH Project 题目链接题意输入格式输出格式 分析AC 代码 题目链接 UVa12298 3KP-BASH Project 题意 摘自 《算法竞赛入门经典&#xff1a;训练指南》刘汝佳&#xff0c;陈锋著。有删改。 你的任务是为一个假想的 3KP 操作系统编写一个简单的 Bash 模拟器。由于操…

云打包生成的ipa上传构建版本经验分享

在上架ios应用&#xff0c;在苹果开发者中心操作的时候&#xff0c;需要提供一个构建版本&#xff0c;如下图所示&#xff1a; 点击蓝色加号&#xff0c;添加构建版本&#xff0c;但是点击蓝色加号后&#xff0c;并没有构建版本可以选。 原因是需要下载下面它推荐的工具来上传…

ESP32的spi通讯(Arduino)

目录 一.基本配置 1.esp32-wroom-32引脚图 2.接线方式 3.Arduino芯片选择和库文件 3.1Arduino配置&#xff08;2.0.11&#xff09; 3.2 下载ESP32SPISlave库&#xff08;0.6.8&#xff09;文件 二、代码编写 1.主机代码 2.从机代码 3.注意事项 三、运行效果 一.基本…

Spring-rabbit重试消费源码分析

在集成RabbitMQ与Spring Boot 3.1.x时&#xff0c;RetryOperationsInterceptor 是实现消息重试机制的关键组件。这里将深入分析 RetryOperationsInterceptor 的工作原理&#xff0c;尤其是在消费者消费失败时的行为&#xff0c;并结合底层源码进行详解。 一、配置解析 首先&a…

如何使用JacksonTypeHandler处理mysql json字符串转List对象的问题

在使用mysql5.7或更高版本时&#xff0c;json类型字段应用场景越来越多&#xff0c;对于普通的对象或者List<Integer>、List<String>这些基础类型&#xff0c;jacksonTypeHandler都能很好的处理&#xff0c;如下&#xff1a; 1、定义一个person对象 import com.f…

华为云Flexus+DeepSeek征文 | 基于Dify构建股票分析助手

华为云FlexusDeepSeek征文 | 基于Dify构建AI 图片生成应用 一、构建股票分析助手前言二、构建股票分析助手环境2.1 基于FlexusX实例的Dify平台2.2 基于MaaS的模型API商用服务 三、构建股票分析助手实战3.1 配置Dify环境3.2 配置Dify工具3.3 创建股票分析助手3.4 使用股票分析助…

【0.1 漫画计算机组成原理】

🖥️ 漫画计算机组成原理 🎯 学习目标:深入理解计算机硬件基础,为后续Java编程和性能优化打下坚实基础 📋 目录 CPU架构与指令集内存层次结构冯诺依曼架构与哈佛架构总线系统与IO设备计算机性能分析实际应用场景🎭 漫画引言 小明: “为什么我的Java程序有时候跑得飞…