【深度強化學習 DRL 快速實踐】逆向強化學習算法 (IRL)

Inverse Reinforcement Learning (IRL) 詳解

什么是 Inverse Reinforcement Learning?

在傳統的強化學習 (Reinforcement Learning, RL) 中,獎勵函數是已知的,智能體的任務是學習一個策略來最大化獎勵

而在逆向強化學習 (Inverse Reinforcement Learning, IRL) 中,情況相反:

  • 我們不知道獎勵函數 缺失的
  • 但是我們有專家的示范軌跡(比如專家怎么開車、怎么走路): τ = ( s 0 , a 0 , s 1 , a 1 , … , s T ) \tau = (s_0, a_0, s_1, a_1, \dots, s_T) τ=(s0?,a0?,s1?,a1?,,sT?)
  • 目標是:推斷出獎勵函數,使得專家行為在該獎勵下是最優的

簡單來說,IRL 是"從專家行為中推斷動機"

  • Initialize an actor
  • In each iteration
    • The actor interacts with the environrment to obtain some trajectories
    • Define a reward functlon, which makes thetrajectories of the teacher better than the actor
    • The actor learns to maximize the reward based on the new reward function
  • Output the reward function and the actor learned from the reward function

IRL算法之 GAIL 算法詳解

GAIL(生成對抗模仿學習)結合了:生成對抗網絡 GAN(Generator 對抗 Discriminator)和 強化學習 Policy Gradient(策略梯度)

  • 讓智能體學會產生像專家一樣的軌跡,但不直接學習獎勵函數,只通過模仿專家行為來訓練策略
判別器 (Discriminator) :試圖區分 “專家軌跡” 和 “生成器軌跡”

判別器的目標是最大化對數似然:判別器希望對于專家數據 expert 輸出接近 1,對于生成數據 policy 輸出接近 0
max ? D E expert [ log ? D ( s , a ) ] + E policy [ log ? ( 1 ? D ( s , a ) ) ] \max_D \mathbb{E}_{\text{expert}} [\log D(s, a)] + \mathbb{E}_{\text{policy}} [\log (1 - D(s, a))] Dmax?Eexpert?[logD(s,a)]+Epolicy?[log(1?D(s,a))]

生成器(策略網絡 Policy):試圖“欺騙”判別器,讓判別器以為它生成的軌跡是專家生成的

生成器的目標是最小化:
min ? π E τ ~ π [ log ? ( 1 ? D ( s , a ) ) ] \min_{\pi} \mathbb{E}_{\tau \sim \pi} [\log (1 - D(s, a))] πmin?Eτπ?[log(1?D(s,a))]

這其實可以等價強化學習問題,獎勵信號變成了:
r ( s , a ) = ? log ? ( 1 ? D ( s , a ) ) r(s, a) = - \log (1 - D(s, a)) r(s,a)=?log(1?D(s,a))

  • 這樣,跟標準的 policy gradient 非常類似,只不過獎勵是來自判別器

GAIL 簡單代碼示例

import gym
from stable_baselines3 import PPO
from imitation.algorithms.adversarial import GAIL
from imitation.data.types import TrajectoryWithRew
from imitation.data import rollout# 1. 創建環境
env = gym.make("CartPole-v1")# 2. 加載或創建專家模型
expert = PPO("MlpPolicy", env, verbose=0)
expert.learn(10000)# 3. 收集專家軌跡數據
trajectories = rollout.rollout(expert,env,rollout.make_sample_until(min_timesteps=None, min_episodes=20)
)# 4. 創建新模型作為 actor
learner = PPO("MlpPolicy", env, verbose=1)# 5. 使用 GAIL 進行逆強化學習訓練
gail_trainer = GAIL(venv=env,demonstrations=trajectories,gen_algo=learner
)
gail_trainer.train(10000)# 6. 測試訓練后的模型
obs = env.reset()
for _ in range(1000):action, _states = learner.predict(obs, deterministic=True)obs, reward, done, info = env.step(action)env.render()if done:obs = env.reset()env.close()

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

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

相關文章

入侵檢測系統(IDS)與入侵防御系統(IPS):功能對比與部署實踐

入侵檢測系統(IDS)與入侵防御系統(IPS):功能對比與部署實踐 在網絡安全防御體系中,入侵檢測系統(Intrusion Detection System, IDS)與入侵防御系統(Intrusion Preventio…

P12167 [藍橋杯 2025 省 C/Python A] 倒水

P12167 [藍橋杯 2025 省 C/Python A] 倒水 題目描述 小藍有 n n n 個裝了水的瓶子,從左到右擺放,第 i i i 個瓶子里裝有 a i a_i ai? 單位的水。為了美觀,小藍將水循環染成了 k k k 種顏色,也就是說,第 i i i …

短視頻矩陣系統可視化剪輯功能開發,支持OEM

在短視頻營銷與內容創作競爭日益激烈的當下,矩陣系統中的可視化剪輯功能成為提升內容產出效率與質量的關鍵模塊。它以直觀的操作界面和強大的編輯能力,幫助創作者快速將創意轉化為優質視頻。本文將結合實際開發經驗,從需求分析、技術選型到核…

制作一款打飛機游戲22:表格導出

編輯器功能擴展 今天,我想讓編輯器能夠處理一個數組,這是編輯器將要編輯的東西,它只編輯數組。這些區域在后續的不同版本的編輯器中會有不同的含義,但現在我想創建一個模板,能夠加載一個二維數組,并將二維…

AI數據分析的利器:解鎖BI工具的無限潛力

在數字化浪潮席卷全球的今天,數據已成為企業最寶貴的資產之一。如何高效、準確地分析這些數據,挖掘其中的價值,成為企業決策的關鍵。AI數據分析,作為新時代的數據分析利器,正逐漸改變著企業的決策方式。而BI&#xff0…

【每天一個知識點】IPv4(互聯網協議版本4)和IPv6(互聯網協議版本6)

IPv4(互聯網協議版本4)和IPv6(互聯網協議版本6)是用于在互聯網上標識和定位設備的兩種主要協議。它們的主要區別在于地址空間、結構、以及一些附加功能。以下是兩者的對比: 1. 地址長度 IPv4: 地址長度為32位&#xf…

numpy.random.normal與numpy.random.randn的區別與聯系

先說結論: numpy.random.normal 對應的是 正態分布,numpy.random.randn 對應的是標準正態分布,所以 numpy.random.randn 是 numpy.random.normal 的一個特例。 1. numpy.random.normal 從正態(高斯)分布中抽取隨機樣…

基于 EFISH-SBC-RK3588 的無人機智能巡檢終端方案?

一、硬件架構設計? ?核心算力平臺(EFISH-SBC-RK3588)? ?異構計算能力?:搭載 8 核 ARM 架構(4Cortex-A762.4GHz 4Cortex-A551.8GHz),集成 6 TOPS NPU 與 Mali-G610 GPU,支持多傳感器數據并…

軟測面經(私)

測試流程 分析需求——>制定測試計劃——>設計測試用例——>執行測試——>編寫測試報告 黑盒測試 等價類劃分、邊界值分析法、猜錯法、隨機數法、因果圖。 白盒測試 代碼檢查法、程序變異、靜態結構分析法、靜態質量度量法、符號測試法、邏輯覆蓋法、域測試、…

那些年踩過的坑之Arrays.asList

一、前言 熟悉開發的兄弟都知道,在寫新增和刪除功能的時候,大多數時候會寫成批量的,原因也很簡單,批量既支持單個也支持多個對象的操作,事情也是發生在這個批量方法的調用上,下面我簡單說一下這個事情。 二…

通過VIN車輛識別代碼查詢_精準版API,獲取車輛精準參數

通過17位VIN碼的精準匹配,幫助用戶快速獲取車輛的品牌、型號、出廠日期、排量、外觀、車輛型號等詳細參數。這一API廣泛應用于二手車交易、車輛租賃、配件采購和車輛維修等領域,為用戶提供一個高效、準確的解決方案。 代碼示例 返回格式:js…

Virtuoso ADE采用Spectre仿真中出現MOS管最小長寬比滿足要求依然報錯的情況解決方法

在ADE仿真中錯誤問題如下: ERROR (CMI-2440): "xxx.scs" 46338: I2.M1: The length, width, or area of the instance does not fit the given lmax-lmin, wmax-wmin, or areamax-areamin range for any model in the I2.M3.nch_hvt group. The channel w…

LeetCode hot 100—最長有效括號

題目 給你一個只包含 ( 和 ) 的字符串,找出最長有效(格式正確且連續)括號子串的長度。 示例 示例 1: 輸入:s "(()" 輸出:2 解釋:最長有效括號子串是 "()"示例 2&#xf…

Vue3集成sass

安裝依賴 pnpm add -D sass-embedded配置全局變量 新建文件 src/styles/variables.scss配置Vite 修改 vite.config.ts variables.scss $base-color: bluevite.config.ts // https://vite.dev/config/ export default defineConfig({plugins: [vue(),],resolve: {alias: {:…

【力扣題目分享】棧專題(C++)

目錄 關于棧的題目: 1. 最小棧: 思路: 實現代碼(最終): 2. 棧的壓入、彈出序列: 思路: 實現代碼: 3. 逆波蘭表達式求值: 思路: 實現代碼: 深入了解…

Office 2019 (含Visio+Project)官方IOS 下載

Microsoft Office 2019 是微軟公司推出的一款辦公軟件套裝, 主要包括Word、Excel、PowerPoint、Outlook、Visio、Access、Publisher、OneDrive for Business 和Skype for Business等組件。 這些組件適用于Windows和MacOS平臺,支持多種語言&#xff0c…

遙測終端機,推動灌區流量監測向數據驅動躍遷

灌區范圍那么大,每一滴水怎么流都關系到糧食夠不夠吃,還有生態能不能平衡。過去靠人工巡查、測量,就像拿著算盤想算明白大數據,根本滿足不了現在水利管理的高要求。遙測終端機一出現,就像給灌區流量監測安上了智能感知…

P4017 最大食物鏈計數-拓撲排序

P4017 最大食物鏈計數 題目來源-洛谷 題意 要求最長食物鏈的數量。按照題意,最長食物鏈就是指有向無環圖DAG中入度為0到出度為0的不同路徑的數量(鏈數) 思路 在計算時,明顯:一個被捕食者所…

Xmind快捷鍵大全

常規 插入主題和元素(常用) 編輯主題文本和樣式 選擇和移動 調整畫布和視圖 工具和其他

四. 以Annoy算法建樹的方式聚類清洗圖像數據集,一次建樹,無限次聚類搜索,提升聚類搜索效率。(附完整代碼)

文章內容結構: 一. 先介紹什么是Annoy算法。 二. 用Annoy算法建樹的完整代碼。 三. 用Annoy建樹后的樹特征匹配聚類歸類圖像。 一. 先介紹什么是Annoy算法 下面的文章鏈接將Annoy算法講解的很詳細,這里就不再做過多原理的分析了,想詳細了解…