學習深度強化學習---第2部分----RL動態規劃相關算法

文章目錄

    • 2.1節 動態規劃簡介
    • 2.2節 值函數與貝爾曼方程
    • 2.3節 策略評估
    • 2.4節 策略改進
    • 2.5節 最優值函數與最優策略
    • 2.6節 值迭代與策略迭代
    • 2.7節 動態規劃求解最優策略

本部分視頻所在地址:深度強化學習的理論與實踐

2.1節 動態規劃簡介

態規劃有兩種思路:分治法和動態規劃,目的是求解一個大問題。
分治法
分治法是將一個大問題分解成多個相互獨立的子問題。然后再逐個解決每個子問題,最后將多個問題的結算結果c1、c2、…、cn進行總結,最后得到總問題的解。
subp1:表示將大問題分成的子問題
這些子問題的特點是這些子問題之間是相互獨立的,也就是這些子問題是可以獨立求解的。
動態規劃
這個方法是將一個總問題進行逐步求解,先求解subp1,再求解subp2,…,最后求解subpn問題,
子問題的特點是嵌套的,遞歸的求解,即想要解決子問題subp3,必須先要求解子問題subp2,想要解決子問題subp2,必須先要求解子問題subp1。每個子問題的結構是一樣的,即如果一個子問題是加法問題,則所有問題都是加法問題。
在這里插入圖片描述
找到的其結構特征,就是去找到嵌套的結構特征
在這里插入圖片描述
動態規劃解決問題的案例

在這里插入圖片描述

2.2節 值函數與貝爾曼方程

在這里插入圖片描述
根據馬爾科夫鏈定義一些東西:
即時獎勵(通常稱為獎勵,reward)
累計獎勵Gt: 表示狀態為St時執行動作At之后累積的獎勵。累計獎勵中每一個時刻對應的即時獎勵不能夠同等看待。原因是例如在下象棋時第一步走馬和棋局最后幾步走馬同樣是走馬的動作,但是走馬的動作重要性是不同的。所得到的即時獎勵是不同的。在棋局最后的終止狀態附近的獎勵應該被認為是更重要的。
累積折扣獎勵(通常稱回報,return): 智能體在t時刻的累積獎勵會這么認為,離該時刻越近的即時獎勵重要性應該越大,離該時刻越遠的即時獎勵重要性越小。舉例:在終止狀態T時刻,RT的重要性要遠超于R1的重要性,其根本原因是動作AT-1的重要性要遠超于動作A0的重要性。
在這里插入圖片描述
延時越長時RT,對Gt的影響越小: 延時越長時RT,即T越大,參數γ經過T指數后參數變得很小,因此對Gt的影響越小。
強化學習的目的或目標: 尋找到一個能夠使累積折扣獎勵Gt最大的最優策略。如果該策略可以使得每一個時刻的累積折扣獎勵都最大,這個策略是最優的。
在這里插入圖片描述
有了累積折扣獎勵函數之后,進一步定義兩個值函數:狀態值函數、動作值函數。
在這里插入圖片描述
上面的Rt+1應該寫成Rt+k
在這里插入圖片描述
從上面的式子可以看出來,對于每個狀態和每一個動作都會對應一個動作值,對于離散的狀態空間和動作空間來講那么動作值的個數應該是有限的,此時將會使用一個表來表示這個Q,之后會學習一種基于表的強化學習方法。
‘狀態值函數和動作值函數之間是可以相互轉換的。’
在這里插入圖片描述
上面是假設s的下一個狀態為s'
詳細解釋與推導:
在這里插入圖片描述
動態規劃的核心:貝爾曼方程。下面的兩個方程認真一點都能寫出來,需要注意的是在
1)狀態值函數表達的貝爾曼方程中的r是在s狀態下執行動作a之后得到的獎勵r,在得到的這個方程的時候是這么簡寫的。
2)寫動作值函數的貝爾曼方程時第2個Q函數中的s和a都是下一時刻的狀態和下一時刻的動作。因此動作值函數表達的貝爾曼方程中有4個變量:當前時刻狀態s,當前時刻的動作a,下一時刻的狀態s',下一時刻的動作a',比較復雜,而狀態值函數表達的貝爾曼方程中只有2個變量:當前狀態s下一時刻狀態s',形式較為簡單。因此實際中使用狀態值函數更多。
3)兩種貝爾曼方程中的r是基于三元函數的。即r=r(s,a,s'),之前我們還定義過R=R(s,a),此處不是二元的。為什么是3元呢?:因為在方程里面求和的時候,求和符號下面的變量已知了,就代表下一時刻s’已經知道了,那r就采用三元的定義形式了。不過也可以寫成二元的獎勵函數,因此有了下面的基于二元獎勵函數的貝爾曼方程。
4)三元價值函數和二元值函數的關系
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
貝爾曼方程與動態規劃的關系:貝爾曼是動態規劃的發明人,s狀態下的狀態值函數可以使用下一時刻狀態s’的狀態值函數表示出來,也是動態規劃的原理。

2.3節 策略評估

智能體思考在當前環境下要做出什么動作的過程就叫策略。
在這里插入圖片描述
在這里插入圖片描述
所有的終止狀態的狀態值函數都是0
下圖中的狀態轉移概率在上圖中已經展示了一部分,比較好寫。使用的策略是平均策略,也即時在不管在哪個狀態下,采取任意一個動作的概率均為0.5,也因為是每個狀態下可采取的動作只有兩個,定義策略時采用平均策略較好。
在這里插入圖片描述
下圖中基于狀態值函數的貝爾曼方程中的4個方程就嚴格按照方程寫是比較好寫出來的。解出來的結果見下圖
在這里插入圖片描述
在V4的時候稍微麻煩一點,部分計算如下圖
在這里插入圖片描述
需要注意的一點:
聯立的這個4元方程組一定是有解的,原因是:顯然可以看出第1個方程中V2可以使用V1表示,第2個方程中V3可以使用V2表示,第3個方程中V4可以使用V3表示,而第4個方程中可以將所有變量均使用V1去表示,因此這個方程組可以合并成一個關于V1的方程,則必有解。我認為其他的場景下使用動態規劃模型建模的強化學習方法使用方程組法去解則其解也類似如此唯一。
如果在秩的角度來解釋:每個方程都是根據在不同狀態下寫出來的,每個狀態是獨立的,因此這幾個方程是獨立的,是不相關的,因此方程組的秩是滿秩的,因此有唯一解。
當方程組很大的時候采用高斯消元法已經不夠用了,此時使用迭代法來求解一個方程組。即先設置一個初值,經過貝爾曼方程的逐次計算得到一個迭代序列,經過多次迭代就會得到一個最終的近似解。迭代法之后用的更多,優點是速度快、方法簡單,缺點是得到的解是近似解,不是精確解。
在這里插入圖片描述
假如有一個新的策略π’,根據這個策略算出來一系列的狀態值,這些狀態值都要大于原來的策略π算出來的狀態值,那么這個新策略π’就要比原來的策略π要好。具體為什么是這樣,暫時不太清楚,存疑后解。
在這里插入圖片描述

2.4節 策略改進

根據下面的定義可以得出結論:找最優的策略的就是去找最大的狀態值函數。
在這里插入圖片描述
π’(s)表示根據π’策略從狀態s開始下一步執行的動作
策略改進定理:
在這里插入圖片描述
證明:
在這里插入圖片描述
上面證明的一個說明:在V的時候,下標是π或π’似乎無關緊要,不用糾結,當然認真摳細節的話,我覺著應該是薛定諤的V
在這里插入圖片描述
說明:策略改進定理是策略得到改進的充分條件

滿足(2-14)的最簡單的策略就是貪婪策略
簡單解釋為:選擇在狀態s時使得動作值函數最大的動作作為策略。
貪心策略一定是策略改進定理中的(2-14)式的。紅色的公式是用動作值函數來表示狀態值函數的公式。從該公式中可以看出,狀態值函數是動作值函數的期望值,而π’(s)如果是選擇在狀態s時使得動作值函數最大的動作,那么Qπ(s,π’(s))則是最大的動作值函數,必大于等于動作值函數的期望值,也即是必大于等于狀態值函數,因此滿足(2-14)式,故該策略可有效改進。
在這里插入圖片描述
由下圖Qπ(s,a)的表達公式,如果已知Vπ(s’)要去計算Qπ(s,a)需要知道狀態轉移函數p(s’|s,a),如果不知道狀態轉移函數p(s’|s,a)怎么辦?可以使用基于動作值函數的貝爾曼方程去求解
在這里插入圖片描述
基于動作值的貝爾曼方程見下圖:(具體如何根據下圖求解狀態轉移概率有待研究)
在這里插入圖片描述
在這里插入圖片描述
下面示例中的被劃掉的0其實不應該寫的。
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

2.5節 最優值函數與最優策略

2.6節 值迭代與策略迭代

2.7節 動態規劃求解最優策略

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

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

相關文章

前端 Web Workers 簡介

簡介 以前我們總說,JS 是單線程沒有多線程,當 JS 在頁面中運行長耗時同步任務的時候就會導致頁面假死影響用戶體驗,從而需要設置把任務放在任務隊列中;執行任務隊列中的任務也并非多線程進行的,然而現在 HTML5 提供了…

App備案、ios備案Bundle ID查詢、公鑰信息、SHA-1值

App備案、ios備案Bundle ID查詢、公鑰信息、SHA-1值 Bundle ID這個就不說了,都知道是啥,主要說公鑰信息和SHA-1值的獲取 打開鑰匙串訪問,找到當前需要備案App的dis證書,如下: #####右鍵點擊顯示簡介 #####可以看…

03.仿簡道云公式函數實戰-QLExpress初探

1. 前言 在上一篇文章中,我們簡單介紹了一下表達式引擎,并引出我們的主角QLExpress.在這篇文章中,我們先來一個QLExpress的熱身。 2. 初探QLExpress 源碼地址:https://github.com/alibaba/qlExpress 筆者下載源碼的版本是3.3.…

STL源碼剖析筆記——適配器(adapters)

系列文章目錄 STL源碼剖析筆記——迭代器 STL源碼剖析筆記——vector STL源碼剖析筆記——list STL源碼剖析筆記——deque、stack,queue STL源碼剖析筆記——Binary Heap、priority_queue STL源碼剖析筆記——AVL-tree、RB-tree、set、map、mutiset、mutimap STL源…

【Spring 基礎】00 入門指南

【Spring 基礎】00 入門指南 文章目錄 【Spring 基礎】00 入門指南1.簡介2.概念1)控制反轉(IoC)2)依賴注入(DI) 3.核心模塊1)Spring Core2)Spring AOP3)Spring MVC4&…

php實現截取姓名中的第一個字作為頭像的實戰記錄

php 截取中文字符串第一個字 substr 函數 在 PHP 中,使用 substr 函數來截取中文字符串的第一個字。由于 PHP 默認的字符編碼是 UTF-8,它可以正確處理中文字符。 $chineseString "你好世界"; $firstChar substr($chineseString, 0, 1); e…

vue2 組件內路由守衛使用

1、beforeRouteEnter 進入頁面 to – 即將要跳轉到的頁面 form – 跳轉前的頁面,從哪個頁面跳轉過來的 next – 下一步,若無指定跳轉的路由,設置為空 next() 即可 beforeRouteEnter(to, from, next) {next() }, 使用 beforeRouteEnter 時&…

中文分詞演進(查詞典,hmm標注,無監督統計)新詞發現

查詞典和字標注 目前中文分詞主要有兩種思路:查詞典和字標注。 首先,查詞典的方法有:機械的最大匹配法、最少詞數法,以及基于有向無環圖的最大概率組合,還有基于語言模型的最大概率組合,等等。 查詞典的方法…

知識產權服務企業網站建設效果如何

知識產權服務也有較高的市場需求度,尤其如今互聯網深入到各個行業,無論個人還是企業都會以不同的方式經營,相應的為保障自身權益,注冊商標、專利等自然不可少,而對普通小白來說,想要完成這些流程也是有些難…

Python實現獲取b站視頻的彈幕內容

前言 本文是該專欄的第39篇,后面會持續分享python的各種干貨知識,值得關注。 在本專欄之前,有詳細介紹使用python增加b站視頻的播放量方法,感興趣的同學可往前翻閱《Python-增加b站視頻播放量》。而本文,筆者再來單獨的詳細介紹,通過python來獲取b站視頻的彈幕內容。如下…

CGAL的3D皮膚表面網格

1、介紹 Edelsbrunner 引入的皮膚表面和具有豐富而簡單的組合和幾何結構,使其適合在生物計算中模擬大分子。 對這些表面進行網格劃分通常是進一步處理其幾何形狀所必需的,例如在數值模擬和可視化中。 皮膚表面由一組加權點(輸入球&#xff09…

力扣labuladong——一刷day70

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄 前言一、力扣814. 二叉樹剪枝二、力扣1325. 刪除給定值的葉子節點 前言 這道題的難點在于要一直剪枝,直到沒有值為 0 的葉子節點為止,只有從…

RecursionError: maximum recursion depth exceeded in comparison

諸神緘默不語-個人CSDN博文目錄 這個bug的產生原因是運行rouge包時句子太長,所以遞歸次數過多了。完整的報錯信息懶得粘了,總之很長,解決方案就是手動在程序開始處就增大遞歸次數: import sys sys.setrecursionlimit(100000)具體…

html通過CDN引入Vue使用Vuex以及Computed、Watch監聽

html通過CDN引入Vue使用Vuex以及Computed、Watch監聽 近期遇到個需求,就是需要在.net MVC的項目中,對已有的項目的首頁進行優化,也就是寫原生html和js。但是咱是一個寫前端的,寫html還可以,.net的話,開發也…

K8S學習指南-minikube的安裝

簡介 Minikube 是一個用于在本地開發環境中運行 Kubernetes 集群的工具。它允許開發人員在單個節點上體驗 Kubernetes,無需配置復雜的生產環境。本指南將詳細介紹在 Windows、CentOS 和 Ubuntu 系統上安裝 Minikube 的步驟。 1. Windows 系統安裝 1.1 &#xff1…

期末速成數據庫極簡版【查詢】(3)

目錄 多表查詢 【8】多表連接——內連接 🙂等值連接 🙂自然連接 🙂非等值連接 【9】多表連接——外連接 【10】交叉連接不考 【11】聯合查詢 【12】擴展多表連接 【13】嵌套查詢 🙂 多表查詢 【8】多表連接——內連…

HIVE學習(hive基礎)

HIVE基礎介紹 一、HIVE簡介二、hive的數據類型1、基本數據類型2、復合數據類型 三、HIVE的DDL操作四、創建一個表1. 建表語句 五、修改表結構1.修改表名2. 列修改或增加3. 修改分區 五、常見函數六、一對一關聯left join左關聯right join 右關聯內連接全連接查詢只有A表的數據 …

計算機視覺-機器學習-人工智能頂會 會議地址

計算機視覺-機器學習-人工智能頂會 會議地址 最近應該要整理中文資料的參考文獻,很多會議文獻都需要補全會議地點(新國標要求)。四處百度感覺也挺麻煩的,而且沒有比較齊全的網站可以搜索。因此自己整理了一下計算機視覺-機器學習…

OSPF路由協議

隨著Internet技術在全球范圍的飛速發展,OSPF已成為目前應用最廣泛的路由協議之一。OSPF(Open Shortest Path First)路由協議是由IETF(Internet Engineering Task Force)IGP工作組提出的,是一種基于SPF算法的…

JS 云服務 Deno Depoly 宣布,推出定時運行功能 Deno Cron

如果需要定時執行 JS 腳本,以后多一個選項。 Web 構建日益復雜。編寫現代軟件包括利用云基礎設施、剖析模板代碼和管理復雜的配置,而開發人員只想專注于編寫業務邏輯。 Deno 旨在通過刪除配置和不必要的模板,從根本上簡化 Web 開發。我們將無…