前面總結了馬爾科夫決策過程之Markov Processes(馬爾科夫過程),見下文:馬爾科夫決策過程之Markov Processes(馬爾科夫過程)
馬爾科夫決策過程之Markov Reward Process(馬爾科夫獎勵過程),見下文:馬爾科夫決策過程之Markov Reward Process(馬爾科夫獎勵過程)
本文總結一下馬爾科夫決策過程之Bellman Equation(貝爾曼方程)網絡
首先咱們從value function的角度進行理解,value function能夠分爲兩部分:
見下面的推導公式:
咱們直接從第一行到最後一行是比較好理解的,由於從狀態s到狀態s+1,是不肯定,仍是以前的例子。機器學習
好比擲骰子游戲,當前點數是1的狀況下,下一個狀態有多是1,2,3,4,5,6的任意一種狀態可能,因此最外層會有一個指望符號。ide
若是咱們跟着一直推下來的話:有疑問的會在導出最後一行時,將G(t+1)變成了v(St+1)。其理由是收穫的指望等於收穫的指望的指望。參考葉強童鞋的理解。函數
則最後咱們獲得了針對MRP的Bellman方程:
經過方程能夠看出v(s)由兩部分組成,一是該狀態的即時獎勵指望,即時獎勵指望等於即時獎勵,由於根據即時獎勵的定義,它與下一個狀態無關。學習
這裏解釋一下爲何會有指望符合,是由於從狀態s的下一個狀態s+1可能有多個狀態,好比擲骰子,下一個狀態可能有1,2,3,4,5,6,從s到下一個狀態都是有必定機率,因此會有指望符合。lua
另外一個是下一時刻狀態的價值指望,能夠根據下一時刻狀態的機率分佈獲得其指望,好比在上面擲骰子例子中,從狀態1到下一個狀態1,2,3,4,5,6求指望的作法,咱們能夠直接用機率公式p(1->1),p(1->2),p(1->3),p(1->4),p(1->5),p(1->6) 而後乘以對應下一狀態的價值函數便可。3d
若是用s’表示s狀態下一時刻任一可能的狀態,那麼Bellman方程能夠寫成:
完整的slides以下:code
好,咱們在上面既然知道了經過Bellman Equation來迭代的計算每一個狀態的價值函數,下面咱們舉出一個例子來算一個狀態的value function幫助理解
經過上圖咱們分析一下4.3如何計算?見下圖便可:
可能還有一些童鞋會問,算該狀態的value function的時候,其它的狀態的value function是怎麼知道的呢?orm
好比算4.3的時候,咱們如何知道它後繼狀態的value funciton爲0.8,10。其實這些值一開始能夠任意初始化,後面能夠學習更新,就相似於神經網絡的權值參數,一開始任意初始化,後面經過loss反向更新同樣。blog
最後咱們能夠給出Bellman方程的矩陣形式和求解
結合矩陣的具體表達形式以下:
總的slides以下:
Bellman方程是一個線性方程組,理論上解能夠直接求解:
可是它的計算複雜度是0(n^3), 是狀態數量,由於矩陣的求逆過程爲0(n^3)。
因爲求解複雜度較高。所以直接求解僅適用於小規模的MRPs。
大規模MRP的求解一般須要使用迭代法。經常使用的迭代方法有:
參考:
David Silver深度強化學習課程 第2課 - 馬爾科夫決策過程葉強:
葉強 https://zhuanlan.zhihu.com/p/28084942
當RNN神經網絡趕上NER(命名實體識別):雙向LSTM,條件隨機場(CRF),層疊Stack LSTM, 字母嵌入
【深度學習實戰】pytorch中如何處理RNN輸入變長序列padding
【機器學習基本理論】詳解最大後驗機率估計(MAP)的理解
歡迎關注公衆號學習交流~