傳統策略梯度方法的弊端與PPO的改進:穩定性與樣本效率的提升

為什么傳統策略梯度方法(如REINFORCE算法)在訓練過程中存在不穩定性和樣本效率低下的問題

1. 傳統策略梯度方法的基本公式

傳統策略梯度方法的目標是最大化累積獎勵的期望值。具體來說,優化目標可以表示為:
max ? θ J ( θ ) = E π [ ∑ t = 0 ∞ γ t R t + 1 ] \max_\theta J(\theta) = \mathbb{E}_\pi\left[\sum_{t=0}^{\infty} \gamma^t R_{t+1}\right] θmax?J(θ)=Eπ?[t=0?γtRt+1?]
其中:

  • J ( θ ) J(\theta) J(θ) 是策略性能,即累積獎勵的期望值。
  • π θ ( a t ∣ s t ) \pi_\theta(a_t|s_t) πθ?(at?st?) 是在策略 π \pi π 下,狀態 s t s_t st? 下選擇動作 a t a_t at? 的概率。
  • R t + 1 R_{t+1} Rt+1? 是在時間步 t + 1 t+1 t+1 獲得的獎勵。
  • γ \gamma γ 是折扣因子,用于衡量未來獎勵的當前價值。

為了實現這個目標,策略梯度定理提供了策略性能的梯度的解析表達式:
? θ J ( θ ) = E π [ ∑ t = 0 ∞ γ t ? θ log ? π θ ( a t ∣ s t ) ? G t ] \nabla_\theta J(\theta) = \mathbb{E}_\pi\left[\sum_{t=0}^{\infty} \gamma^t \nabla_\theta \log \pi_\theta(a_t|s_t) \cdot G_t\right] ?θ?J(θ)=Eπ?[t=0?γt?θ?logπθ?(at?st?)?Gt?]
其中:

  • G t G_t Gt? 是從時間步 t t t 開始的累積獎勵:

G t = ∑ k = t ∞ γ k ? t R k + 1 G_t = \sum_{k=t}^{\infty} \gamma^{k-t} R_{k+1} Gt?=k=t?γk?tRk+1?

2. 不穩定性問題

(1)梯度估計的高方差

傳統策略梯度方法(如REINFORCE算法)直接使用采樣軌跡來估計策略梯度。具體更新規則為:
θ ← θ + α ∑ t = 0 T ? θ log ? π θ ( a t ∣ s t ) ? G t \theta \leftarrow \theta + \alpha \sum_{t=0}^{T} \nabla_\theta \log \pi_\theta(a_t|s_t) \cdot G_t θθ+αt=0T??θ?logπθ?(at?st?)?Gt?
其中:

  • α \alpha α 是學習率。
  • T T T 是軌跡的長度。

問題分析:

  • 高方差:累積獎勵 G t G_t Gt? 是一個隨機變量,其值取決于具體的采樣軌跡。由于環境的隨機性和策略的隨機性,不同軌跡的累積獎勵 G t G_t Gt? 可能差異很大,導致梯度估計的方差很高。高方差的梯度估計使得訓練過程不穩定,容易出現劇烈波動。
  • 更新過大:由于梯度估計的方差很高,每次更新可能會導致策略參數 θ \theta θ 發生較大變化。這種過大的更新可能會使策略偏離最優策略,導致訓練過程不穩定。

3. 樣本效率低下的問題

(1)單次更新

傳統策略梯度方法通常在每個數據批次上只進行一次更新。具體來說,每采樣一條軌跡,就計算一次梯度并更新策略參數。這種單次更新的方式導致樣本的利用效率較低。

問題分析:

  • 樣本利用率低:每個數據批次只使用一次,更新后就丟棄。這意味著每個樣本只對策略更新貢獻一次,沒有充分利用樣本的信息。
  • 數據冗余:在復雜環境中,采樣到的軌跡可能包含大量重復或相似的狀態和動作,這些冗余數據沒有被充分利用,導致樣本效率低下。

4. PPO如何解決這些問題

PPO(Proximal Policy Optimization)通過以下兩種主要機制解決了傳統策略梯度方法的不穩定性和樣本效率低下的問題:

(1)剪切機制(Clipping Mechanism)

PPO引入了一個剪切的目標函數,限制新策略與舊策略之間的概率比率。具體來說,PPO的目標函數為:
L C L I P ( θ ) = E t [ min ? ( r t ( θ ) A t , clip ( r t ( θ ) , 1 ? ? , 1 + ? ) A t ) ] L^{CLIP}(\theta) = \mathbb{E}_t\left[\min\left(r_t(\theta) A_t, \text{clip}(r_t(\theta), 1 - \epsilon, 1 + \epsilon) A_t\right)\right] LCLIP(θ)=Et?[min(rt?(θ)At?,clip(rt?(θ),1??,1+?)At?)]
其中:

  • r t ( θ ) = π θ ( a t ∣ s t ) π θ o l d ( a t ∣ s t ) r_t(\theta) = \frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_{old}}(a_t|s_t)} rt?(θ)=πθold??(at?st?)πθ?(at?st?)? 是新策略與舊策略的概率比率。
  • A t A_t At? 是優勢函數,表示在狀態 s t s_t st? 下采取動作 a t a_t at? 的相對優勢。
  • ? \epsilon ? 是一個超參數,通常取值為0.1或0.2。

解決不穩定性的機制:

  • 限制更新幅度:通過剪切操作 clip ( r t ( θ ) , 1 ? ? , 1 + ? ) \text{clip}(r_t(\theta), 1 - \epsilon, 1 + \epsilon) clip(rt?(θ),1??,1+?),PPO限制了新策略與舊策略之間的概率比率,防止策略更新過大。這使得每次更新更加平滑,減少了訓練過程中的波動。
  • 降低方差:剪切機制通過限制概率比率的范圍,減少了梯度估計的方差,使得訓練過程更加穩定。

(2)多次更新

PPO允許在一個數據批次上進行多次更新。具體來說,PPO在采樣一批數據后,可以多次使用這些數據進行更新,直到策略收斂。

解決樣本效率低下的機制:

  • 提高樣本利用率:通過多次更新,每個樣本可以多次貢獻于策略的優化,充分利用了樣本的信息。
  • 減少冗余:多次更新可以更好地利用數據中的信息,減少冗余數據對訓練的影響,提高樣本的利用效率。

5. 總結

傳統策略梯度方法(如REINFORCE算法)在訓練過程中存在不穩定性和樣本效率低下的問題,主要原因是:

  1. 高方差的梯度估計:累積獎勵 G t G_t Gt? 的隨機性導致梯度估計的方差很高,使得訓練過程不穩定。
  2. 單次更新:每個數據批次只使用一次,更新后就丟棄,導致樣本的利用效率較低。

PPO通過引入剪切機制和多次更新,解決了這些問題:

  1. 剪切機制:限制新策略與舊策略之間的概率比率,防止策略更新過大,降低梯度估計的方差,提高訓練的穩定性。
  2. 多次更新:在一個數據批次上進行多次更新,充分利用樣本信息,提高樣本的利用效率。

這些改進使得PPO在訓練過程中更加穩定,樣本效率更高,成為強化學習領域中一種常用的基準算法。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/73944.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/73944.shtml
英文地址,請注明出處:http://en.pswp.cn/web/73944.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Qwt入門

Qwt(Qt Widgets for Technical Applications)是一個用于科學、工程和技術應用的 Qt 控件庫,提供曲線圖、儀表盤、刻度尺等專業可視化組件。 1. 安裝與配置 1.1 安裝方式 源碼編譯(推薦): git clone https://github.com/qwt/qwt.git cd qwt qmake qwt.pro # 生成 Makef…

軟考《信息系統運行管理員》- 6.1 信息系統安全概述

信息系統安全的概念 信息系統安全是指保障計算機及其相關設備、設施(含網絡)的安全,運行環境的安全, 信息的安全,實現信息系統的正常運行。 信息系統安全包括實體安全、運行安全、信息安全和 人員安全等幾個部分。 影響信息系統安全的因素…

Canvas實現旋轉太極八卦圖

Canvas實現旋轉太極八卦圖 項目簡介 這是一個使用HTML5 Canvas技術實現的動態太極八卦圖,包含了旋轉動畫和鼠標交互功能。項目展示了中國傳統文化元素與現代Web技術的結合。 主要特點 動態旋轉的太極圖八卦符號的完整展示鼠標懸停暫停動畫流暢的動畫效果 技術實…

機器學習、深度學習和神經網絡

機器學習、深度學習和神經網絡 術語及相關概念 在深入了解人工智能(AI)的工作原理以及它的各種應用之前,讓我們先區分一下與AI密切相關的一些術語和概念:人工智能、機器學習、深度學習和神經網絡。這些術語有時會被交替使用&#…

打造高性能中文RAG系統:多輪對話與語義檢索的完美結合

目錄 1、引言 2、RAG系統的核心架構 3、對話理解:超越單輪問答 3.1、指代消解技術 3.2、話題跟蹤與記憶 4、混合檢索策略:兼顧精確與廣泛 4.1、向量檢索 關鍵詞檢索 4.2、重排序機制 5、性能優化:應對大規模文檔 5.1、向量量化技術…

人工智能助力數字化轉型:生成式人工智能(GAI)認證開啟新篇章

在數字化浪潮席卷全球的今天,企業正面臨著前所未有的轉型壓力與機遇。數字化轉型,這一曾經被視為“選擇題”的戰略議題,如今已演變為關乎企業生存與發展的“必答題”。在這場深刻的變革中,人工智能(AI)作為…

Windows 圖形顯示驅動開發-WDDM 2.4功能-GPU 半虛擬化(十二)

DxgkDdiQueryAdapterInfo 更新 DXGKARG_QUERYADAPTERINFO 結構已更新,以包括以下字段以支持半虛擬化: 添加了 Flags 成員,允許 Dxgkrnl 指示以下內容: 它將 VirtualMachineData 設置為指示調用來自 VM。它將 SecureVirtualMach…

iOS審核被拒:Missing privacy manifest 第三方庫添加隱私聲明文件

問題: iOS提交APP審核被拒,蘋果開發者網頁顯示二進制錯誤,收到的郵件顯示的詳細信息如下圖: 分析: 從上面信息能看出第三方SDK庫必須要包含一個隱私文件,去第三方庫更新版本。 幾經查詢資料得知,蘋果在…

馬達加斯加企鵝字幕

Antarctica 南極洲 An inhospitable wasteland 一個荒涼的不毛之地 But even here 但即使在這里 on the Earth’s frozen bottom 地球另一端的冰天雪地里 we find life 也有生命存在 And not just any life 不是別的什么生物 Penguins 而是企鵝 Joyous, frolicking 快樂的 頑皮…

愛因斯坦求和 torch

目錄 向量點積 矩陣乘法 矩陣轉置 向量轉換相機坐標系 在 Python 的科學計算庫(如 NumPy)中,einsum 是一個強大的函數,它可以簡潔地表示各種張量運算。下面是幾個不同類型的使用示例: 向量點積 向量點積是兩個向量…

FPGA調試筆記

XILINX SSTL屬性電平報錯 錯誤如下: [DRC BIVRU-1] Bank IO standard Vref utilization: Bank 33 contains ports that use a reference voltage. In order to use such standards in a bank that is not configured to use INTERNAL_VREF, the banks VREF pin mu…

一區嚴選!挑戰5天一篇脂質體組學 DAY1-5

Day 1! 前期已經成功挑戰了很多期NHANES啦!打算來試試孟德爾隨機化領域~ 隨著孟德爾隨機化研究的普及,現在孟德爾發文的難度越來越高,簡單的雙樣本想被接收更是難上加難,那么如何破除這個困境,這次我打算…

DataGear 5.3.0 制作支持導出表格數據的數據可視化看板

DataGear 內置表格圖表底層采用的是DataTable表格組件,默認并未引入導出數據的JS支持庫,如果有導出表格數據需求,則可以在看板中引入導出相關JS支持庫,制作具有導出CSV、Excel、PDF功能的表格數據看板。 在新發布的5.3.0版本中&a…

【個人筆記】用戶注冊登錄思路及實現 springboot+mybatis+redis

基本思路 獲取驗證碼接口 驗證碼操作用了com.pig4cloud.plugin的captcha-core這個庫。 AccountControl的"/checkCode"接口代碼,通過ArithmeticCaptcha生成一張驗證碼圖片,通過text()函數得到驗證碼的答案保存到變量code,然后把圖…

Linux網絡編程概述

Linux網絡編程是在Linux操作系統環境下進行的網絡相關程序開發,主要用于實現不同計算機之間的數據通信和資源共享。以下從基礎知識、網絡編程模型、常用函數和編程步驟等方面進行詳細介紹: 基礎知識 1. 網絡協議 TCP/IP協議族:是互聯網通信…

Linux內核perf性能分析工具案例分析

一、系統級性能分析工具perf原理 1. perf 的基本概念 內核集成:perf 直接集成在 Linux 內核源碼中,能夠深度訪問硬件和操作系統層面的性能數據,具有低開銷、高精度的特點。 事件采樣原理:通過定期采樣系統事件&#xff0…

word-spacing 屬性

介紹 CSS word-spacing 屬性,用于指定段字之間的空間,例如: p {word-spacing:30px; }word-spacing屬性增加或減少字與字之間的空白。 注意: 負值是允許的。 瀏覽器支持 表格中的數字表示支持該屬性的第一個瀏覽器版本號。 屬…

5種特效融合愚人節搞怪病毒

內容供學習使用,不得轉賣,代碼復制后請1小時內刪除,此代碼會危害計算機安全,謹慎操作 并在虛擬機里運行此代碼!&#xff0c;病毒帶來后果自負! #include <windows.h> #include <cmath> #include <thread> using namespace std; // 屏幕特效函數聲明 void In…

深入理解 Windows 進程管理:taskkill 命令詳解

引言 在 Windows 系統開發和日常使用中&#xff0c;我們經常會遇到程序卡死、文件被占用導致無法編譯等問題。這時&#xff0c;taskkill 命令就成了解決問題的利器。本文將詳細介紹 taskkill 的使用方法、常見場景以及注意事項&#xff0c;幫助你高效管理系統進程。 1. 什么是…

【C++】右值引用與完美轉發

目錄 一、右值引用&#xff1a; 1、左值與右值&#xff1a; 2、左值引用和右值引用&#xff1a; 二、右值引用的使用場景&#xff1a; 1、左值引用的使用場景&#xff1a; 2、右值引用的使用場景&#xff1a; 移動構造 移動賦值 三、完美轉發&#xff1a; 1、萬能引用…