1. 程式人生 > >強化學習:Markov Decision Process (基於南大俞揚博士演講的修改和補充)

強化學習:Markov Decision Process (基於南大俞揚博士演講的修改和補充)

              馬爾科夫決策過程(Markov Decision Process)

一、強化學習基本數學模型——馬爾科夫過程(Markov Process)

大家可能聽到了很多詞,包括MDP,Q-Learning 、還有很多演算法的名字,我在報告裡就簡單介紹一下強化學習發展的過程,以及裡面會碰到什麼問題。

強化學習的歷史非常悠久,其中,早期的強化學習和它的一個數學模型MDP有很大關係,我先直觀介紹一下MDP。

  • 對MDP的直觀介紹

MDP(Markov Decision Process)裡面有三個詞,其中過程“Process”是代表時間變動的變數,馬爾科夫“Markov”說明這個變動是沒有記憶效應的,下一步往哪兒走只取決於當前狀態。馬爾科夫過程可以用圖(graph)來描述,這個圖上的每個點就是這一個狀態。這上面有很多邊(edge),表示它可以做的動作。對於每一個狀態來說,出邊的概率和為1。這是從它的狀態和轉移(transition)角度來看的。

南京大學俞揚博士萬字演講全文:強化學習前沿(上)

我們還可以從時間的角度來看。比如說現在在某個狀態,而到下一時刻,它會根據不同的轉移概率轉移到不同的狀態去。隨著時間變化而轉移到下一個時刻的狀態去,我們把它稱之為水平(horizon)視角。

南京大學俞揚博士萬字演講全文:強化學習前沿(上)

穩態分佈(Stationary Distribution)

  • 什麼是穩態分佈?

大部分馬爾科夫的過程都會有一個穩態分佈,意為當時間很長甚至無窮遠的時候,大部分馬爾科夫都會收斂到一個均衡的分佈上,不再隨時間變化。

比如說天氣,確定了出太陽、多雲和下雨的轉移概率p(s'|s)以後,可能到30天以後它出太陽、下雨還是多雲的概率和今天是不是出太陽已經沒有關係了,它會收斂到一個確定的概率分佈上面去。

  • 馬爾科夫回報過程(Markov Reward Process)?

馬爾科夫回報過程是當狀態出現轉移的時候,除了用剛才的轉移概率描述以外,還存在一個獎賞。

假設天氣一直是出太陽的狀態,這樣執行下去以後,我能拿到的總回報是多少。這個總的回報可以用一個符號V來表示。根據之前我們的描述,我們可以有不同的計算方式,比如說全部加起來或者打個折再相加。

南京大學俞揚博士萬字演講全文:強化學習前沿(上)

怎麼算長期回報?我們從初始狀態開始,按照0.2、0.7、0.1分別轉移到不同的狀態之後,按新的概率,把這個狀態以下總的回報值加起來,就得到這個狀態回報的值。相當於這一步展開以後再部加起來。這就變成一個遞迴式,也就是第0步變成第1步要計算的步驟,第1步又變成第2步要算的步驟。

南京大學俞揚博士萬字演講全文:強化學習前沿(上)

演算法裡有一個加速計算的方式,叫動態規劃( Dynamic Programming),是倒過來算的。(這個公式稱為Bellman Equation)

可以理解為,首先設定最後一層(第T層)的V值是0,倒過來算T-1層的V層是多少,再倒過來算T-2的......把這個式子重複T次。

這是走T步的,還有走無窮多步的。我們假設站在無窮大的最後一個點上,這個點照樣每個狀態上面的V都是0,然後算無窮大-1步是多少,無窮大-2步是多少,往後退無窮多步。但是演算法無法實現這個過程,實際上用演算法也不需要退無窮多步,因為存在折扣,即退一定步數以後,這個值就會固定不變。

二、馬爾科夫決策過程(Markov Decision Process)

  • 如何形成馬爾科夫決策過程?

對於馬爾科夫過程和馬爾科夫決策過程,我們只能觀察它執行下去的結果,而不能對它的執行過程加以干涉。加上一個決策以後就可以干涉(動作)了,這就是馬爾科夫決策過程,不同的動作決定了轉移的概率是不一樣的,所以現在我們可以在每個狀態上選擇不同的動作。  (紅藍色點代表著兩個動作)

南京大學俞揚博士萬字演講全文:強化學習前沿(上)

再看馬爾科夫決策過程的水平視角,由於每個狀態可能做不同的動作,所以轉移概率也不同。

南京大學俞揚博士萬字演講全文:強化學習前沿(上)

總的來說, 馬爾科夫決策過程裡有一個四元組,即狀態、動作、獎賞、轉移概率

這個四元組和強化學習裡面的四元組一樣的,所以早期的強化學習是完全以MDP為數學基礎的,對它來說也是要找一個策略,這個策略就是選擇不同動作會有不同的概率,或者是確定性策略(deterministic policy),在一個狀態就輸出一個動作。

  • 早期強化學習的策略和其特點

早期的策略是用表格表示的,表格上記錄了每個狀態下的動作,是一個非常簡單的模型。這個模型在強化學習裡面很常用。在監督學習中,早期也用過這種模型,但由於在真實應用裡面很少用得上,所以很快就被淘汰了。

它的特點是表達能力極強,不過前提是動作和狀態都是離散的。為什麼表達能力極強呢?比如說對於確定性策略,每個狀態下面做什麼動作可以直接修改,而不影響到其他狀態的動作(因為每個狀態都是根據自己可做動作的價值來選擇動作的),所以它的表達很靈活。早期強化學習的很多理論都是建立在這種表達上,它雖然不實用,但是理論性質很好。

  • 如何求解馬爾科夫決策過程上的最優策略?

我們首先希望在馬爾科夫決策過程上計算出給定策略的總回報。

這7和前面講的在馬爾科夫回報過程上計算總回報是一樣的,因為一旦給定策略以後,它的轉移分佈已經全部確定了。這就退化成一個馬爾科夫回報過程,即給定一個策略以後我們計算回報方式跟前面一樣。稍微不一樣的一點是,它的轉移是按照策略給出的動作的概率進行的。所以寫V的時候,V右上角寫了一個π,這個π就是表示我們當前固定的策略是什麼,給出了不同的策略以後,我們要算的V值的結果是不一樣的。這個V值表示的含義是,從s這個部分出發,走了很久以後看它的回報是多少。

Q值函式用來描述動作價值。Q值函式比V函式多了一個動作輸入,它要估計的是在狀態s做了動作a以後,再跟著這個策略π一直做下去,它的回報是多少。有了Q值函,看到狀態s後,把每個a帶進去,看哪個a出來的Q值大,就用哪個a。所以這樣就可以在當前狀態直接決定用哪個動作了。

Q和V是有直接的對應關係的,如果按照策略來選擇動作,平均的Q值就是V值(因為狀態下的每個動作都是一樣的概率被選擇到)。

三、計算最優策略

  • 最優策略是否存在?

我們考慮最優策略的時候會想,是否會有一個策略在所有狀態上表現都是最好的,還是隻能找到在絕大部分時候表現都最好、但在個別狀態上面值要差一點的策略。實際上前者是存在的,這個結論依賴於一個假設,即策略需要用表格來表示。因為用表格來表示的話,它的表達能力足夠強。

南京大學俞揚博士萬字演講全文:強化學習前沿(上)

最優策略對應的V值就是最優V值,對應的Q值就是最優Q值,怎麼樣求取最優的策略呢?由於這個V和Q之間是有一定關係的,所以我這裡先直接給出兩個等式,一個是通過Q值來算Q值的,一個是通過V值來算V值的。只要把最優Q和V的關係代到一般Q和V的關係中就直接可得。

南京大學俞揚博士萬字演講全文:強化學習前沿(上)

  • 最優策略的兩種演算法

有這兩個等式以後,就可以來求取最優策略。

南京大學俞揚博士萬字演講全文:強化學習前沿(上)

  • 第一種方法:首先評估給定一個策略以後,這個策略有多好,然後找一個方向來提高這個策略。

這個演算法的意思是,先計算你給出的這個策略的V值,然後用這種等式來更新這個策略,更新完以後又去計算這個V值是多少,又來更新這個策略,這樣就可以保證這個策略最後收斂到最優策略。當然前提是你使用的是這個表格狀態表示,有窮多個的狀態和有窮多個的動作,這個方式對應的等式就是剛才的第一個等式。這個演算法可能效率比較低,因為它需要不斷的評估更新後的策略。這一方法稱為策略迭代。

  • 第二種方法:直接通過V值來更新V值,這一方法稱為值迭代 (Value Iteration)。

南京大學俞揚博士萬字演講全文:強化學習前沿(上)

根據這兩個等式就可以有兩種計算最優策略的方法。在這裡紀念一下提出者Bellman,實際上動態規劃就是他的發明。

  • 最優策略的複雜度是多少?

另外,我們看到這樣一個求解最優策略的過程,它的複雜度是多少呢?它的複雜度是狀態數量乘以動作數量 O(|S|*|A|),這已經是在一個很簡單的MDP上(確定性 MDP),這個複雜度從狀態數量和動作數量上看,好像是一個線性的複雜度,複雜度並不高。前面我們說了強化學習求解最優策略是NP難的問題,那麼這個差別在什麼地方呢?差別就在於,通常在度量一個問題的複雜度時,並不是根據它有多少狀態來度量的,而是用狀態空間的維度來度量。因此Bellman發明了一個詞叫“維度災難”。如果我們用維度來度量的話,這個複雜度就是一個非常高的複雜度,比如說對於圍棋來說,它的維度是19×19,但是它的有效狀態數量超過了10的170次方。

這裡簡單的介紹了一下在MDP、馬爾科夫決策上,怎麼去求得一個策略。但是MDP並不是強化學習,因為它的四元組都已給出,特別是獎賞和轉移。你任給它一個狀態和動作,都可以算出獎賞值;轉移也是,輸入一個狀態、動作以後,它會告訴你轉移出來的狀態是什麼。

本文為俞揚博士《強化學習前沿》的上篇,下篇敬請關注雷鋒網的後續內容。