強化學習通俗理解系列一:馬爾科夫獎賞過程MRP

2021-02-20 機器學習算法工程師

本文寫作目的:儘量通俗講解強化學習知識,使讀者不會被各種概念嚇倒!本文是第一篇,但是最關鍵的一篇是第二篇馬爾科夫決策過程(Markov Decision Process,MDP),只有充分理解了馬爾科夫決策過程,才能遊刃有餘的學習後續知識,所以希望讀者能夠將MDP深入理解後再去學習後續內容。

由於本人水平有限,文章寫作順序幾乎是完全按照David Silver強化學習課程講解,但是會補充自己學習心得,所以文章會比較通俗易懂。由於本人接觸時間也不長,如有錯誤,歡迎指出,我及時修改!謝謝。

本文思路:

 1. 強化學習基本概念 2. 強化學習與其他機器學習算法區別和聯繫 3. 馬爾科夫性質 4. 馬爾科夫過程 5. 馬爾科夫獎賞過程 6. 總結

強化學習(Reinforcement Learning, RL)是一類算法,發展歷史也很久了,只不過由於深度學習的快速發展,也快速推動了RL的發展,使得深度強化學習成為研究熱點,特別是Alpha go、遊戲AI等的廣泛傳播使得人盡皆知。由於這類文章特別多,這裡就不再贅述。這裡只介紹RL常見的概念和其他機器學習算法區別。

(1)強化學習基本概念

強化學習,從字面理解包括強化和學習過程,強化代表著提升即不斷提升自己,而學習代表著不斷感知周圍環境,並接收環境給予的反饋,強化和學習是一個不斷循環迭代的過程,直到達到最優決策。以上圖結合動物園猴子學騎車為例:圖中的大腦即為agent,對應的就是猴子;action表示動作,對應的就是猴子往哪個方向走,設action是{左,右,上,下};地球代表環境,環境是可以感知的,並且執行某個或者某些action後會給出reward獎勵,對應的就是猴子騎車到達了指定位置,就可以獲得香蕉reward;observation表示可觀測序列,對應的就是訓猴子的人看到的一系列猴子做出的動作。 

在訓練猴子的過程中,一個完整的強化學習過程是:人督促猴子做出某個動作action,然後訓猴子的人觀察observation是否正確,在猴子執行了一系列動作到達目的地後給予香蕉reward,如果沒有到達就啥也不給。每次完成一次或者失敗一次後,重新恢復到原始位置,不斷循環重複,直到猴子學會了如何快速騎車到達目的地。 
           上述例子其實涉及到很大部分強化學習概念即:

agent 代理 
1.1 Executes action 可執行動作   
1.2 Receives observation 可觀測序列 
1.3 Receives scalar reward 可接收回報  是一個標量,簡單來說就是數值,後面會詳細說明其意義

environment環境 
2.1 Receives action 可接收動作 
2.2 Emits observation 發射觀測序列 
2.3 Emits scalar reward 發射標量回報 

其中t表示第t個步驟或者階段,對應的就是猴子騎車的每一個時刻。 寫了一大堆,其實上面內容都不重要,因為太過概念化、官方化了。大家只需要了解大意即可,實際上我覺得對於RL的上述概念其實很好理解,一看就懂,無需多言!

(2)強化學習與其他機器學習算法區別與聯繫

需要了解一些強化學習和其他機器學習算法的區別和聯繫。簡單來說強化學習特點是:

RL沒有supervisor,只有一個reward signal。它不需要提供標註的數據

RL問題中的feedback是延時的。對於上面的猴子騎車問題,猴子並不是每騎一個方向就有獎勵,只有當它騎了好多步並且到達目的地才有獎勵,是有延遲的

時序數據,不滿足iid獨立同分布性質

當前動作執行會影響後續接收數據

通過下面兩幅圖可以很容易看出區別: 

(3)強化學習目的


reward回報是強化學習中最重要的東西,它是一個標量反饋信號,表示agent在當前t時刻做的有多好。給一支香蕉和不給香蕉就可以認為是reward,假設定義為{1,0},而強化學習算法的目標或者說優化函數就是最大化累計回報(maximise cumulative reward),對於序列化決策問題,強化學習就是選擇一些action使得將來回報最大;對於訓練猴子問題,強化學習目的就是通過讓猴子知道只有騎車到達目的地才能得到最多香蕉;對於走迷宮問題,就是讓機器人學習出一條路徑,按照這條路徑走才能最快出迷宮。 

總之,不管啥強化學習算法,本質目的就是maximisation of expected cumulative reward,好比機器學習或者深度學習算法,本質目的就是優化某個損失函數而已,而最大化累計回報也可以認為是函數,但是不能認為是損失函數(損失函數是要值下降的)。

看到這裡,您才算真正進入了強化學習了,恭喜你! 

既然RL是一個時序決策問題,那麼就涉及到歷史決策信息,如果每一步決策都要考慮歷史前n多步的決策,可想而知,解決這類問題非常複雜,故而為了簡化問題或者說實際上很多情況都是可以這樣近似的而引入馬爾科夫鏈(Markov chain,MC)性質。實際上對於熟悉機器學習算法的人應該很清楚這部分,在貝葉斯網絡、隱馬爾科夫模型、文檔主題生成模型LDA、貝葉斯決策等算法中都有用到該性質。其定義為: 

如果說狀態是馬爾科夫的,當前僅當滿足上述式子。意思是處於狀態下,出現的概率只與狀態有關,而和之前的狀態無關,或者說給定當前狀態,將來的狀態與t時刻之前的狀態沒有關係。這樣的性質使得時序決策問題瞬間簡單很多。但是需要說明的是這種性質是有依據的,並不是說故意簡化,例如走迷宮問題,每一步做出的決策,都是基於站在當前位置看到的信息而言的,是非常符合實際的。

在上一節中,概率P實際上是狀態轉移矩陣(State Transition Matrix),表示從狀態轉移到狀態存在的概率,完整的狀態轉移矩陣表徵的是所有狀態的轉移概率,是非常重要的矩陣,可以看出它是滿足馬爾科夫性質的。 

對於一個馬爾科夫狀態S和下一個狀態 狀態轉移可以定義為:

從而狀態轉移矩陣可以寫成如下形式:

注意:每一行概率和肯定是1,因為從當前狀態轉移到其他所有狀態的概率和必然是1。 

上圖是本文分析的核心狀態轉移圖,也是從David Silver強化學習課程的PPT中而來,後面的每一個過程都會用這副圖來講解。對應上圖的狀態轉移矩陣是:

空白的地方可以填入-1或者0,表示不可轉移。

馬爾科夫過程Markov Process或者馬爾科夫鏈是一個無記憶隨機過程,是一些具有馬爾科夫性質的隨機狀態序列構成,可以用一個元組 <S,P>表示,其中S是有限數量的狀態集,P是狀態轉移概率矩陣。如下: 

上面的狀態轉移圖就是一個關於學生的馬爾科夫隨機過程(馬爾科夫鏈)。每一個圓圈代表一個state,圖中一共7個state,分別是{facebook,calss1,class2,class3,pass,pub,sleep},sleep是吸收狀態,可以保證馬爾科夫序列是一個有限序列,箭頭表示狀態轉移,箭頭上方的數據表示轉移概率值。例如當學生處於class2狀態,他有0.2的概率進入sleep狀態,有0.8的概率進入class3狀態,其他分析同理。

(1)馬爾科夫獎賞過程定義


馬爾科夫獎勵過程Markov Reward Process是在馬爾科夫過程的基礎上增加了獎勵R和衰減係數γ,其定義如下: 

R是獎勵函數,S狀態下的獎勵是在時刻t處,在當前狀態s下,下一個時刻t+1能獲得的獎勵期望。這個不好理解,David指出這僅是一個約定,一般我們都是說是離開該狀態能夠獲得的立即獎勵。 

上圖中的R就是獎勵,是自己定義的。例如當學生處在第一節課(Class1)時,他參加第2節課(Class2)後獲得的Reward是-1;同時進入到瀏覽facebook這個狀態中獲得的Reward也是-1,一般我們是說:他從class1狀態離開,進入到class2狀態所得到的離開立即獎勵是-2,如果大家統一說法,其實就非常好理解了。由於作者認為最終目的是通過考試,所以在pass狀態下離開獲得的立即獎勵是非常大的=10。


(2)Return

下面引出一個非常重要的公式,這個公式是後續推導的最原始形式。Return定義:收穫 為在一個馬爾科夫獎勵過程中上從t時刻開始往後所有的獎勵的有衰減的收益總和。其定義為: 


指的是衰減因子,體現的是未來的獎勵在當前時刻的價值比例,接近0,則表明趨向於「近視」性評估; 接近1則表明偏重考慮遠期的利益,很好理解,當=0時收穫的回報就是只考慮當前一步,有可能陷入誤區,當=1時收穫的回報考慮了未來,當前一步的回報並不是佔主要地位。和機器學習中常用的滑動平均模型其實原理是一樣,你對未來更信任一點,那麼就設置大一些,你對未來沒有信心,只關心目前狀況,那麼小一點即可。在David PPT裡面也有解釋為何要引入

1.數學表達的方便,這也是最重要的 
2.避免陷入無限循環 
3.遠期利益具有一定的不確定性 
4.在金融學上,立即的回報相對於延遲的匯報能夠獲得更多的利益 
5.符合人類更看重眼前利益的性格

需要注意的是並不只是一條路徑,從t時刻到終止狀態或者吸收時刻,可能會有多條路。 

依然以上面的學生狀態轉移圖為例:一個學生的樣本片段序列episodes是從class1開始,終止於sleep狀態,其觀測得到的出現的狀態轉移序列是(還有其他很多可能序列,但是可能沒有觀測到): 

所以實際上你想計算出精確的是不可能的,因為你無法窮盡所有序列,但是可以通過採樣來近似計算。具體計算看後面。

(3)狀態值函數 State Value function

上面說過是不好算的,因為路徑是非常多條的,而值函數的引入就是為了解決上述問題。值函數給出了某一狀態或某一行為的長期價值,其定義是:一個馬爾科夫獎勵過程中某一狀態的價值函數為從該狀態開始的馬爾可夫鏈收穫的期望。

值函數是一個數值,而且包括了多條路徑,這樣就可以解決上述難題了。期望的作用就是把從t時刻到終止狀態的馬爾科夫鏈的每一條對應的概率和Return收益進行求平均得到一個定值,方便後續優化。以學生狀態轉移圖為例:              


以第二條路徑進行分析:圖中的v1其實寫成更好一些

如果僅僅觀測到以上4條序列,那麼在狀態Class1處學生的值函數v(s)就是上述4個值除以4即可,

再次以下圖為例,闡述一下狀態值函數的計算方法: 

v(pass)=10
v(class3)=0.6(-2+0.9*10)+0.4*(-2+0.9*1.9)=4.1

可能你存在疑問:計算v(class3)直接使用了v(pub)的值,但是目前來說v(pub)是還沒有計算出來的。確實如果採用上面的計算方法確實是沒法計算的,但是就上面問題而言,實際上是可以通過線性代數直接求出來或者通過迭代化求解,在下一小結會講解。這裡先提前說明一個知識點:假設你已經算出來上面的各個狀態下的值函數,那麼對於強化學習而言,假設是找到一條最優路徑,起點狀態是class1,那麼很明顯最優狀態鏈是class1->class2->class3->pass->sleep,也就是說這條路徑的累計回報最大,也就是說值函數求出來了,其實強化學習問題就解決了,對應的就是後續的值迭代法、Q-learning等思路了。這些算法後面會細說,大家不用著急。 

(4)貝爾曼期望方程Bellman Equation

狀態值函數的引入解決了Return Gt路徑有很多條,不容易優化的問題,將其轉化為期望就變成固定標量了,很明顯的轉化。但是現在又出現另一個問題了,狀態值函數也不好算,因為在計算某個狀態時候需要使用到將來所有狀態的Gt,這明顯是不科學的。那麼憑藉大家學習算法思想,既然是狀態更新,既然是馬爾科夫的,很容易想到應用迭代思想求解,而貝爾曼期望方程就是一個迭代方程,目的是使得狀態值函數容易求解。 
       設離開某狀態的立即回報是,後繼狀態的折扣價值函數是,那麼有:

對於倒數第二步推導到最後一步的推導,可能很多人有疑問,我推導一下: 

第1步到第2步是直接將加法拆開;第2步到第3步是因為回報是離開該狀態的立即回報,不管進入哪個狀態,例如上述學生處於狀態calss2,根據狀態轉移函數,狀態可以轉移到sleep和clsaa3,只要離開了class2,就會得到立即回報

,所以實際上有兩個,所以期望就是;第3步到第4步,因為前面說過值函數就是一個標量,它的期望還是自身,所以還可以進一步求期望;第4步到第5步是合併加法而已。 

       好的,現在得出結論:針對馬爾科夫獎賞過程MRP的Bellman Equation方程是:

通過方程可以看出 v(s)由兩部分組成,一是該狀態的立即獎勵期望,立即獎勵期望等於立即獎勵;另一個是下一時刻狀態的價值期望,可以根據下一時刻狀態的概率分布乘以價值期望得到。 
       下面把期望E去掉,假設下一時刻狀態是,那麼有: 

上圖的空心圓圈表示狀態,說個題外話:我希望大家立即公式能夠把對應的狀態連接圖記住,類似上面那個圖,因為從這個圖很容易推導出公式,很容易理解記憶。去掉期望後,v(s)就等於離開該狀態的立即回報加上各條後繼狀態的轉移概率乘以對於的,再乘以衰減因子。上述公式非常重要。依然以學生為例: 

在狀態class3處的狀態值函數計算就非常簡單了。這裡還是需要說明:其實一開始計算時候0.8肯定是不存在的,實際計算可以採用迭代法,一開始任意初始化,後面學習更新即可,這就是所謂的值迭代法。當然對於這個問題,可以採用下面的方法直接求解。


(5)貝爾曼期望方程的矩陣形式Bellman Equation in Matrix Form 


將上述的不含期望的貝爾曼期望方程寫成矩陣形式,可以看出它是一個線性方程,那麼可以直接採用線性代數的方法求解,無需迭代。可能有同學有疑問:明明是才對啊?其實是這樣的,是後繼狀態的值函數,但是它肯定也是由v(1)~v(n)構成的呀,所以可以直接寫成上述矩陣形式。那麼求解後得到的解是:

對於剛才的學生問題是完全可以一步解決得到的,但是如果狀態非常多,例如10000,那麼這個逆矩陣的解法就不合適了,整個求解的複雜度是,所以上述解法只時候一些小規模,已知P和R的MRP問題,有很大局限。對於大規模的MRP問題,通常可以採用動態規劃Dynamic Programming,將複雜問題分治迭代求解;蒙特卡洛評估Monte-Carlo evaluation,採用採樣計算近似計算;時序差分學習Temporal-Difference。當然這些方法是後面要講的。 

下一篇文章是馬爾科夫決策過程,是強化學習的最核心內容,請注意查收!

本文講的內容其實可以簡單歸納為: 

對於某個馬爾科夫過程,如果已知模型,那麼就是馬爾科夫鏈;如果不知道模型,那麼就是隱馬爾科夫模型;如果引入了回報,那麼就轉化為馬爾科夫獎賞過程;如果再引入Action,就轉化為了馬爾科夫決策過程,對於MDP問題,如果已知model(P,R),那麼就是planning問題,如果不知道model(P,R),那麼就是強化學習問題了。強化學習的方向主要也就是該分支部分。如有疑問,歡迎加群交流678455658。

1. David Silvr強化學習課程,b站有視頻

機器學習算法全棧工程師

                            一個用心的公眾號

長按,識別,加關注

進群,學習,得幫助

你的關注,我們的熱度,

我們一定給你學習最大的幫助

相關焦點

  • 強化學習通俗理解系列二:馬爾科夫決策過程MDP
    前面系列一我把馬爾科夫獎賞過程的全部內容講完了,下面開始分析馬爾科夫決策過程,寫作思路依然是參考Divad Silver強化學習課程ppt,由於本人水平有限,如有問題,歡迎指正,我即時修改,謝謝!        本文思路: 1. 馬爾科夫決策過程的基本定義 2. 策略policy 3. 策略policy進階 4. 值函數 5.
  • 【強化學習入門】馬爾科夫決策過程
    機器學習算法(有監督,無監督,弱監督)中,馬爾科夫決策過程是弱監督中的一類叫增強學習。增加學習與傳統的有監督和無監督不同的地方是,這些方法都是一次性決定最終結果的,而無法刻畫一個決策過程,無法直接定義每一次決策的優劣,也就是說每一次的決策信息都是弱信息,所以某種程度上講,強化學習也屬於弱監督學習。從模型角度來看,也屬於馬爾科夫模型,其與隱馬爾科夫模型有非常強的可比性。
  • 馬爾科夫決策過程之Markov Reward Process(馬爾科夫獎勵過程)
    Processes(馬爾科夫過程)本文我們總結一下馬爾科夫決策過程之Markov Reward Process(馬爾科夫獎勵過程),value function等知識點。定義:一個馬爾科夫獎勵過程中某一狀態的價值函數為從該狀態開始的馬爾可夫鏈收穫的期望:
  • 深度強化學習(一)----深度學習介紹系列
    其實啊,拿鴿子來說,每當鴿子走到鋼絲盡頭或者中間某時刻(可以設計)的時候,訓練人員就會給它一些獎勵,這些獎勵的作用是讓它「知道」,鴿子啊,你當才的動作是對的(或者是不錯的,你要繼續保持啊)。如此一來,鴿子無形之中就受到了暗示,我只要那樣做,就有獎勵(食物)吃。何樂而不為呢。如果你看懂了這段話,那麼強化學習的通俗理解正是如此!
  • 馬爾科夫決策過程
    這個學期我們在卜老師的課堂上深入學習了動態規劃的思想,知道了許多看似複雜難解的問題都可以用動態規劃巧妙地找到答案。有意思的是,在數學學院一門運籌學的課程中,老師將動態規劃作為馬爾科夫決策過程(Markov Decision Process, MDP)的引子,為我們介紹了有限時間步的離散狀態的馬爾科夫決策過程。
  • 增強學習(一)——馬爾科夫決策過程(MDP)
    之前只是懂些CNN什麼的皮毛,對機器學習的整體認識都比較缺乏,後面我會從頭開始一點點打基礎,正好也用博客把自己的學習歷程記錄一下,如果有大牛看到博文中有錯誤,歡迎指正!       正好目前有個智能控制的小項目,我就先從增強學習開始。
  • 強化學習的最基本概念馬爾可夫決策過程簡介
    在本文中我將介紹強化學習的基本方面,即馬爾可夫決策過程。我們將從馬爾可夫過程開始,馬爾可夫獎勵過程,最後是馬爾可夫決策過程。目錄  馬爾可夫過程  馬爾可夫獎勵過程  馬爾可夫決策過程馬爾可夫過程  馬爾可夫決策過程(MDP)代表了一種強化學習的環境。我們假設環境是完全可見的。這意味著我們擁有了當前狀態下做出決定所需的所有信息。然而,在我們討論MDP是什麼之前,我們需要知道馬爾科夫性質的含義。
  • 強化學習總體介紹-初步搭建強化學習理論體系(一)
    David Silver系列的筆記.本講會對強化學習整體做一個介紹,也會介紹強化學習中常用的概念,幫助讀者理解,看完本文只需要建立起一個概念體系就行,不需要深究細節,細節在後面會展開說明.目錄關於強化學習強化學習在各種領域都有著它的應用,比如:(1)在計算機科學領域,強化學習是一種機器學習的算法(2)在數學領域,強化學習體現在運籌學的研究(3)在工程師領域,強化學習則體現在最優控制理論 等等.可以說機器學習有三個分支
  • 馬爾科夫決策過程及其性質-CMU深度強化學習第二講
    (Reinforcement Learning,RL)處理的問題模型:馬爾科夫決策過程(Markov Decision Processes)。強化學習可以視為開發利用已知策略(exploitation)和探索新策略(exploration)之間的權衡(Sutton 2017)。開發即採用已知的最優策略去得到最好的收益;探索是去嘗試未必最優的新策略。
  • 【教程】AlphaGo Zero 核心技術 - David Silver深度強化學習課程中文學習筆記
    其中既包括紮實的理論推導,也有很多有趣的小例子幫助理解,對於理解強化學習來說是一套非常好的教程。我在跟隨這套教程學習的過程中一邊聽講、一邊筆記,最後編寫代碼實踐,終於算是對強化學習的概念終於有了初步的認識,算是入門了吧。為了鞏固加深自己的理解,同時也能為後來的學習者提供一些較為系統的中文學習資料,我萌生了把整個公開課系統整理出來的想法。
  • 強化學習應用簡介
    強化學習一般定義為馬爾科夫決策過程(Markov Decision Process, MDP). 在每一個時間步驟,智能體接受到一個狀態 (state),根據策略 (policy) 選擇一個動作 (action),獲得獎賞 (reward),然後根據環境的動態模型轉移到下一個狀態。這裡面,策略表達智能體的行為,就是狀態到動作的映射。
  • 強化學習和馬爾可夫過程的基本概念
    機器學習一共有三個分支,有監督學習、無監督學習和強化學習。強化學習是系統從環境學習以使得獎勵最大的機器學習。強化學習和有監督學習的不同在於教師信號。強化學習的教師信號是動作的獎勵,有監督學習的教師信號是正確的動作。
  • 強化學習系列之四:模型無關的策略學習
    模型無關的策略學習,是在不知道馬爾科夫決策過程的情況下學習到最優策略。
  • 澳門大學講座教授陳俊龍:從深度強化學習到寬度強化學習:結構,算法...
    首先討論了強化學習的結構及理論,包括馬爾科夫決策過程、強化學習的數學表達式、策略的構建、估計及預測未來的回報。然後討論了如何用深度神經網絡學習來穩定學習過程及特徵提取、如何利用寬度學習結構跟強化學習結合。最後討論了深度、寬度強化學習帶來的機遇與挑戰。強化學習結構與理論陳教授用下圖簡單描述強化學習過程。
  • 揭秘深度強化學習
    受眾讀者主要是有機器學習或者神經網絡背景,卻還沒來得及深入鑽研強化學習技術的朋友。文章大綱如下:強化學習面臨的主要挑戰是什麼?我們將會在此討論credit assignment問題和探索-利用的取捨。如何用數學表達式表示強化學習過程?我們將定義馬爾科夫決策過程,並用它來解釋強化學習過程。該如何構建長期策略?
  • 策劃丨Excel計算馬爾科夫的簡單方法
    首先,我們還是得先看下馬爾科夫鏈的介紹:同馬爾可夫鏈,因安德烈·馬爾可夫(A.A.Markov,1856-1922)得名,是指數學中具有馬爾可夫性質的離散事件隨機過程。該過程中,在給定當前知識或信息的情況下,過去(即當前以前的歷史狀態)對於預測將來(即當前以後的未來狀態)是無關的。(一字不差複製粘貼。)
  • B站學強化學習?港中文周博磊變身up主,中文課程已上線
    其中,基礎課程共分為 8 個小節,包括課程概覽、馬爾科夫決策過程、無模型預測及控制、on-policy 和 off-policy 學習、值函數近似、策略優化基礎、策略優化現狀、基於模型的強化學習等內容。其中,每個小節都會有一兩節課的內容。
  • 港中文周博磊變身 up 主,強化學習中文課程已上線
    其中,基礎課程共分為 8 個小節,包括課程概覽、馬爾科夫決策過程、無模型預測及控制、on-policy 和 off-policy 學習、值函數近似、策略優化基礎、策略優化現狀、基於模型的強化學習等內容。其中,每個小節都會有一兩節課的內容。高階課程包括一些案例研究,如圍棋 AI AlphaGo、遊戲 AI AlphaStar、OpenAI Five 等,此外還包含強化學習的分布式構建、生成模型等。
  • 強化學習中的線性代數知識
    線性代數的基本原理如何用於深度強化學習?答案是解決了馬爾可夫決策過程時的迭代更新。強化學習(RL)是一系列用於迭代性學習任務的智能方法。由於計算機科學是一個計算領域,這種學習發生在狀態向量、動作等以及轉移矩陣上。狀態和向量可以採用不同的形式。
  • 領讀計劃NO.9 | 普林斯頓博士邀你聊聊在線強化學習中的樣本複雜性問題
    與【運籌OR帷幄】OR Talk系列的最大區別:小規模,開麥自由交流,以及深度探討!強化學習的經典理論側重於研究在價值函數的表示下學習最優策略的計算和樣本複雜度。本期#領讀計劃#,特邀普林斯頓大學博士生楊卓然,為大家帶來關於「在線強化學習中的樣本複雜性問題」的深度分享!對於片段馬爾科夫決策過程,作者提出了一種樂觀價值迭代的算法,它通過最小二乘迭代利用包含線性函數,核函數,超參數神經網絡在內的函數逼近工具,並且通過樂觀函數估計來權衡探索和利用。