(二)马尔可夫决策过程
??從第一章中了解到強化學習中,智能體通過和環境進行交互獲得信息。這個交互過程可以通過馬爾可夫決策過程來表示,所以了解一下什么是MDP至關重要。
??不過在了解馬爾可夫決策過程之前,先要一些預備知識,它們分別叫馬爾可夫性質、馬爾可夫過程/馬爾可夫鏈、馬爾可夫獎勵過程。
??馬爾可夫性質(Markov property):如果一個狀態的下一個狀態只取決于當前狀態,跟它當前狀態之前的狀態都沒有關系。換句話說:未來的轉移跟過去是獨立的,只取決于現在。
??給定一個狀態的歷史概念(其實就是過去狀態的一個集合表示):
??馬爾可夫鏈(Markov Chain):一個狀態轉移鏈,從起始狀態到結束狀態。代表狀態轉換過程。
??狀態轉移有很多種表示形式:
??表示法1:圖解法(圖中包括狀態之間發生轉移的關系以及狀態轉移對應的回報值)
??表示法2:狀態轉移矩陣法(矩陣維度等于狀態,矩陣值為轉移概率,以條件概率形式表示)
??馬爾可夫過程(Markov Process):其實書中并沒有和馬爾可夫鏈做太大的區分,對于RL來說,只需要明確它們都是表示存在狀態轉移就可以。但實際上還是有不同的,馬爾科夫鏈更廣泛一點,具體內容可以參考:馬爾可夫鏈_百度百科 (baidu.com)
??舉個馬爾可夫鏈的例子:s3,s2,s3,s2,s1。從頭到尾的執行過程就可以叫做馬爾可夫過程。
??馬爾可夫獎勵過程(Markov reward process)=馬爾可夫鏈+獎勵函數
??那什么是獎勵函數呢?在前面的概論中,了解到RL過程中狀態轉移會有獎勵。這個獎勵函數就是這個獎勵的一種表示。之前是概念性的,現在用數學化的方式來表達一下。
??回報(return):當前狀態及之后狀態的總收益,一般把之后的狀態打折扣。如下,回報常用G表示:
??ps:上式中R就是獎勵函數
??回報是針對每一個狀態的,從上一章中了解到。價值函數是用來判斷策略好壞的。那有沒有辦法去衡量一個狀態的價值呢?方法當然有,其實就是價值函數的分類之一:狀態價值函數(state-value function)。對于馬爾可夫過程而言,狀態價值函數定義為回報的期望:
??這個的γ是折扣因子,原因之前介紹過了,認為未來的獎勵對于當前狀態的影響會小。 折扣因子的作用有如下幾點:
??1)避免過程中有環路,出現無窮獎勵
??2)用來表達不確定性
??3)表達出傾向于立刻的獎勵
??馬爾可夫決策過程:馬爾科夫鏈+獎勵+決策(動作)
??由上面的定義式知,馬爾可夫決策也等于馬爾可夫獎勵+決策。所以決策和獎勵二者之間存在這樣的轉化關系:
??一個明顯的問題就是:馬爾可夫決策過程和馬爾可夫過程/獎勵過程有什么區別呢?區別就是決策的存在,體現為是否有具體動作的選擇。用圖來說明這個問題:
?? 注:上面右邊這個圖其實叫備份圖,備份類似于自舉之間的迭代關系,對某一個狀態當前的價值和未來價值線性相關。對于備份有兩種分類 同步備份:每一次迭代都會完全更新所有的狀態。異步備份:通過某種方式,每一次迭代不需要更新所有的狀態。
??左邊這個圖可以代表過程/獎勵過程,右邊代表決策過程。很直觀的可以看出決策中增加了動作的選擇(也就是決策Π)。普通的馬爾可夫過程只是代表狀態的轉移,而馬爾可夫決策過程中加上動作層。狀態執行動作由策略決定,執行動作后變成的狀態是其實一個概率事件(原因在于不同時間,即使相同狀態執行相同動作的結果也不一定相同。情況在變)。
??馬爾可夫決策中引入了策略,那如何定義策略的好壞呢?就需要引入另一種評價指標,價值函數。價值函數決定了策略的好壞。之前提過價值函數分兩種:狀態價值函數、動作狀態價值函數。下面對這兩種價值函數給出定義:
??ps:價值函數的引入已經反復提了很多次,但其實整體是一個邏輯有策略就有價值函數。不過本節會更傾向于數學化的表示
??狀態價值函數(state-value function):
??動作狀態價值函數(action-value function,也叫Q函數):
??從上面的數學式上看,都是與回報相關的期望。而且是策略確定
??當了解到這里后,會有兩個很直接的問題:
??1)如果策略已知,它的兩個價值函數怎么求?(以函數做類比,函數形式是什么樣的?)
??2)價值函數求出來了,想要更好的策略。怎么利用求出來的價值函數更新更好的策略
??關于這兩個問題,這章可能不能給出直接的答案。但后面會逐漸介紹解決方法的,敬請期待~
??想這樣一個問題:對于兩個狀態,最關心的是什么?應該是兩個狀態是怎么轉換的!能不能了解到兩個狀態轉換的表達式,而且根據馬爾可夫性質,這兩個狀態應該是時間上連續的。做一個假定(后面都是按照這個來):s是當前狀態,s’是下一個狀態。
??假設現在有了一個策略(其實總會有初始化的一個策略,只不過可能不好),關心的是兩類價值函數。結合上面說的過程轉換,那對于兩類價值函數來說,狀態轉換表達式是啥呢?(hhh,終于繞過來了)
??能夠解釋上個問題的就是貝爾曼期望方程(Bellman expectation equation,有的時候會簡稱為貝爾曼方程),其實理解馬爾可夫決策過程的關鍵就是明白貝爾曼方程的含義及推導過程,貝爾曼方程的作用是定義了當前狀態和未來狀態的關系。先給出貝爾曼方程的結果式,然后再來進行推導:
??對于貝爾曼方程的推導比較難以理解,直接啃書本可能會懵。這里推薦一個視頻課,我覺得講的很清楚(直接去看,不要多說,看了就會):
【強化學習】馬爾科夫決策過程【白板推導系列】_嗶哩嗶哩_bilibili
??學的時候直接找這個就行,為了證明我會了,我也會手動推理一遍。并在旁邊標上注釋。可以作為學習參考:
??貝爾曼最優方程(Bellman optimality equation)推導如下:
??因為我們的目標是最優策略,所以貝爾曼最優方程就是從最優的角度出發。推導前后關系。
??現在,明確了貝爾曼方程。繼續往下看:
??上式也是馬爾可夫獎勵函數的推導式,那現在來看看如何求解馬爾可夫獎勵函數的價值,有兩種方式,分別對應了兩種情況:
??1)解析解:對應狀態量較小
?? 使用的主要思想是把整體矩陣化,在此不進行推導了。只擺出結論:
??其中V代表價值,I代表單位矩陣,γ代表折扣因子,P代表狀態轉移矩陣,R代表每個狀態的回報(因為其中有求逆的操作,復雜度較高,狀態數過多代表矩陣維度過高,不易計算)
??2)迭代解:對應狀態量較大
??迭代求解的方法有很多種,在此簡單介紹下(后面會多次詳細的使用這些方法):
????(1)蒙特卡洛法(MC):進行一次實驗,產生一次軌跡。得到一次獎勵。多次實驗取平均,作為價值。偽代碼如下:
????(2)動態規劃法(DP):迭代中關注狀態變化,等到狀態變化不大時,更新停止,再計算當前狀態對應的價值。偽代碼如下:
????(3)時序差分法(TD): MC中需要完成一次完成的獎勵采樣才能得到結論,那如果存在一些限制,無法結束。能否通過相鄰兩個狀態的變化就求解出想要的內容呢?這就是時序差分干的事情。在此給一個思想,后面會詳細的介紹相關內容的。
??ps:動態規劃法中涉及到一個概念:自舉,這是一種思想,指根據其他估算值來更新估算值。重點是估算值,說明就不是準確的。
??下面介紹一些概念,從概念引出要介紹的內容:
??策略評估:計算狀態價值函數的過程叫做策略評估。另外一種含義是預測當前采取的策略最終會產生多少的價值
??預測和控制(馬爾可夫決策過程里面的兩個關鍵問題):
??預測指給定一個馬爾可夫決策過程<S,A,P,R,γ>及一個策略Π,去計算它的價值函數(兩個輸入一個輸出)
??控制指我們去尋找一個最佳的策略,然后同時輸出它的最佳價值函數和最佳策略(一個輸入兩個輸出)
??比較兩者區別,預測要策略已知,控制是策略未知。兩者之間的存在遞進關系,在RL中一般是先解決預測問題,然后再解決控制問題。
??馬爾可夫決策過程控制:已有一個馬爾可夫決策過程,確定最佳策略和最佳價值函數。
??最佳策略和最佳價值函數之間有什么關系嗎?其實它們是一個東西,取到了最佳策略就對應的是最佳價值函數。一般求的話是先取得最佳的價值函數,然后問題轉變成如何得到最佳策略,通過的方式就是Q函數極大化。
??啥意思呢?直白點兒說最優策略就是每步動作都是價值最大的,那就從所有的動作中選擇一個最大的,以這個動作作為策略的一部分就OK了。當然這個只是概念上的一種方法,具體怎么實現呢?尋找最佳策略有個專業術語叫做:策略搜索。最簡單的辦法就是窮舉,然后根據回報選一個最佳策略。但效率很低,常用的兩種方法是策略迭代和價值迭代
??策略迭代:
??策略迭代由兩部分組成:策略評估+策略改進
??策略評估:已有一個策略Π,計算這個策略的價值函數V
??策略改進:得到價值函數V,通過獎勵函數和狀態轉移計算Q函數。通過最大化Q生成新策略。
??價值迭代:
??價值迭代算法的精髓是不停地去迭代貝爾曼最優方程,到最后會趨向于最佳策略,
??策略迭代與值迭代都屬于強化學習里面策略求解中的動態規劃方法
??如果到這兒還不太清楚策略迭代和價值迭代也不用著急,具體的內容還在后面,我在網上找了一些相關的內容,可以看一看,提前學習一下下:
??策略迭代流程:
??策略迭代的目的是尋找最優策略,方法是不斷更新策略。更新策略的方法是不斷選擇狀態價值最高的策略。讓狀態價值變高的方法是選擇正確的狀態。這是反向過程,首先根據狀態計算狀態的價值,讓價值收斂就是選擇出具有最高價值的狀態/確定了新策略的評估函數。利用評估函數,確定每一個狀態選擇每一個動作的價值。選擇價值最高的動作,將這個動作作為策略。這個策略比之前的有所改進。
??價值迭代流程:
??價值迭代的目的是尋找最優策略和最大價值函數。進行價值函數更新時就直接選擇最好的。策略迭代中利用的是收斂即可,這里是要嘗試所有狀態的所有動作,選擇其中最大的價值。并將這個期望價值函數作為當前狀態的價值函數,然后收斂就行。利用最有價值函數和狀態轉移概率計算出最優動作,這就是最優策略
參考: 策略迭代與值迭代的區別_dadadaplz的博客-CSDN博客_值迭代和策略迭代區別
??老規矩,課后題來!
2-1 折扣因子有三個作用:1)防止無窮獎勵 2)傾向與當前獎勵 3)表達不確定性
2-2 解析解求解的時候計算了矩陣的逆,矩陣的維度是狀態數,狀態數過多時,求解時間復雜度很高
2-3 貝爾曼方程的推導寫了一遍,我覺得我掌握一種就夠了(狗頭保命)
2-4 決策過程比獎勵過程多了一個決策的動作層
2-5 馬爾可夫獎勵比馬爾可夫過程結構上多了每次狀態轉移的獎勵
2-6 價值迭代和策略迭代,策略迭代只尋找最優策略,價值迭代尋找最優策略及最優價值函數
2-1 馬爾可夫過程指狀態轉移過程,而且下一時刻狀態只取決于當前狀態,與當前狀態前面的狀態無關。馬爾可夫決策過程指馬爾可夫獎勵過程+策略選擇。 最重要的性質只有相鄰狀態間存在相關性
2-2 策略迭代和價值迭代
2-3 ?????
2-4
2-5 都是最優情況下,按照最優的唯一性,最佳價值函數和最優策略對應的應該是相同情況
2-6 當n越來越大時,方差應該是變大的。這點類比于MC和TD的關系,MC相當于n趨近于無窮,MC的方差更大。類似MC的期望更小,n越大,期望也會越小
??學完MDP這一章,我們明確了要尋找最佳策略,給了策略迭代和價值迭代的方法。本文介紹了思想,但是它們具體是怎么實現的呢?且聽下回分說。
因作者水平有限,如果錯誤之處,請在下方評論區指正,謝謝!
總結
以上是生活随笔為你收集整理的(二)马尔可夫决策过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (一)强化学习概述
- 下一篇: linux 获取计算机IP地址、MAC、