強化學習概覽

強化學習的目標

智能體(Agent)通過與環境(Environment)交互,學習最大化累積獎勵(Cumulative Reward)?的策略。

數學抽象 馬爾科夫決策過程(MDP)

收益

由于馬爾科夫決策過程是一個序列決策過程,每一時刻的動作不僅會影響當前狀態,還會對后續的環境狀態產生影響。也就是說,當前時刻能夠獲得較多獎勵的動作從長遠來看也許并不是最佳的,而短期來看不太好的動作卻也許能在未來帶給智能體更多的獎勵。因此智能體在決策時不能單單考慮這一時刻的獎勵,而應該考慮到動作對未來的長期影響。為此,我們需要在獎勵的基礎上定義另一個評價指標來度量智能體所能獲得的長遠利益。在強化學習中,這一評價指標被稱為收益

折扣因子

我們需要對未來每一時刻的獎勵乘上一個折扣因子,并且越往后,衰減越大。為什么要這樣做呢?直覺上來看,時間上越遠,存在的不確定越多,對當前時刻的貢獻也就越小,因此需要用一個折扣因子來描述不同時刻獎勵對當前時刻的貢獻程度。

價值

價值實際上也就對應著強化學習中經常提到的Q值。

最終智能體的目標就是學習到一個最優策略,使得智能體在任意狀態下的價值最優,定義最佳策略下的動作價值函數為最優價值函數,也就是最優Q值。很顯然,當我們已知了最優Q值時,每一狀態下對應Q值最大的動作就是最佳動作。

因此,我們可以得出這樣一個結論:求解最優策略也就等價于求解最優Q值。

強化學習算法分類

基于價值估計的算法

基于價值估計的算法是對最優Q值進行估計

基于策略優化的強化學習算法

直接對最優策略進行估計

隨機性策略:對狀態到最優動作概率分布之間的映射進行估計,然后從該概率分布中進行采樣得到輸出動作。
確定性策略:直接對狀態到最優動作之間的映射進行估計。定義一個策略的性能函數作為優化目標,在強化學習中,這個性能函數通常被定義為一定策略下的平均收益。然后我們只需要依據優化目標對策略函數進行梯度上升,最終就可以得到最優策略。策略優化算法的特點是,神經網絡的輸出即為最優動作,因此這里的動作空間既可以是離散的也可以是連續的。在優化過程中,這里的性能函數通常通過一定的估計方法得到。

策略梯度算法
TRPO(trust region policy optimization, 信任域策略優化))
PPO(proximal policy optimization,鄰近策略優化)
算法的訓練在 與環境交互采樣數據 以及 利用隨機梯度上升優化一個替代(surrogate)目標函數 之間交替進行。相較于標準梯度策略算法每次數據采樣只能進行一次梯度更新,TRPO與PPO 所使用的目標函數能夠利用同一批次數據進行多次梯度更新。PPO 比 TRPO(trust region policy optimization, 信任域策略優化)更為簡單。

基于演員-評論家的強化學習算法

結合了價值估計方法與策略優化方法的特點,同時對最優Q值以及最優策略進行學習,最終策略網絡的輸出即為最優動作。

Actor網絡就像是一個執行者,用來輸出動作,而Critic網絡則對Actor輸出的動作進行評價,然后Actor再根據Critic的評價不斷地修正自己的策略,Critic則通過貝爾曼方程對自身網絡進行迭代更新,最終我們就可以得到一個較好的Actor網絡作為智能體最終的策略。

多智能體

首先,之前我們提到馬爾科夫決策過程最重要的特征就是環境下一時刻的狀態只取決于當前時刻的狀態和動作,也就是說環境的狀態轉移概率是一個確定的值,它保證了環境的平穩變化,使得智能體能夠學習出環境的變化規律,從而推理出狀態的變化過程。而在多智能體系統中,每個智能體所對應的環境包含了其他智能體的策略,此時智能體狀態的改變不再只取決于自身的動作和狀態,還會取決于其他智能體的策略,而這些策略在智能體學習的過程中會不斷地發生變化,這也就導致了每個智能體的狀態轉移概率隨著時間發生變化,使得環境非平穩變化,馬爾科夫特性不再滿足,給智能體策略的學習帶來了困難。

而在更加實際的情況中,每個智能體只能觀測到部分環境狀態信息,進一步惡化智能體的學習性能。

一種最直接的解決環境非平穩性和局部可觀性的方法就是對所有的智能體采取集中式學習的方法,將它們當做是一個智能體,直接學習所有智能體狀態到所有智能體動作之間的映射,但是一方面這種方法需要一個集中式控制中心與智能體之間進行大量的信息交互,另一方面神經網絡的輸入輸出維度會隨智能體數目指數增大,難以收斂。

參考

https://zhuanlan.zhihu.com/p/439629465
https://www.zhihu.com/column/c_1440728531004870656
https://zhuanlan.zhihu.com/p/546276372
https://zhuanlan.zhihu.com/p/440451849

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

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

相關文章

IDEA關閉SpringBoot程序后仍然占用端口的排查與解決

IDEA關閉SpringBoot程序后仍然占用端口的排查與解決 問題描述 在使用 IntelliJ IDEA 開發 Spring Boot 應用時,有時即使關閉了應用,程序仍然占用端口(例如:4001 端口)。這會導致重新啟動應用時出現端口被占用的錯誤&a…

QT:QPen、QBrush、與圖形抗鋸齒的關聯

QPen QPen 是 Qt 框架中用于定義繪圖時使用的畫筆屬性的類。在使用 QPainter 進行 2D 繪圖時,QPen 可以控制線條的外觀,比如線條的顏色、寬度、樣式(如實線、虛線等)、端點樣式(如方形端點、圓形端點等)和…

論文筆記(七十二)Reward Centering(三)

Reward Centering(三) 文章概括摘要3 基于值的獎勵中心化4 案例研究: 以獎勵為中心的 Q-learning5 討論、局限性與未來工作致謝 文章概括 引用: article{naik2024reward,title{Reward Centering},author{Naik, Abhishek and Wan…

單例模式——c++

一個類,只能有1個對象 (對象在堆空間) 再次創建該對象,直接引用之前的對象 so構造函數不能隨意調用 so構造函數私有 so對象不能構造 如何調用私有化的構造函數: 公開接口調用構造函數 調用構造函數:singleTon instance; 但…

ReentrantLock 底層實現

一、核心概念 1 - CAS CAS(Compare-And-Swap,比較并交換)操作是一種無鎖的原子操作,它在多線程環境下能夠保證線程安全,主要是通過硬件級別的原子性以及樂觀鎖的思想來實現的。以下詳細介紹 CAS 操作保證線程安全的原…

NLP學習記錄十:多頭注意力

一、單頭注意力 單頭注意力的大致流程如下: ① 查詢編碼向量、鍵編碼向量和值編碼向量分別經過自己的全連接層(Wq、Wk、Wv)后得到查詢Q、鍵K和值V; ② 查詢Q和鍵K經過注意力評分函數(如:縮放點積運算&am…

算法-二叉樹篇08-完全二叉樹的節點個數

完全二叉樹的節點個數 力扣題目鏈接 題目描述 給你一棵 完全二叉樹 的根節點 root ,求出該樹的節點個數。 完全二叉樹 的定義如下:在完全二叉樹中,除了最底層節點可能沒填滿外,其余每層節點數都達到最大值,并且最下…

【原創工具】同文件夾PDF文件合并 By憐渠客

【原創工具】同文件夾PDF文件合并 By憐渠客 原貼:可批量合并多個文件夾內的pdf工具 - 吾愛破解 - 52pojie.cn 他這個存在一些問題,并非是軟件內自主實現的PDF合并,而是調用的pdftk這一工具,但樓主并沒有提供pdftk,而…

微軟云和金山云和k8有什么區別

Kubernetes(K8s)和微軟云(Microsoft Cloud)是兩種不同的技術,分別用于不同的目的。Kubernetes是一個開源的容器編排系統,用于自動化部署、擴展和管理容器化應用程序,而微軟云是一個提供多種云服…

libGL.so.1: cannot open shared object file: No such file or directory-linux022

in <module> from PyQt5.QtGui import QPixmap, QFont, QIcon ImportError: libGL.so.1: cannot open shared object file: No such file or directory 這個錯誤信息表示XXXX 在啟動時遇到問題&#xff0c;缺少 libGL.so.1 文件。libGL.so.1 是與 OpenGL 圖形庫相關的共…

滲透測試【seacms V9】

搭建seacms環境 我選擇在虛擬機中用寶塔搭建環境 將在官網選擇的下載下來的文件解壓后拖入寶塔面板的文件中 創建網站 添加站點 搭建完成seacmsV9 找到一個報錯口 代碼分析 <?php set_time_limit(0); error_reporting(0); $verMsg V6.x UTF8; $s_lang utf-8; $dfDbn…

論文閱讀筆記:Continual Forgetting for Pre-trained Vision Models

論文閱讀筆記&#xff1a;Continual Forgetting for Pre-trained Vision Models 1 背景2 創新點3 方法4 模塊4.1 問題設置4.2 LoRA4.3 概述4.4 GS-LoRA4.5 損失函數 5 效果6 結論 1 背景 出于隱私和安全考慮&#xff0c;如今從預先訓練的視覺模型中刪除不需要的信息的需求越來…

車載DoIP診斷框架 --- 連接 DoIP ECU/車輛的故障排除

我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 簡單,單純,喜歡獨處,獨來獨往,不易合同頻過著接地氣的生活,除了生存溫飽問題之外,沒有什么過多的欲望,表面看起來很高冷,內心熱情,如果你身…

【爬蟲基礎】第二部分 爬蟲基礎理論 P1/3

上節內容回顧&#xff1a;【爬蟲基礎】第一部分 網絡通訊 P1/3-CSDN博客 【爬蟲基礎】第一部分 網絡通訊-Socket套接字 P2/3-CSDN博客 【爬蟲基礎】第一部分 網絡通訊-編程 P3/3-CSDN博客 爬蟲相關文檔&#xff0c;希望互相學習&#xff0c;共同進步 風123456789&#xff…

Compose 手勢處理,增進交互體驗

Compose 手勢處理&#xff0c;增進交互體驗 概述常用手勢處理Modifierclickable()combinedClickable()draggable()swipeable()transformable()scrollable()nestedScrollNestedScrollConnectionNestedScrollDispatcher 定制手勢處理使用 PointerInput ModifierPointerInputScope…

ue5 3dcesium中從本地配置文件讀取路3dtilles的路徑

關卡藍圖中獲得3dtiles的引用 拉出設置url 設置路徑 至于設置的路徑從哪里來 可以使用varest讀取文件里的接送字符串 path中配置地址 path變量的值為: Data/VillageStartMapConfig.json此地址代表content的地下的data文件夾里的config.json文件 {"FilePath": &quo…

音視頻入門基礎:RTP專題(12)——RTP中的NAL Unit Type簡介

一、引言 RTP封裝H.264時&#xff0c;RTP對NALU Header的nal_unit_type附加了擴展含義。 由《音視頻入門基礎&#xff1a;H.264專題&#xff08;4&#xff09;——NALU Header&#xff1a;forbidden_zero_bit、nal_ref_idc、nal_unit_type簡介》可以知道&#xff0c;nal_unit…

搜索賦能:大型語言模型的知識增強與智能提升

引言 近年來&#xff0c;大型語言模型&#xff08;LLM&#xff09;取得了顯著的進展&#xff0c;并在各個領域展現出強大的能力。然而&#xff0c;LLM也存在一些局限性&#xff0c;尤其是在知識庫方面。由于訓練數據的局限性&#xff0c;LLM無法獲取最新的知識&#xff0c;也無…

EX_25/2/24

寫一個三角形類&#xff0c;擁有私有成員 a,b,c 三條邊 寫好構造函數初始化 abc 以及 abc 的set get 接口 再寫一個等腰三角形類&#xff0c;繼承自三角形類 1&#xff1a;寫好構造函數&#xff0c;初始化三條邊 2&#xff1a;要求無論如何&#xff0c;等腰三角形類對象&#x…

nv docker image 下載與使用命令備忘

1&#xff0c;系統需求 Requirements for GPU Simulation GPU Architectures Volta, Turing, Ampere, Ada, Hopper NVIDIA GPU with Compute Capability 7.0 CUDA 11.x (Driver 470.57.02), 12.x (Driver 525.60.13) Supported Systems CPU architectures x86_64, ARM…