【AI】【強化學習】強化學習算法總結、資料匯總、個人理解

前言:自己學習西湖大學趙老師的課、youtube系列的課程相關比較重要的內容,后續不斷再進行完善。

YouTube Serrano.academy rlhf講的很好 合集最后一個沒看

強化學習第四章
police沒一步需要無窮,值迭代只需要一步 收斂不一樣
值迭代:原因在于值迭代在于貝爾曼最優方程的值,核心的目的在于優化得到矩陣方塊中每個格子的值。只需要每步驟選擇action的q值最大的策略,然后不斷迭代,然后就能優化得到最后收斂的格子值。
策略迭代: 策略迭代之所以需要n步,就是因為策略迭代需要進行策略矩陣求解,如果不進行矩陣求解的話就要進行值迭代

第五章
蒙卡諾納 mc basis 還是之前的policy evaluate policy improve 只不過q值不是模型計算出來的,而是取樣取出來的
mc exploring starts 一條軌跡走的很遠,從而一條軌跡能有很多的復用
mc greedy 采取策略的時候不用argmax 最優化的選擇,而是放寬一點策略,允許一些隨機游動,增加探索性

第六章
RM算法 :在不知道具體函數表達式的情況之下,在第k次的根的估值值wk計算之后,再進行一次有噪音的觀測乘以系數加和,就得到了wk+1次根估計觀測
Rm算法的收斂條件 1.梯度有限 2.系數值不要收斂到0太快,但是也也要收斂到0,比如1/k 3.高斯噪聲滿足期望為0,方差有限
隨機梯度下降收斂性分析:隨機梯度下降在初始值距離最優值很遠的時候,表現像梯度下降。當距離最優值很近的時候,就會上下跳躍浮動,隨機性很大
批量梯度下降,所有樣本都用上了,隨著n變大,所有樣本平均值接近于真實梯度值。小批量梯度下降 用了幾個,隨機梯度下降只用了一個

第七章
第二小節
TD learning最簡單的形式 PPT紅色部分的表達式
vt+1(st) 每個下標不同的含義,vt+1的t+1代表是t+1時刻的估計值(也不能理解為時刻 可以理解為迭代次數),st中的t代表環境中的agent在t時候到達了某個狀態st
TD error 就是當前第t次的估計值,與還是t次不過狀態st要到下一個st+1狀態后續TD target的差距,TD算法就是類似RM,不斷優化迭代
TD算法本質是一個使用rm求解一個貝爾曼期望方程
TD與MC的區別,td算法是在線的 不需要一個episode結束,是持續改進的,需要給一個初始值的Initial guess,是低反差 因為隨機變量少rt+1 st+1 at+1 但是有偏估計(對比mc算法,從頭開始估計episode)

第三節
Sarsa算法 和TD算法類似,只不過從狀態值變成了action值的估計
sarsa算法過程,policy evaluate 就是action值得估計,然后得到一步迭代之后,就里面policy improve ,使用部分greedy算法

第四節
expected sarsa是將q值變化的地方action值變為從具體單個樣本迭代值,變為變量,從而可以再求期

第五節
n-step sarsa ,n=1變成,sarsa算法,n=無窮變成MC算法(需要無窮樣本)

第六節
q learning 解決的是一個貝爾曼最優方程
off-policy 就是說behavior policy 和target policy不一樣,我們可以從別人不一樣的經驗里面學東西,sarsa和mc算法是on policy,q learning是off policy的
q learning 有2個版本 on policy 策略更新policy improve采用greedy算法,便于探索性,off policy采用episode從πa生存,然后policy improve不采用greedy算法,直接取最優的情況

第七節
不同的td算法,本質就是td target的不同,從sarsa到n step 到expected sarsa 到q learning到mc 方法

第八章
第二節
2.1最后 dπ代表一個軌跡走了很遠之后,出現在每一個狀態的概率值。dπ=dπ*pπ,代表在軌跡走了很遠很遠趨于無窮之后,乘以pπ,狀態轉移矩陣,還是相同的概率值
2.2優化算法 采用類似RM迭代式算法來優化參數w相關的東西。方式采用隨機梯度下降的算法,一個個采樣st進行迭代式下降
2.3 說表格的表示方法是線性估計法的特例,其中推導過程中部分表達式看著看著就看不懂了,比如tabular是function approximation的一個特殊形式,最后推導過程中w(s),代表參數向量w中第s個參數,wt(st+1)代表wt第t次迭代向量參數,t+1時刻agent所在的s的狀態
2.5 告訴我們實際上真正TD線性算法狀態是估計是最小化投影后的貝爾曼方差

這章后面dqn算法,本質就拿神經網絡擬合相應的參數,類似線性擬合法,具體細節需要看PPT

第九章
第九章和第八章類似,第八章是action和state可以從表格變成函數,第九章是策略也可以用函數表達
9.1 policy gradient的基本思想
使用j(θ)來定義最優策略,然后使用梯度上升最優化策略
9.2 講的是怎么定義j(θ)
第一種方式 -所有狀態的期望值
① d的分布和策略π無關,那么就記作d0,最終的值記作v-0
② d的分布與策略π有關,可以利用dπ=dπ*pπ,知道pπ可以知道平穩狀態下的dπ情況
第二種方式- 一步reward的平均值
具體最終的值的遞進關系如下:
rπ- (所有狀態s的期望值) <- rπ(s) (在特定狀態s的所有action的最終期望) <-r(s,a)(所有可能reward的期望) 【具體看PPT】

附錄:在論文中經常看到lim1/n Rt+k 的加和,實際就是rπ-
上面兩種方式,在discounted情況下實際是等價的,rπ-=+(1-y)vπ-

總結: rπ- =dπ(s)rπ(s)的加和= lim1/n Rt的加和
vπ- =dπ(s)vπ(s)的加和 =y^tRt+1 從0到無窮的期望加和
論文中經常讀到的是后者

9.3 主要講的是最優策略的梯度的表達式
這里定義了一個表達式,但是具體推導沒給出來。通過這個公式我們可以不斷進行梯度上升,

9.4 講解到底怎么梯度上升
這節課表達式中的qt(st,at),可以使用MC估計的方法來估計,叫做REANFORCE方法
具體見PPT,其中迭代算法系數值,有一個平衡的機制,一部分是加強選擇更大的q值,一部分是加強更強的探索性,剛好平衡了這兩點

算法步驟
一開始π(θk),產生一些episode,然后qt使用MC算法進行近似迭代。然后進行policy更新,最后拿更新后的policy再進行迭代。注意的是這個是離線的算法,需要等都采樣完之后才能更新。

10 actor-critics方法 主要思想就是第八章 value approximation方法引入到第九章 policy gradient方法里面

10.1最簡單的AC算法 QAC算法
其中算法和第九章最后的算法步驟一模一樣,θ的迭代算法就是指的actor,qt(s,a)其中qt就是指的是critic
其中qt值被用mc進行估計,就是第九章算法,叫做REANFORCE
而QAC是如下形式
其中critica實際就是算法步驟中sarsa+value function估計的方法(但是這里我還是沒懂和之前的算法有什么本質的區別???) ,actor指的是policy update方法,這個算法是on policy的能改進原來的算法情況
為什么叫qac,q實際指的是q值

10.2 A2C主要目的是在求策略函數的時候,怎么加進去一個東西使其的方差最小。加進入這個b(s)就是vπ(s),經過一系列的簡化步驟之后,我們發現使用迭代算法優化θt,我們會采用相對值而不是絕對值q值來優化θ,因為q值1w看著很大,但是周圍2w,相對來講也不是最優值了

算法過程:前提 將qt(st,at)-vt(st)簡化成rt+1+yvt(st+1)-vt(st)這樣后面萬一用神經網絡擬合時候少用一個網絡
算法具體步驟
先算 td error
然后 critic (value update)采用的是
td算法,拿之前算的td error來帶入
然后 再進行actor (policy update)
進行θ迭代,同樣拿之前的td error帶入進行迭代
(???但是我還是沒有理解里面的本質含義)

10.3 off policy actor-critic
重要性采樣:一個分布用來behavior一個用來改進策略,兩個分布不同,所以直接采樣肯定用a的分布來估計b肯定不準,所以要講a的概率分布進行表達式進行轉換,轉成b的這樣就不會有問題了
重要性 權重就是p0(xi)/p1(xi) ,但是這個里面需要知道我們想要求的a分布(對應p0),和b分布(對應p1),但是重要性采樣的權重的表達式都知道p0(xi)/p1(xi)*xi,相當于直接求期望,為什么不這樣呢,因為有的分布不好直接求期望,比如用神經網絡擬合的分布

整體的算法步驟相比,critic和actor中多了一個轉換的系數因子

10.4 deterministic policy
這樣的策略 a=u(s,θ),不像之前的π一樣都是大于0的 ,輸出的直接是一個action,比如向上 向下什么的

deterministic policy。是off policy的,因為在推導中策略函數j(θ)的梯度,中a被u(s,θ)代替了,所以我們不需要像之前那樣a,s,a,s這樣交替更換下去,來判斷a是是哪個策略來的,可以是任何策略 所以是off policy的

這個算法步驟和之前類似,最后有些不一樣

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

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

相關文章

一鍵掌控三線資源:極簡 Shell 腳本實現 CPU·磁盤·內存可視化巡檢

目錄 前言 數值型 for 循環 語法格式 示例&#xff1a;打印 1 到 5 示例&#xff1a;打印5次Hello World 示例&#xff1a;計算 1 到 100 的累加和 遍歷型 for 循環 語法格式 示例&#xff1a;遍歷字符串列表 示例&#xff1a;遍歷數組 示例&#xff1a;遍歷文件列表…

數據結構:創建堆(或者叫“堆化”,Heapify)

目錄 最直觀的思路 更優化的思路&#xff08;自底向上的構建&#xff09; 第一步&#xff1a;重新審視問題 第二步&#xff1a;找到規律&#xff0c;形成策略 用一個實例來推演 第三步&#xff1a;編寫代碼 總結與分析 我們來深入探討“創建堆”&#xff08;或者叫“堆化…

基于 GPT-OSS 的成人自考口語評測 API 開發全記錄

1?? 需求與指標 在項目啟動前&#xff0c;我們設定了核心指標&#xff1a; 字錯率&#xff08;WER&#xff09;< 5%響應延遲 < 800 ms高可用、可擴展 這些指標將貫穿整個開發和測試流程。 2?? 數據準備 準備訓練數據是關鍵步驟&#xff0c;我們使用了 1k 條自考口…

Linux初始——基礎指令篇

Linux常用指令pwdlscdtouchmkdirrmmancpmvcatmorelesswhichwhereisaliasgrepfilezip/unzip 指令rzsztarpwd 在xshell中輸入pwd并回車&#xff0c;將輸出當前用戶所存在的目錄位置 可看到當前用戶是在/home/hhw這個目錄下 ls 在xshell中輸入ls會顯示當前目錄所包含的文件 其中…

Vue-24-利用Vue3的element-plus庫實現樹形結構數據展示

文章目錄 1 項目啟動 1.1 創建和啟動項目(vite+vue) 1.2 清理不需要的代碼 1.3 下載必備的依賴(element-plus) 1.4 完整引入并注冊(main.sj) 1.5 設置@別名(vite.config.js) 2 el-tree樹形控件 2.1 TreeComponents.vue 2.1.1 模板部分 2.1.2 類型定義(Tree) 2.1.3 樹形數據(dat…

Kubernetes 部署與發布完全指南:從 Pod 到高級發布策略

引言:告別手動,擁抱聲明式 在傳統的部署流程中,我們常常需要手動執行一系列命令:SSH 到服務器、拉取新代碼、編譯、重啟服務、檢查日志、處理錯誤…這個過程不僅繁瑣低效,而且極易出錯,難以保證環境的一致性。 Kubernetes 徹底改變了這一切。它通過一種 “聲明式” 的模…

支持向量機核心知識總結

一、核心基礎概念核心目標&#xff1a;在樣本空間中找到劃分超平面&#xff0c;將不同類別樣本分開&#xff0c;且該超平面對訓練樣本局部擾動的 “容忍性” 最優&#xff08;即抗干擾能力強&#xff09;。超平面定義超平面是 n 維空間中的 n-1 維子空間&#xff0c;是 SVM 分類…

Spark學習記錄

1、Spark基礎介紹 1.1、Spark基礎概念 Spark是一種基于內存的快速、通用、可擴展的大數據分析計算引擎 1.2、Spark運行架構 運行過程&#xff1a; Driver 執行用戶程序&#xff08;Application&#xff09;的main()方法并創建 SparkContext&#xff0c;與 Cluster Manager 建…

二進制方式安裝部署 Logstash

背景說明 Logstash 是一個開源的數據收集和處理引擎&#xff0c;是 Elastic Stack 的重要組件之一。在本方案中&#xff0c;我們使用 Logstash 作為 Kubernetes 集群日志收集的關鍵組件&#xff0c;主要用于&#xff1a; 從 Kafka 消費各服務的日志數據對日志數據進行過濾和轉…

如何用 Kotlin 在 Android 手機開發一個計算器

使用 Kotlin 開發 Android 計算器1. 創建新項目 打開 Android Studio&#xff0c;選擇新建項目&#xff0c;模板選擇 "Empty Activity"&#xff0c;語言選擇 Kotlin&#xff0c;確保最低 API 級別為 21 或更高。2. 設計用戶界面 在 res/layout/activity_main.xml 中定…

【Hadoop】Zookeeper、HBase、Sqoop

Zookeeper概述Zookeeper可以監視HDFS系統的name node和data node&#xff0c;HBase也極度依賴zookeeper&#xff0c;因為zookeeper維護了HBase的源數據以及監控所有region server的健康狀態&#xff0c;如果region server宕機會通知master 。它也可以避免腦裂&#xff08;只有一…

MLIR - Linalg

簡介 Linalg是MLIR中的HHO&#xff08;High-level Hierarchical Optimization&#xff09;中的核心方言&#xff0c;設計用于支持如下的核心Transformation&#xff1a; Progressive Buffer Allocation.Parametric Tiling.Promotion to Temporary Buffer in Fast Memory.Tile…

SQL相關知識 CTF SQL注入做題方法總結

SQL MySQL基礎 MySQL基本操作 1.查詢本地所有數據庫&#xff1a; show databases; 2.使用數據庫&#xff1a;use 數據庫名; 3.查看當前使用的數據庫名&#xff1a;select database(); 4.查看當前使用的數據庫的所有表&#xff1a;show tables; 5.查看數據庫版本&#xff1a;sel…

魔方的使用

三階魔方入門玩法教程 【簡單實用11個公式】三階魔方分步還原公式圖解 【初級篇】三階魔方入門教程 1、底棱歸位&#xff08;底十字對中層&#xff09; 先頂黃白十字&#xff0c;旋轉對齊中層后&#xff0c;R’2翻到底層 2、底角歸位 上右-前-》右下 &#xff1a;URU’R’…

新手友好!剪映:開啟你的視頻剪輯之旅!(國際版)

一.軟件介紹 剪映&#xff08;CapCut&#xff09;是一款由??抖音旗下深圳市臉萌科技有限公司??開發的全功能視頻編輯軟件&#xff0c;自2019年5月上線以來&#xff0c;因其簡單易用且功能強大&#xff0c;受到了大量用戶的喜愛。 1.功能和作用&#xff1a; 功能類別主要…

使用AI大模型Seed1.5-VL精準識別開車接打電話等交通違法行為

原文鏈接 本案例根據用戶上傳的電子警察或道路卡口抓拍的圖片,使用豆包全新視覺深度思考模型Doubao-1.5-thinking-vision-pro,精準識別車牌號碼、車牌顏色、車身顏色、車輛品牌等車輛信息,同時通過算法精確識別開車打電話、未系安全帶等交通違法行為,具有極強的實用價值。…

騎行商城怎么開發

隨著騎行運動普及與數字化消費升級&#xff0c;“騎行中控數據變現積分商城”模式成為新趨勢。以下從核心步驟、關鍵要點、風險規避三方面&#xff0c;詳解如何搭建該類型小程序。一、明確核心架構與需求定位在開發前需確定小程序的核心邏輯與目標用戶&#xff0c;避免功能冗余…

揭秘表格推理的“思維革命”:RoT模型介紹

–– RoT: Enhancing Table Reasoning with Iterative Row-Wise Traversals今天&#xff0c;我想和大家探討一個我們每天都會遇到&#xff0c;卻可能從未深思過其背后奧秘的事物——表格。從公司的財務報表、醫療數據&#xff0c;到體育賽事統計&#xff0c;表格無處不在&#…

【C++】AVL樹(詳解)

文章目錄 上文鏈接一、什么是 AVL 樹二、AVL 樹的實現1. 引入平衡因子2. 整體結構3. AVL 樹中的插入操作(1) 插入節點(2) 更新平衡因子更新規則停止更新條件 4. 旋轉(1) 旋轉的目的(2) 右單旋(3) 左單旋(4) 左右雙旋(5) 右左雙旋 5. AVL 樹的查找與刪除6. AVL 樹的平衡檢測 三、…

shell編程-核心變量知識

文章目錄shell簡介如何學好shell初識shell什么是shell執行shell腳本常用的三種方式shell變量變量相關的配置文件變量的定義shell核心位置變量shell簡介 為什么學習shell&#xff0c;shell的作用 面試題&#xff1a;給你一臺主機你的操作流程是什么&#xff1f; 1.自動化安裝操…