理解馬爾可夫決策過程
在高層次的直覺中,馬爾可夫決策過程(MDP)是一種對機器學習非常有用的數學模型,具體來說就是強化學習。該模型允許機器和agent確定特定環境中的理想行為,從而最大限度地提高模型在環境中實現特定狀態甚至多個狀態的能力。這個目標是由我們稱為策略的東西決定的,策略應用於依賴於環境的agent的操作,MDP試圖最佳化為實現這樣的解決方案所採取的步驟。這種最佳化是透過獎勵反饋系統完成的,在這個系統中,不同的行為根據這些行為將導致的預測狀態進行加權。
分解
要了解MDP,我們首先應該看一下流程的獨特組成部分。它包含:
- 存在於我們指定環境中的一組狀態:S(state)
- 在指定環境中存在一組有限的行為:A(agent)
- 描述每個動作對當前狀態的影響:T
- 給出所需狀態和行為的獎勵函式:R(s,a)。
- 尋求解決MDP的政策。您可以將其視為從狀態到我們的行為的對映。用更簡單的術語表示在狀態S時應該採取的最佳行為'a'。
理解模型:
從上圖中可以看出,我們有T(S,a,S')〜P(S'| S,a)。
該模型通常被稱為轉換模型。T代表了我們行為的概念化。我們從一些狀態S開始,我們採取行動A,我們的agent發現自己處於一個新狀態S'。
接下來,我們定義P,或者我們透過在前一種狀態中採取行動而達到新狀態的機率。
Markov性質:
P[ S t+1 | a, S0 , ….. , S t ] = P[ S t+1 |a, S t ]
上面的公式是馬爾科夫性質狀態的定義。我們再來分解一下。
St+1 可以被解釋為未來的狀態,[ S 1 ,..., S t ]表示狀態歷史中存在的所有相關資訊的歷史。當然,a仍然代表著正在採取的行為。但是,新狀態僅取決於之前的狀態。
給定馬爾可夫狀態,定義轉移機率。
鑑於我們的agent處於某種狀態s,對於每一個存在的狀態,都有一種到達第一種狀態的機率,另一種到達第二種狀態的機率,依此類推。這是轉換機率。
我們可以採用這些機率並將它們輸入狀態矩陣!讓我們定義一個帶有3種狀態天氣問題的例子。規則如下:
- 你住在陽光鎮,但可悲的是,陽光鎮從來沒有連續兩天好天氣。
- 如果你有個美好的一天,第二天就有可能下雪或下雨。
- 如果我們下雪或下雨,第二天有50%的機會有相同的天氣。
- 如果天氣從下雪或下雨變化,它只會一半的時間變成晴天。
使用這個假的環境資訊,我們可以像這樣構造一個狀態矩陣:
其中,矩陣的第一行表示在給定雨天的情況下,未來幾天天氣的機率。第二行表示正常日子的機率,第三行表示雪天的機率。這種轉換機率矩陣稱為轉換矩陣。
現在,讓我們從我們的矩陣中嘗試一個模型真正的問題從矩陣p²(ij)
i表示當前狀態,j表示未來狀態。
我們想知道今天下雨的可能性是多少,從現在開始兩天後下雪的可能性是多少?假設在下雨,我們可能的狀態是什麼?
唯一的限制是不能連續兩天過得很好。從現在到那時的所有其他狀態都是可能的。所以明天可能會下雨,第二天可能會下雪,明天可能會很好,第二天可能會下雪,明天可能會下雪,第二天也可能會下雪。
以等式形式:
P²(Rain⁰Snow²) = P(RainRain)*P(RainSnow) + P(RainNormal)*P(NormalSnow) + P(RainSnow)*P(SnowSnow)
現在我意識到這看起來很痛苦,但是你可能已經意識到這本質上是向量和矩陣的數學。我們取第一行和第三行做點積。
視覺化使生活更輕鬆
讓我們假設我們希望預測給定6天時間週期的P,或者6個狀態轉變。我們還沒有定義一個初始狀態,我們只是希望在給定初始機率的情況下,求出過渡時期狀態的機率。這被稱為正則馬爾可夫鏈。如你所見,我們繼續使用向量數學透過點積來計算每個狀態的機率。
但我們如何確定初始起始狀態?它將如何影響我們的機率計算或如何建立馬爾可夫鏈:
我們可以將其定義為:u ^(n)= uP ^(n)
其中u是表示狀態初始分佈的向量,P是馬爾可夫鏈的轉換矩陣。
我們知道我們有三種狀態,我們把它帶入.u³=uP³
我們來解第三天的機率。我們製作一個1x3向量來表示初始分佈,並採用點積來求出給定隨機初始狀態的第三天每種狀態的可能性。
如何找到這麼多狀態的最佳解決方案以獲得理想的結果?這就是我想用強化學習來做的。
為了理解如何計算狀態和操作的最佳化,我們需要給它們賦值。為了理解價值,我們需要定義一個策略,為了定義一個策略,我們需要了解獎勵和回報。
獎勵和回報價值
強化agent尋求最大化未來獎勵的總和。他們希望預測獲得最大獎勵的行為。這稱為 return ,我們可以像這樣建模,r表示獎勵,R表示返回,下標t表示時間步長,在我們的例子中是狀態轉換。
現在,正如你所看到的,這個等式允許趨於無窮大,但處理許多問題是沒有意義的。我們希望獎勵的總和結束。我們稱任務結束劇集。想象一下大富翁棋盤遊戲,一開始給所有人分配相同的價值,然後給出一系列可能的狀態和行為,這一集最終以贏家結束。一個新內容可以從建立遊戲的新例項開始。
處理回報價值的更常用方法是稱為 未來累積 折扣 獎勵的方法
其中,獎勵前的折扣表示0到1之間的值。這種方法的好處是,現在對無限回報有了更好的模型,而且它更重視更直接的回報。這個模型現在關心的是更早的回報,而不是未來的回報。我們可以自己加權。我們選擇的折扣越小,越強調早期獎勵。正如您可能想象的那樣,1的折扣變成了我們原來的獎勵方程,0的折扣建立了一個只關心第一個獎勵的模型。這在某種意義上是有用的,因為agent將會在特定的時刻學習絕對最好的事情,但它將缺乏對自己未來的洞察力。
更多關於政策
π(s,a)是我們的政策函式。它描述了一種行為方式。它採用當前狀態和agent操作,並返回在該狀態下執行該操作的機率。有點像我們上面演示的那樣。
如果你考慮這意味著什麼,那麼在給定所有行為的情況下,所有狀態的集合必須等於1的機率。
我們的政策應描述如何在每個狀態採取行動。
以Josh Greaves建立的這個策略為例
正如你所看到的,當我們吃飽時,我們會得到獎勵,當我們飢餓就吃飯時,我們會得到獎勵,並且我們因為吃飽而不吃東西而獲得獎勵。如果飢餓而不吃飯是,我們會受到極大的懲罰,並且在吃飽時吃飯會受到懲罰。很容易看出,在這個非常簡單的例子中,最優策略是在飢餓時吃東西。
價值函式:
強化學習中的兩種價值函式是狀態價值函式V(s)和行為價值函式Q(s, a)。
狀態值函式解釋給定特定策略的狀態的值。當我們從初始狀態s開始並在我們的策略規則中行動時,它是對回報的計算。
操作值函式返回在遵循指定策略時在給定狀態下執行操作的值。
現在,考慮到在選擇操作時,環境是返回下一個狀態的,我們必須記住,如果我們的策略發生變化,值函式也會發生變化。我們希望看到這些函式有一個給定的返回值,然而,在到達某個狀態時可能會有大量的隨機性,並且轉換函式也會影響我們的狀態。我們不可能有100%的可能性。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2565049/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 「馬爾可夫決策過程」學習筆記馬爾可夫筆記
- 強化學習(二)馬爾科夫決策過程(MDP)強化學習馬爾科夫
- 強化學習入門第一講 馬爾科夫決策過程強化學習馬爾科夫
- 強化學習組隊學習task02——馬爾可夫決策過程及表格型方法強化學習馬爾可夫
- 漫談自學習人工智慧代理:馬爾可夫決策過程(第一部分)人工智慧馬爾可夫
- 圖˙譜˙馬爾可夫過程˙聚類結構----by林達華馬爾可夫聚類
- 隱馬爾可夫模型隱馬爾可夫模型
- HMM隱馬爾可夫模型HMM隱馬爾可夫模型
- 隱馬爾可夫模型 | 賽爾筆記隱馬爾可夫模型筆記
- 隱馬爾可夫模型詳解隱馬爾可夫模型
- 10_隱馬爾可夫模型隱馬爾可夫模型
- ML-隱馬爾可夫模型隱馬爾可夫模型
- 機器學習之隱馬爾可夫模型機器學習隱馬爾可夫模型
- 馬爾可夫鏈模型(轉載)馬爾可夫模型
- 隱馬爾可夫模型(HMM)詳解隱馬爾可夫模型HMM
- 隱馬爾可夫模型及應用隱馬爾可夫模型
- 2022-05-17-馬爾科夫鏈之傳統馬爾可夫鏈馬爾科夫馬爾可夫
- 隱馬爾可夫模型(HMM)中文分詞隱馬爾可夫模型HMM中文分詞
- 機器學習知識點(十)馬爾可夫鏈機器學習馬爾可夫
- 隱馬爾可夫模型(HMM)實現分詞隱馬爾可夫模型HMM分詞
- 使用馬爾可夫模型自動生成文章馬爾可夫模型
- 域結構進化的馬爾可夫模型馬爾可夫模型
- 在 Swift 中使用馬爾可夫鏈生成文字Swift馬爾可夫
- HMM隱馬爾可夫模型來龍去脈(二)HMM隱馬爾可夫模型
- NLP-隱馬爾可夫模型及使用例項隱馬爾可夫模型
- 最簡單的隨機過程——馬爾科夫鏈的Python分析隨機馬爾科夫Python
- MCMC(二)馬爾科夫鏈馬爾科夫
- 【HMM】隱馬爾科夫模型HMM馬爾科夫模型
- 隱馬爾可夫模型的Viterbi解碼演算法隱馬爾可夫模型Viterbi演算法
- 理解XGBoost機器學習模型的決策過程機器學習模型
- 用簡單易懂的例子解釋隱馬爾可夫模型隱馬爾可夫模型
- 馬爾可夫鏈你知道多少?Python視覺化解析MCMC馬爾可夫Python視覺化
- [譯] 用 Python 實現馬爾可夫鏈的初級教程Python馬爾可夫
- 維特比演算法和隱馬爾可夫模型的解碼維特比演算法隱馬爾可夫模型
- 一個馬爾科夫鏈例項馬爾科夫
- 使用 Python 生成基於馬爾可夫鏈的偽隨機文字Python馬爾可夫隨機
- 隱馬爾科夫模型HMM(一)HMM模型馬爾科夫模型HMM
- 隱馬爾科夫模型(HMM)分詞研究馬爾科夫模型HMM分詞