【一】零基礎--分層強化學習概覽

分層強化學習(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?γτt?rt?
γ \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+γτamax?Q(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(gt?1?+Δ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?=rext??0.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?=λ1?Rglobal?+λ2?Igoalr?eached?
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?=rint??0.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程序有時候跑得飛…