從本期起,我們將重磅推出強化學習科普系列文章。我們將要系統性地介紹強化學習(Reinforcement Learning,簡稱RL)的內容。歡迎大家持續關注。

最近幾年,強化學習吸引的關注度逐漸上升。在2018年各大機器學習

與人工智慧的學術期刊與會議中,強化學習已經取代了計算機視覺與NLP等傳統領域,成為接受論文數量最多的領域。此外,在2016年3月的「人機大戰」中,運用深度學習與強化學習技術的AlphaGo以4:1擊敗了圍棋冠軍李世石,更是極大地增加了大眾對於強化學習與深度學習技術的關注度。我們可以簡單地說,在深度學習領域,強化學習是目前(2018年左右)受到關注最多、最為炙手可熱的領域。而本系列的文章則旨在系統性地介紹強化學習的理論、方法與應用,希望能夠使得讀者對於強化學習這個領域有初步的瞭解。

由於目前強化學習的研究是和深度學習領域緊密的結合的,所以希望讀者在閱讀本系列文章之前能夠對深度學習有一定的瞭解,並且具有微積分、線性代數、概率論的基礎。在涉及到有關這些基礎知識的部分,本系列文章就不再詳細贅述。

強化學習可以說是圍繞著序貫決策(Sequential Decision),或者更具體地說,是圍繞著馬爾科夫決策過程(Markov Decision Process,簡稱為MDP)而展開的一系列研究。所以,我們在作為系列文章開頭的第一篇中,必須先介紹什麼是MDP。

馬爾科夫過程

在概率論中,隨機過程(random process)是一門非常重要的學科。隨機過程,簡而言之就是按照時間順序排列好的一系列隨機變數Xt。在現實生活中,小到一個人的心率變化、一臺機器的功率週期,大到一個國家經濟的迭起與興衰、海平面高度的潮起潮落,都可以被作為一個隨機過程來研究。隨機過程與我們的生活是息息相關的。

當然,在數學中我們更加關心的是具有某些特殊數學性質的隨機過程。例如,我們定義「正態白雜訊」為獨立同分布的正態隨機變數Xt。大自然中毫無信息的雜訊、或是在時間序列測量中的誤差都可以被定義為「正態白雜訊」。當然,「正態白雜訊」中這個隨機過程就相當於將一些獨立同分布的隨機變數串在一起,並沒有體現出隨機過程的特性,故而沒有什麼值得研究的地方。隨機過程中真正令人感興趣的是Xt在時間維度上的因果關係(例如Xt的取值與Xt+k之間的關係),以及這種關係下呈現出的一些行為。

馬爾科夫過程(簡稱為馬氏過程)是最經典的、也是用處最為廣泛的一類隨機過程。關於馬爾科夫性的嚴格定義是需要一定現代概率論的基礎的,涉及到有關於事件域、流、條件數學期望等等的定義,這裡我們不詳細贅述。我們只是介紹一下其直觀的含義:對於一個馬氏過程,Xt+1的分佈只和Xt 的取值有關,和Xt前面發生過的事情無關。你可以想像,初始值是X1是一個隨機變數,服從某個初始分佈。而X1取值決定了X2的分佈,X2的取值又決定了X3的分佈,以此類推,Xn?1的取值決定了Xn的分佈……一個馬氏過程就在這種一環扣一環的因果關係中形成了。

由於我們這裡沒有用嚴謹的數學語言加以定義,所以會有歧義——我們說X3隻是和X2有關,和X1無關,這句話是具有歧義的。它並不是真的意味著X3取什麼值和X1沒有一點點關係——明明X1的取值決定了X2,而X2的取值又決定了X3,怎麼可能X3的取值和X1沒有關係呢?

我們要強調一下剛才我們所說的「Xt+1隻和Xt有關」這句話,指的是在Xt+1之前的所有信息(X1,X2,…,Xt)全部已知的情況下,Xt+1隻和Xt有關。換句話說,如果我們的手頭同時具有X1和X2的信息,讓你求X3的分佈,那麼我們事實上只用到X2就夠了——這是因為X1對於X3的全部影響,都體現在X2之中;但是,如果我們手頭沒有X2的信息,只有X1的信息,那麼這個X1的信息對於我們求解X3無疑也是很重要的,而絕不是「沒有關係的」——因為我們可以利用X1估計出X2的分佈P(X2),再乘以我們所知道的X2與X3的關係(即X3關於X2的條件分佈P(X_3|X_2))得到X2,X3的聯合分佈P(X2,X3),繼而得到X3的邊緣分佈P(X3),這就等於是利用了X1來求得了X3的信息。

將上述的情況加以推廣,我們可以得到一個更接近馬氏性嚴格數學定義的說法(但仍然不是嚴格的定義):如果我們已知某些條件,去求解某些式子關於這些條件的條件期望,則事實上我們只需要那個距離所求事件最接近的條件就夠了。例如,我們要求E(some thing after t=15|X1,X2,X5,X9)時(其中這個「some thing after t=15」可能是X16的平方,也可能是X20+X28的和的三次方,等等),無論要求的「something」是什麼,我們在條件中的X1,X2,X5,X9中只需要用到X9就夠了。因為X1,X2,X5對於我們求的「something」的全部影響都包含在了X9之中。所以,我們有E(some thing after t=15|X1,X2,X5,X9)=E(some thing after t=15|X9)。另一方面,如果我們有了更加接近t=15時刻的信息,比如我們知道了X12,那麼X9的數據自然也用不著了,因為X9對於「something」的影響又全部被X12給包含在內了。所以又有E(some thing after t=15|X1,X2,X5,X9,X12)=E(some thing after t=15|X12)。在嚴格的數學定義中,會用「事件域流」來定義我們上面所說的「信息」。在這裡我們就不加贅述了。

所以,我們一方面要記住關於「馬氏性」的定義,不要誤認為X3真的與X1沒有關係,而另一方面,我們又可以簡單而直接地想像馬氏過程的產生:從X1產生X2,從X2產生X3,以此類推,形成漫長的隨機過程……X3產生的時候,只用到了X2的信息。到底「有關」還是「無關」,這是讀者特別需要理清思路的地方。

馬氏過程是隨機過程中研究得最多,也是理論最為完備的一種。所以在現實生活中,人們傾向於用馬氏過程來建模描述很多的事物。比如,如果我們用馬氏過程來描述人生,X1代表你小學的狀態,X2代表你初中的狀態,X3代表你高中的狀態……一環緊扣一環,就可以將一個人人生的軌跡給建模成一個隨機過程。

有的人可能會有疑問了:對於一個人生而言,我以後會經歷什麼、達到怎樣的高度,怎麼可能只和現在的我有關、和我小時候發生的事情沒有關係?很多童年經歷難道不是會影響終生麼?換個例子,考慮一場賽車比賽有兩輛車A和C。如果只看目前則A在C的前面。但是如果看過去的一段時間,A一直在慢悠悠地開,而C則一直在加速狂飆。考慮到這一點,我們有理由認為C接下來也會超過A。但是僅僅考慮當前的狀態,A仍然在C的前面。這種情況下,只考慮當前的狀態豈不是沒有辦法做出正確的判斷?

這裡便涉及到一個問題,那就是你定義的「狀態」究竟是什麼。在賽車的問題中,如果將Xt僅僅定義為賽車處在賽道的位置,那麼這無疑是不能用馬氏過程來描述的。但是,如果我們將Xt定義為賽車的位置、賽車的速度、以及加速度等信息。那麼,過去賽車超車的這一段信息便體現在了當前的速度與加速度當中。未來有可能發生的事情,完全可以根據當前的位置、速度與加速度來進行判斷;同理,如果我們將一個人的「狀態」給定義得比較完備,例如,定義一個人現在的狀態既包括他的地位、學歷,也包括他的性格、見識。那麼,他小時候所經歷的事情會對他的性格與見識產生影響,繼而影響未來。只要將「狀態」定義得比較完整,那麼一個人人生的歷程便可以近似地看成一個馬氏過程。

從某種意義上來說,一個隨機過程能不能用一個馬氏過程來建模,在於你能不能很好地定義狀態以及狀態之間的轉移關係。對於賽車的問題,由於位置、速度、加速度的含義很清晰,並且它們之間有關係清楚,所以我們不難將其定義為馬氏過程;而對於人生的問題,我們很難定義性格、學識這些狀態,也無法判斷童年經歷會如何影響這種狀態。我們只能將這些「說不清的東西」統統都作為隨機變數加入模型中,這樣會導致模型的效果變差。

總的來說,馬氏過程是一個可以用來近似許多隨機過程的模型。「馬氏性」成立與否更多地取決於我們對於「狀態」的定義。當我們能夠清晰地定義狀態,以及狀態之間的轉移方程的時候,這種建模就比較貼近實際。而一旦將一個過程建模為馬氏過程,就意味著我們在數學上有更多的手段去研究它。正確理解「馬氏性」的含義與其中蘊含的邏輯將對我們理解強化學習演算法起基礎性的作用。

馬爾科夫決策過程(MDP)

介紹了馬氏過程之後,我們要來介紹馬爾科夫決策過程(MDP)。事實上,馬氏過程是概率論中的重要內容,而在工程中,人們更加關心的是MDP。它纔是強化學習研究的重點。下面我們要來講述兩者的區別,以及為什麼我們更加關心後者。

在上一節講述馬氏過程的時候,我們用人生進行了舉例——如果你在一個平庸高中,那麼你考上重點大學的概率就會比較小,而考上普通大學的概率比較大;如果你在一個985念書,那麼找到好的工作的概率就比較大……以上的事實作為一個社會的普遍性現象是可以得到大量的數據支持的。但是,如果將上述規律套入具體一個人的人生中,你不免會覺得這樣的規律太過於「死氣沉沉」了、太沒有體現出人的「主觀能動性」了——在A就讀於普通的中學的前提下,如果A很努力學習,則A考取重點大學的概率就會相對變高;如果A沉迷於打王者榮耀、不花心思到學習上,那麼A考取重點大學的概率就會變得很低很低。這說明,站在A的角度,考取重點大學的概率並不只是「客觀的規律」決定的,也有A的「主觀能動性」的成分。如果一切都被「客觀規律」決定了,那麼人努力拚搏又有什麼意義呢?

因此,人們在馬氏過程的基礎上進行了修改,定義了MDP。MDP中,不但有變化的狀態(state)st,同時也有行為(action)at。這個action便是代表了我們「主觀能動性」的部分。除了狀態與行為之外,還有代表「獎勵」的rt,代表著在t時刻我們採取的行動帶來的回報。在馬氏過程中,我們的st+1由st決定,轉移概率是P(st+1|st)。而在MDP中,st+1由st與at共同決定,轉移概率是P(st+1|s,at)。

打個比方,如果A當前的狀態是在普通中學就讀。A採取的行動是努力學習,則A下一個狀態進入重點大學的概率會高達0.5;而如果A採取的行動是沉迷於玩《王者榮耀》,則A進入重點大學的概率就只有0.2;而另一方面,如果A本身就在重點高中就讀,並且又努力學習,則A進入重點大學的概率就會更高,高達0.9;而A如果在重點中學中不務正業,那麼其考上重點大學的概率可能就只有0.5,和普通中學中努力學習的學生一樣。要注意的是,我們定義的這個過程依然是具有馬爾科夫性的,即在當前狀態與行動已知的情況下,下一個狀態完全是由當前狀態與當前行動決定的。這也就是說,已知A中學的狀態時,他在小學時候的成績與小學時候的努力程度是與他考上什麼大學沒有關係的,因為這些都已經包含在他中學的狀態裡面了。

獎勵rt是MDP另外一個十分重要的元素,它代表著我們採取行動時候獲得的「好處」,它也是由st與at決定的,可以記為P(rt|st,at)或者r(st,at)。例如,我們將rt定義為人生各個階段獲得的「幸福」。如果我們在中學採取「努力學習」的行動,可能因為玩的時間更少,而只有較低的「幸福」。但另一方面,由於這幫助我們考上了更好的大學,這個更好的狀態有助於我們未來獲得更多的「幸福」。求解一個MDP的目的就是讓我們找到最佳的策略,去最大化我們在整個過程中得到的「獎勵總和」。所以,我們要在「先苦後甜」與「及時行樂」中進行取捨,以獲得最幸福美滿的人生。

一般而言,我們要最大化的「獎勵總和」會被定義為Σriγi。其中,γ被稱為「衰減因子」。如果將其取值為1,則意味著我們對於每個時刻獲得的獎勵都同樣看中;但我們現實中常常將其取值為0.9,這意味著我們不但重視獎勵的大小,也重視它的時效性。引入這個衰減因子有兩個方面的目的,一方面是因為現實中計算效用時候都會考慮時效性,越早就越有價值。這一點在金融、經濟等很多領域都有所體現,我們不多贅述;而另一方面則是為了方便我們考慮一些無窮長的MDP。當MDP無窮長的時候,如果「獎勵總和」中沒有衰減因子,則期望常常取值為無窮大,相互之間無法比較。

一般而言,我們會把(st,at)→(rt,st+1)的機制想像為「外部世界」中的「客觀規律」,所以我們又將其稱作「環境」,即Environment。而我們將根據當前st選擇最佳at的方法想像成我們的「主觀選擇」。我們將具有「主觀能動性」智能體稱作「Agent」。在上面的例子中,Environment就代表這個社會的運行方式,而Agent則是社會中的個人。個人要按照社會的規則去努力,即Agent要努力找出最佳的策略,使得自己能在Environment中贏取最多的reward。從數學上來說,Environment指的就是P(st+1|st,at)與P(rt|st,at)這兩個部分,是外在、客觀、不可改變的。而agent指的是P(at|st),是我們要努力優化的;在這種定義下,我們又可以將上面提到的「鏈式結構」的MDP給理解為以下的「閉環結構」。(「閉環結構」是在工程上十分重要的一種結構)。

講到這裡,我們來對比一下馬氏過程與MDP的差別:馬氏過程是一個具有「客觀規律」,並因之而運動的系統,它並不受到外部輸入的影響,也沒有「主觀能動性」發揮的空間。在這種前提下,人們更加關心它的一些數學性質,例如其是否具有周期性、常返性、遍歷性等等。這些性質都是相對「宏觀的」、並且是「數學意義的」,而缺乏「工程意義的」;而與之相反,MDP則是一個不斷接受外部輸入,受到主觀意志控制的系統。並且,人們研究它也有著清晰的目的:那就是要輸入最佳的行動,使得從中獲得的「獎勵總和」最大。與馬氏過程相比,MDP是相對「微觀的」、「具體的」,且具有「工程意義的」。

例如,假設有大量的微粒處於不同的狀態,在狀態與狀態之間有著一定的轉移概率,馬氏過程中的「強遍歷定理」研究的是這些微粒是否會收斂於一個穩定的分佈、以多快的速度收斂等等。其研究的對象都是具有「宏觀」且「數學」的特性的。只有考慮大量微粒的空間平均、或者單個微粒漫長的時間平均,這些規律才會呈現出來。

而在工程中,我們更加關心如何控制一輛汽車安全且高速地行駛、如何操控一個工業機器人高效地參與流水線生產、如何讓AI下圍棋擊敗人類,這些「微觀」而具體的問題都可以被轉化為MDP來求解。正是由於這類問題的實用性,以求解MDP最佳策略為核心目標的強化學習才會在今天得到如此多的關注。

回到本節開頭的那個比方:如果我們的目的是要研究當前社會的結構化不公,寫一篇社科方面的論文。那我們可以將社會作為客體,去尋找有關的數據,去研究普通中學的升學率低、「寒門難處貴子」、「階級固化」這些客觀現象,計算馬氏鏈的不變分佈。這裡就不必考慮「主觀能動性」之類的因素,而是要研究社會的客觀現實;而如果我們面對的是自己鮮活的人生,我們想享有精彩的人生,那麼我們就應該認真求解這個MDP,做出人生的規劃,並為之努力拚搏。無論身處在哪個階級、具有何種初始狀態s0,都應該如此。因為只有努力,纔有可能改變這一切。

MDP的分類

在上一節中,我們大致介紹了MDP的定義。其包含三個要素——狀態st,行動at以及獎勵rt。我們還可以進一步根據一些指標去將MDP區分為幾個不同的類別。

狀態s與行動a的連續性

我們可以根據狀態s與行動a是連續的還是離散的來對MDP進行分類。

例如我們很熟悉的棋類遊戲,就是典型的s離散,a也離散的MDP。在設計一個下棋的AI的時候,我們一般會把當前棋盤上擺棋的局勢作為s,而將下一步可行的走法作為a,將喫子、或者達到一些特定的目的作為r。例如,我們可以將象棋中喫子按照喫子的重要性得分記為r(比如兵1分、過河兵2分、馬4分、炮4.5分、車9分等)。例如在下面的局勢中,我們面對當前的局勢s,我們認為採取a為喫車是最有利的,於是我們採取這個a,進入下一個狀態s』,並且獲得了+5的r。當然,我們解MDP是要優化最終的「獎勵總和」,所以我們在這一步不一定是採取讓r最大的走法。我們可能會採取r小一些,但是有利於我們進入更好局勢的走法,以在未來獲得更多r。這就是所謂的「棄子爭先」。

還有一些典型的遊戲機類的遊戲,比如《黃金礦工》,就是一個s連續,但是a是離散的遊戲。我們將遊戲中的局勢看作是s,由於鉤子是在不斷擺動的,而擺動角度是連續的,所以s自然也是連續的。但是另一方面,可以操作的按鈕卻只有兩個。故而《黃金礦工》算是一個s很多,a卻很少的遊戲。

無人車駕駛的問題則可以理解為一個s和a都是連續的問題。例如我們將感測器捕捉到的當前路況設為s,它顯然是連續的;而我們將操作方向盤、踩油門、剎車等等設為a。由於方向盤轉動的角度是連續的,加速減速也是連續的,故而a也顯然是一個連續的變數。

在工程式控制制、工業機器人等等領域,有大量問題都可以轉化為s連續、a離散或者是s連續a離散的MDP問題。這些與我們的生活是息息相關的。與之相比,s和a都離散的情況則出現得比較少,出現在規則簡單的遊戲(例如棋牌類)或者簡單的控制系統(例如電梯)之中。還有一種情況——s離散而a連續的情況則相對而言又更少了。

要注意的是,s與a是連續還是離散會讓我們的問題有很大的不同:

s是連續還是離散,會導致環境的定義不同。當s離散,轉移概率P(st+1|st,at)是離散概率分佈。如果一共有n個不同的狀態,則P(st+1|st,at)是一個n維的向量;而當s是連續的時候,P(st+1|st,at)則應該是一個連續的概率分佈。另一方面,a是連續還是離散,則會導致我們要訓練的agent形式不同。如果a是離散的,比如一共有n類,則我們要輸出的往往是一個n維向量,代表這n個動作相對的「價值」,或者是「它們是最佳動作的概率」。而當a是連續的時候,我們有時候會直接輸出一個a的值,有時也會輸出一個a的分佈。這些都對應於不同的演算法,我們在後面都會詳細講述。

最後,我們還想強調的是,一般而言,連續的情況都可以轉化為離散的情況(例如我們可以將加速從0到100的連續值給離散化為21個檔位,每個相隔5)。很多時候,這是數值計算中的必要手段;而對於某些離散的問題,例如下棋,卻沒有辦法將其轉化為連續問題。所以一般而言,a離散的問題(注意這裡說的是a離散,而非s離散)是比較基礎、比較重要的問題,也是RL研究中的重點。

時間t的連續性

在之前,我們一直假定t是離散的,s1,s2,…,st以及a1,a2,…,at都是一個序列。對於部分的MDP,比如下棋來說,由於遊戲本身是回合制的,所以時間t天然就是離散的,無法改為連續。但是對於我們舉例的《黃金礦工》遊戲,或者是無人駕駛的問題來說,t到底是離散的還是連續的就取決於人為的設計。從問題本身來說,時間應該是連續的。但是在現實中為了求解方便,所以我們有時候也會按照等時間間隔的方式將時間離散化。由於人採取兩個行動的間距不可能低於某個閾值(比如0.1秒),所以這種離散化是合理的。為了求解方便,我們某些情況下會將原本連續的t給離散化。

連續時間的MDP當然也是存在的。我們可以假定s(t)與a(t)是一個關於t的連續的函數,而不是序列,就可以設計出連續時間的MDP了。事實上,工程學中有一門非常重要的學科,最優控制(optimal control),其研究的重點就是時間連續的控制問題,而這門學科也被稱為是強化學習的前身之一。

時間t的連續與離散會導致問題有很大的不同。這種差異比起狀態s的連續/離散以及行動a的連續/離散有著更大的差別:

首先,當時間是連續的時候,就不存在狀態s與行動a是離散還是連續的問題了——因為它們都是關於t的函數,所以必須都是連續的。

其次,s不能像是在時間離散情況一樣「跳動」,故不能用P(st+1|st,at)這樣的方式去定義環境。s必須是在連續流動的時間內連續地變動,它在一個時間微元dt中也只能變動一個狀態的微元ds。所以,我們定義連續時間MDP的環境為s(t)˙=f(s(t),a(t))的形式,其中s(t)˙表示狀態s隨著時間變化的導數,它受到狀態s與動作a的雙重影響,這和t離散的情況是一樣的。並且,由於s(t+dt)=s(t)+f(s(t),a(t))dt,所以每個時間微元中的變化都只和上個時刻s與a的狀態有關,這也符合我們馬氏性的假定。

另外,計算總的r也不再採用求和的形式,而是改為採用積分的形式。也就是說,我們計算的「獎勵綜合」應該是一個∫tft0r(s(t),a(t))dt的形式。

下面,我們就列出最優控制的核心問題,它本質上就是一個時間連續的MDP。不過這裡我們將採用最優控制裡面習慣的符號與說法:用x(而不是s)來記狀態;用a來記轉移方程的函數;把「行動」改稱為「控制」,記為u;用g代表「懲罰函數」,代表整個中間過程的懲罰;h也是「懲罰函數」,衡量對於最終狀態的懲罰;而J為g的積分與h的和,是我們要極小化的量。這和上面說的MDP中要極大化的「獎勵」r是相反的。在這種定義下,我們可以得到最優控制中的基本問題:

環境:x(t)˙=a(x(t),u(t),t);目標:極小化J=h(x(tf))+∫tftog(x(t),a(t),t)

最優控制的目的是要求解最佳的控制u(t),以使得J最小。這和我們MDP中求解最佳動作序列at最大化「獎勵總和」本質上是一樣的(加上負號可以實現二者的轉換)。所以,最優控制與我們前面說的MDP本質上相同,只是對時間進行了連續化而已。

最優控制研究的問題和強化學習類似,並且被視為強化學習的前身,其很多思路也被移植到強化學習中開發了新的方法。我們會花一定篇幅來講述最優控制中的一些理論。

時齊性

在馬氏鏈或者MDP中,還有一個值得強調的性質是時齊性,它表示著我們的環境與獎勵是否會隨著時間而發生變化。

對於time-invariant的MDP來說,它的環境是不會隨著時間而變化的,這也就是說當t=1時候,s與a導致的下一個s具有某個概率分佈。而當t=84時候,同樣的s與同樣的a導致的下一個s,也會有同樣的概率分佈;而對於time-varing的MDP而言,環境則是會隨時間變化的。這意味著在不同的時間節點,哪怕同樣的s同樣的a,帶來的後果也可能會有很大的不同。

例如,對於s與a離散的MDP而言,如果是time-varing的,則我們在s狀態下採取a動作,進入下一個s』狀態的概率可以記成是Pas,s′,t,而獲得的r可以記成是r(s,a,t);而如果是time-invariant的,則我們在s狀態下採取a動作,進入下一個s』狀態的概率是Pas,s′,而獲得的r則為r(s,a)。也就是說,獎勵與轉移概率都只取決於s、a與s』,而與t無關;又例如在上面說的最優控制問題中,如果問題是time-varing的,則環境是x(t)˙=a(x(t),u(t),t),而目標是要極小化J=h(x(tf))+∫tftog(x(t),a(t),t);而如果是time-invariant的,則可以將環境與目標函數中的t變數給省略。即環境變成x(t)˙=a(x(t),u(t)),而目標則變為要極小化J=h(x(tf))+∫tftog(x(t),a(t))。這樣,問題就得到了一定的簡化。

Time-varing與time-invariant事實上衡量的是「時間」的性質——是一種「相對的」度量標尺,例如「一年」、「兩年」,還是「絕對的」歷史度量,例如「公元2018年」。例如我們考慮的MDP是在玩一個遊戲,整個過程中遊戲的規則是不變的。因為時間只是記錄在遊戲中流逝掉的時間,沒有「絕對意義」;而如果我們考慮的MDP是一個人生的過程,那麼你早兩年採取「買房」這個行動與現在才採取「買房」這個行動,顯然是有著巨大不同的。因為2016年和2018年的房價完全是兩個概念了。

常見的MDP是怎麼樣的呢?是否是time-invariant的呢?一般來說,我們研究的都是遊戲或者工程系統,時間都是「相對的」,所以轉移概率都是time-invariant的。而獎勵函數則是在time-invariant的基礎上乘以了一個衰減因子γt因此變成time-varing了。也就是說,r(s,a,t)=r(s,a)γt。由於其形式比較簡單,所以我們一般不認為r是一個time-varing的函數,而認為它是一個time-invariant的函數,並且需要考慮效率衰減。在強化學習中,我們遇到的絕大多數問題都是這種形式的。

總結

作為強化學習系列文章的開頭,我們用較長的篇幅講解了MDP。首先,我們介紹了馬氏性以及馬氏過程,並重點強調了馬氏性蘊含的邏輯。這種性質對於我們研究MDP的演算法十分重要;接下來,我們又系統地介紹了MDP的定義。在這個過程中,想必讀者已經部分地理解了為什麼它與我們的生產、生活、辦公等各個領域都如此地息息相關;而在最後,我們則講述了MDP的分類,按照s、a與t的離散與連續,以及環境的時齊性,可以組合出很多種不同的MDP。現實中不同的問題適合用不同的MDP進行描述,而這些不同的MDP的演算法又會有很大的不同。在下面的文章中,我們將圍繞解決這些不同的MDP逐漸展開強化學習的理論、模型與演算法。

數據酷客專題區有更豐富、更全面、更完整的文章分享,歡迎閱覽。

cookdata.cn/topic/


推薦閱讀:
相關文章