PPO原論文閱讀

一、Introduction

1.目前存在的問題:

(deep)Q-learning:在一些簡單問題上表現不佳,可理解性差

基礎的policy gradient算法:(如REINFORCE)魯棒性差,需要大量數據

TRPO:復雜,在包含噪音(如dropout)或者權重共享機制的問題中不兼容

在擴展性、數據利用率以及魯棒性上還有上升空間

二、背景知識:策略優化

1.策略梯度方法

策略梯度中常用的gradient estimator格式:

相對應的目標函數:

2.Trust Region方法(TRPO)

加入拉格朗日因子變成:

問題:很難選擇一個確定的β在所有問題 甚至某一類問題上都表現的很好。

三、引入Clipped形式

1.限制過度樂觀:

這個式子的形式很巧妙,使用clip來防止結果過于激進:如A>0時如果r超過1+E就進行截斷處理,A<0時如果r小于1-E就進行階段處理。

當新策略試圖對舊策略已經做得不錯(A_t > 0)的地方進行過于激進的改進(r_t >> 1),或者對舊策略做得不好(A_t < 0)的地方進行過于激進的避免(r_t << 1)時,PPO會踩剎車(裁剪),防止策略突然偏離太遠導致崩潰。

2.允許必要的悲觀修正

但是不會阻止悲觀的結果:如果A>0且r<1-E則不進行截斷處理,A<0時r>1+E時不進行截斷處理。這是為了激勵模型積極學習,下面是解釋:

  • 情景一?(A_t>0, r_t<<1):r_t*A_t?是一個很小的正數(甚至可能變負),而?clip(r_t, 1-ε, 1+ε)*A_t ≈ (1-ε)*A_t?是一個較大的正數。所以?min?選擇了很小的?r_t*A_t
  • 情景二 (A_t<0, r_t>>1):r_t*A_t?是一個很大的負數(因為負的A_t被放大了),而?clip(r_t, 1-ε, 1+ε)*A_t ≈ (1+ε)*A_t?是一個較小的負數(負的A_t被縮小了)。所以?min?選擇了很大的負數?r_t*A_t
  • 目標函數的含義:?PPO的目標是最大化這個?min(...)?函數的值。

  • 梯度更新的方向:?為了最大化目標函數:

    • 在情景一中,目標函數取了一個很小的值(甚至負值)。為了最大化它,優化器會強烈地推動策略參數 θ 朝著增加?r_t(θ)(即增加選擇這個好動作的概率)的方向更新

    • 在情景二中,目標函數取了一個很大的負值。為了最大化它(即讓這個負值變得不那么負),優化器會強烈地推動策略參數 θ 朝著減少?r_t(θ)(即減少選擇這個壞動作的概率)的方向更新

  • “積極更新”的體現:?由于目標函數值在錯誤方向上非常差(很小或很負),優化器計算出的梯度(更新方向)的幅度會非常大。這導致參數 θ 會在這個方向上邁出相對較大的一步,迅速糾正這個錯誤。這就是“允許更積極地更新”的數學體現。

想象你在訓練一個機器人走路(策略)。PPO的clip機制就像給機器人腳上裝了帶彈簧的限制器([1-ε, 1+ε])。

當機器人想邁出一個非常大的步子向前沖(樂觀更新,可能跌倒)時,彈簧限制器會拉住它(裁剪),只允許它邁出安全的一步。

但當機器人不小心踩空,即將向后摔倒(嚴重錯誤,性能崩潰)時,彈簧限制器不會阻止它把腳快速收回來重新站穩(不裁剪,允許積極糾錯)。如果這個時候限制器還強行拉住腳不讓它收回來,機器人肯定會重重摔倒。PPO選擇松開限制器,讓機器人能迅速做出挽救動作

說白了就是允許嚴重的錯誤,而模型為了糾正這個錯誤會強烈推動策略參數的更新。

四、Adaptive KL Penalty Coefficient

論文中指出了一個替代或者補充方法,就是增加KL懲罰項,但是這個的表現明顯比clip的糟糕。

五、算法完整過程

最終算法是要梯度上升下面這個式子來實現參數更新:

其中CLIP就是三中的式子,不再介紹。VF表示和target的損失函數,S表示熵獎勵(為了提高模型中的探索性)。

這里解釋一下VF:因為我在學習強化學習的時候感受到的強化學習和監督/無監督學習的主要區別就是解決的問題不同,監督/無監督學習主要是為了優化,是可以有固定的標簽的,只是訓練的時候給不給的問題(或者好不好獲得),但強化學習是關于和環境交互學習策略的,是沒有辦法獲得具體標簽的,所以強化學習的目標是最大化state value而監督/無監督學習是最小化和target之間的loss函數。但是這里的VF感覺像是監督學習了。

答:雖然強化學習整理是“無監督” 的,但是在訓練值函數的時候可以構造一個"偽標簽"。也就是說這里的target不是環境直接給的target,而是我們基于經驗計算的目標。

VF項的展開公式是,其中Vθ?(st?)是為了估計每個狀態的價值而構建的值函數網絡,訓練時,我們用采樣得到的經驗去構造目標值 Vtarg?,再用 均方誤差(MSE) 來回歸這個目標值。

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

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

相關文章

零基礎也能創作專屬歌曲:文心一言+蘑兔AI協同教程

在AI技術飛速發展的今天&#xff0c;音樂創作已不再是專業音樂人的專屬領域。通過文心一言與蘑兔AI的協同使用&#xff0c;即使沒有音樂基礎&#xff0c;也能輕松完成從歌詞創作到作曲編曲的全流程。本文將詳細拆解操作步驟&#xff0c;助你快速上手&#xff0c;實現音樂創作夢…

圖論:搜索問題

提到圖論中的搜索問題&#xff0c;首先想到的也就是DFS和BFS了&#xff0c;而提到這兩種搜索&#xff0c;那么最典型的題目就是島嶼問題了&#xff0c;下面就練習幾道相關的題目&#xff0c;為之后的更深奧的圖論學習打下基礎&#xff01; 孤島的總面積 題目鏈接&#xff1a;…

AI驅動攻防升級,API安全走到關鍵檔口

在數字化轉型與AI技術快速發展的雙重驅動下&#xff0c;API已成為企業業務與外部世界連接的神經中樞。然而&#xff0c;隨著API的深度應用&#xff0c;針對API的攻擊規模與復雜性也在持續升級。 API為何頻頻成為黑客重點盯防的突破口&#xff1f;企業常見的API防護手段是否還能…

網絡基礎DAY18-動態路由協議基礎

動態路由協議基礎知識回顧&#xff1a;1.什么是路由&#xff1f; 答&#xff1a;是三層設備轉發IP報文的路徑信息。 2.路由有哪些來源&#xff1f; 答&#xff1a;1.直連路由2.靜態路由3.動態路由 3.有直連路由的條件&#xff1f; 答&#xff1a;1.二層和三層物理接口狀態為UP …

axios統一封裝規范管理

新建/api/ 1.新建統一處理文件/api/axios.ts import axios from "axios"const http axios.create({baseURL: import.meta.env.VITE_API_BASE_URL, // 從環境變量讀取timeout: 10000, });// 請求攔截器&#xff08;如添加 Token&#xff09; http.interceptors.reque…

Java學習第七十四部分——Elasticsearch(ES)

目錄 一、前言提要 二、核心特性 三、應用場景 四、主要優勢 五、集成方式 六、基礎操作 七、高級特性 八、概念類比——與關系型數據庫 九、簡單示例——實現存儲與搜索 十、生態集成——基于Spring Data Elasticsearch 十一、性能優化建議 十二、總結歸納概述 一…

TDengine 轉化函數 TO_UNIXTIMESTAMP 用戶手冊

TDengine TO_UNIXTIMESTAMP 函數用戶使用手冊 函數概述 TO_UNIXTIMESTAMP 是 TDengine 中的標量函數&#xff0c;用于將符合 ISO8601/RFC3339 標準的日期時間字符串轉換為 Unix 時間戳。與 TO_TIMESTAMP 不同&#xff0c;該函數專門處理標準格式的時間字符串&#xff0c;無需指…

Java 中的排序算法詳解

目錄 一、冒泡排序&#xff08;Bubble Sort&#xff09; 原理? 二、選擇排序&#xff08;Selection Sort&#xff09; 原理? 三、插入排序&#xff08;Insertion Sort&#xff09; 原理? 四、快速排序&#xff08;Quick Sort&#xff09; 原理? 五、歸并排序&…

Gitee如何成為國內企業DevOps轉型的首選平臺?

Gitee如何成為國內企業DevOps轉型的首選平臺&#xff1f; 在數字化轉型浪潮中&#xff0c;DevOps已成為提升企業研發效能的關鍵引擎。作為國內領先的代碼托管與協作平臺&#xff0c;Gitee憑借本土化優勢與全流程支持能力&#xff0c;正成為越來越多企業DevOps實踐的核心載體。本…

?Excel——SUMPRODUCT 函數

SUMPRODUCT 是 Excel 中最強大的函數之一&#xff0c;可以用于 ?多條件求和、加權計算、數組運算? 等復雜場景。下面通過 ?基礎語法 實用案例? 徹底講透它的用法&#xff01;?一、基礎語法?SUMPRODUCT(數組1, [數組2], [數組3], ...)?功能?&#xff1a;將多個數組的對…

告別虛函數性能焦慮:深入剖析C++多態的現代設計模式

?? 引言:當多態遇上性能瓶頸 我經常被問到這樣一個問題:“既然virtual函數這么方便,為什么在一些高性能場景下,大家卻避之不及?” 答案很簡單:性能。 在我參與的多個HPC項目和游戲引擎開發中,virtual函數調用往往成為性能分析工具中最顯眼的那個紅點。一個看似無害…

k8s-MongoDB 副本集部署

前提準備一套 k8s 集群worker 節點上的 /nfs/data 目錄掛載到磁盤一、NFS 高可用方案&#xff08;NFSkeepalivedSersync&#xff09;本方案 NFS 的高可用方案&#xff0c;應用服務器為 Client &#xff0c;兩臺文件服務器分別 Master 和 Slave&#xff0c;使用 keepalived 生成…

BI 系統數據看板全解析:讓數據可視化驅動業務決策

BI 系統數據看板全解析&#xff1a;讓數據可視化驅動業務決策在 BI 系統中&#xff0c;數據看板是連接原始數據與業務洞察的 “橋梁”。它將零散的業務指標轉化為直觀的可視化圖表&#xff0c;讓產品經理、運營人員等角色能快速把握業務動態。一個設計精良的數據看板&#xff0…

圖機器學習(14)——社交網絡分析

圖機器學習&#xff08;14&#xff09;——社交網絡分析0. 前言1. 數據集分析1.1 數據集介紹1.2 使用 networkx 加載數據集2. 網絡拓撲和社區檢測2.1 網絡拓撲2.2 社區檢測0. 前言 社交網站的崛起是近年來數字媒體領域最活躍的發展趨勢之一&#xff0c;數字社交互動已經融入人…

深入解析Hadoop MapReduce中Reduce階段排序的必要性

MapReduce概述與Reduce階段簡介MapReduce作為Hadoop生態系統的核心計算框架&#xff0c;其設計思想源自Google論文&#xff0c;通過"分而治之"的理念實現海量數據的并行處理。該模型將計算過程抽象為兩個關鍵階段&#xff1a;Map階段負責數據分解和初步處理&#xff…

7月23日華為機考真題第二題-200分

?? 點擊直達筆試專欄 ??《大廠筆試突圍》 ?? 春秋招筆試突圍在線OJ ?? 筆試突圍OJ bishipass.com 02. 圖書館資源分配系統 問題描述 A先生是一位圖書館管理員,負責管理圖書采購和分配工作。圖書館收到了來自不同出版社的圖書批次,同時有多位讀者代表排隊申請圖書…

基于深度學習的圖像分類:使用ResNet實現高效分類

最近研學過程中發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊鏈接跳轉到網站人工智能及編程語言學習教程。讀者們可以通過里面的文章詳細了解一下人工智能及其編程等教程和學習方法。下面開始對正文內容的…

JVM:工具

JVMjpsjstatjmapjhatjstackjconsolejvisualvmjps jps&#xff08; Java Virtual Machine Process Status Tool &#xff09;&#xff0c;是 JDK 中的一個命令行工具&#xff0c;用于列出當前正在運行的 JVM 實例的信息。其對于監控和管理運行在多個 JVM 上的 Java 應用程序特別…

Elasticsearch Circuit Breaker 全面解析與最佳實踐

一、Circuit Breaker 簡介 Elasticsearch 是基于 JVM 的搜索引擎&#xff0c;其內存管理十分重要。為了避免單個操作或查詢耗費過多內存導致節點不可用&#xff0c;Elasticsearch 引入了 Circuit Breaker&#xff08;熔斷器&#xff09;機制。當內存使用達到熔斷器預設閾值時&a…

ARM-定時器-定時器函數封裝配置

以TIMER7為例&#xff0c;對定時器函數進行封裝注意事項&#xff1a;GD32中TIMER7是高級定時器&#xff0c;相關詳細請參考上一篇文章。main.c//main.c#include "gd32f4xx.h" #include "systick.h" #include <stdio.h> #include "main.h" …