日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【整理】强化学习与MDP

發(fā)布時(shí)間:2023/12/10 编程问答 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【整理】强化学习与MDP 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

【入門,來(lái)自wiki】

強(qiáng)化學(xué)習(xí)是機(jī)器學(xué)習(xí)中的一個(gè)領(lǐng)域,強(qiáng)調(diào)如何基于環(huán)境而行動(dòng),以取得最大化的預(yù)期利益。其靈感來(lái)源于心理學(xué)中的行為主義理論,即有機(jī)體如何在環(huán)境給予的獎(jiǎng)勵(lì)或懲罰的刺激下,逐步形成對(duì)刺激的預(yù)期,產(chǎn)生能獲得最大利益的習(xí)慣性行為。這個(gè)方法具有普適性,因此在其他許多領(lǐng)域都有研究,例如博弈論、控制論、運(yùn)籌學(xué)、信息論、模擬優(yōu)化方法、多主體系統(tǒng)學(xué)習(xí)、群體智能、統(tǒng)計(jì)學(xué)以及遺傳算法。在運(yùn)籌學(xué)和控制理論研究的語(yǔ)境下,強(qiáng)化學(xué)習(xí)被稱作“近似動(dòng)態(tài)規(guī)劃”(approximate dynamic programming,ADP)。在最優(yōu)控制理論中也有研究這個(gè)問(wèn)題,雖然大部分的研究是關(guān)于最優(yōu)解的存在和特性,并非是學(xué)習(xí)或者近似方面。在經(jīng)濟(jì)學(xué)和博弈論中,強(qiáng)化學(xué)習(xí)被用來(lái)解釋在有限理性的條件下如何出現(xiàn)平衡。

在機(jī)器學(xué)習(xí)問(wèn)題中,環(huán)境通常被規(guī)范為馬可夫決策過(guò)程(MDP),所以許多強(qiáng)化學(xué)習(xí)算法在這種情況下使用動(dòng)態(tài)規(guī)劃技巧。傳統(tǒng)的技術(shù)和強(qiáng)化學(xué)習(xí)算法的主要區(qū)別是,后者不需要關(guān)于MDP的知識(shí),而且針對(duì)無(wú)法找到確切方法的大規(guī)模MDP。

強(qiáng)化學(xué)習(xí)和標(biāo)準(zhǔn)的監(jiān)督式學(xué)習(xí)之間的區(qū)別在于,它并不需要出現(xiàn)正確的輸入/輸出對(duì),也不需要精確校正次優(yōu)化的行為。強(qiáng)化學(xué)習(xí)更加專注于在線規(guī)劃,需要在探索(在未知的領(lǐng)域)和遵從(現(xiàn)有知識(shí))之間找到平衡。強(qiáng)化學(xué)習(xí)中的“探索-遵從”的交換,在多臂老-虎-機(jī)問(wèn)題和有限MDP中研究得最多。

?

基本的強(qiáng)化學(xué)習(xí)模型包括:

  • 環(huán)境狀態(tài)的集合;
  • 動(dòng)作的集合;
  • 在狀態(tài)之間轉(zhuǎn)換的規(guī)則;
  • 規(guī)定轉(zhuǎn)換后“即時(shí)獎(jiǎng)勵(lì)”的規(guī)則;
  • 描述主體能夠觀察到什么的規(guī)則。
  • 規(guī)則通常是隨機(jī)的。主體通常可以觀察即時(shí)獎(jiǎng)勵(lì)和最后一次轉(zhuǎn)換。在許多模型中,主體被假設(shè)為可以觀察現(xiàn)有的環(huán)境狀態(tài),這種情況稱為“完全可觀測(cè)”(full observability),反之則稱為“部分可觀測(cè)”(partial observability)。有時(shí),主體被允許的動(dòng)作是有限的(例如,你使用的錢不能多于你所擁有的)

    強(qiáng)化學(xué)習(xí)的主體與環(huán)境基于離散的時(shí)間步長(zhǎng)相作用。在每一個(gè)時(shí)間,主體接收到一個(gè)觀測(cè),通常其中包含獎(jiǎng)勵(lì)。然后,它從允許的集合中選擇一個(gè)動(dòng)作,然后送出到環(huán)境中去。環(huán)境則變化到一個(gè)新的狀態(tài),然后決定了和這個(gè)變化相關(guān)聯(lián)的獎(jiǎng)勵(lì)。強(qiáng)化學(xué)習(xí)主體的目標(biāo),是得到盡可能多的獎(jiǎng)勵(lì)。主體選擇的動(dòng)作是其歷史的函數(shù),它也可以選擇隨機(jī)的動(dòng)作。

    將這個(gè)主體的表現(xiàn)和自始自終以最優(yōu)方式行動(dòng)的主體相比較,它們之間的行動(dòng)差異產(chǎn)生了“悔過(guò)”的概念。如果要接近最優(yōu)的方案來(lái)行動(dòng),主體必須根據(jù)它的長(zhǎng)時(shí)間行動(dòng)序列進(jìn)行推理:例如,要最大化我的未來(lái)收入,我最好現(xiàn)在去上學(xué),雖然這樣行動(dòng)的即時(shí)貨幣獎(jiǎng)勵(lì)為負(fù)值。

    因此,強(qiáng)化學(xué)習(xí)對(duì)于包含長(zhǎng)期反饋的問(wèn)題比短期反饋的表現(xiàn)更好。它在許多問(wèn)題上得到應(yīng)用,包括機(jī)器人控制、電梯調(diào)度、電信通訊、雙陸棋和西洋跳棋。[1]

    強(qiáng)化學(xué)習(xí)的強(qiáng)大能來(lái)源于兩個(gè)方面:使用樣本來(lái)優(yōu)化行為,使用函數(shù)近似來(lái)描述復(fù)雜的環(huán)境。它們使得強(qiáng)化學(xué)習(xí)可以使用在以下的復(fù)雜環(huán)境中:

    • 模型的環(huán)境未知,且解析解不存在;
    • 僅僅給出環(huán)境的模擬模型(模擬優(yōu)化方法的問(wèn)題)[2]
    • 從環(huán)境中獲取信息的唯一辦法是和它互動(dòng)。前兩個(gè)問(wèn)題可以被考慮為規(guī)劃問(wèn)題,而最后一個(gè)問(wèn)題可以被認(rèn)為是genuine learning問(wèn)題。使用強(qiáng)化學(xué)習(xí)的方法,這兩種規(guī)劃問(wèn)題都可以被轉(zhuǎn)化為機(jī)器學(xué)習(xí)問(wèn)題。

    ?

    【以下轉(zhuǎn)自Kintoki博客】

    增強(qiáng)學(xué)習(xí)(一) ----- 基本概念

    機(jī)器學(xué)習(xí)算法大致可以分為三種:

    ? ? 1. 監(jiān)督學(xué)習(xí)(如回歸,分類)

    ? ? 2.?非監(jiān)督學(xué)習(xí)(如聚類,降維)

    ? ? 3. 增強(qiáng)學(xué)習(xí)

    什么是增強(qiáng)學(xué)習(xí)呢?

    增強(qiáng)學(xué)習(xí)(reinforcementlearning, RL)又叫做強(qiáng)化學(xué)習(xí),是近年來(lái)機(jī)器學(xué)習(xí)和智能控制領(lǐng)域的主要方法之一。

    定義:?Reinforcement learning is learning what to do ----how to map situations to actions?---- so as to maximize a numerical reward signal.[1] ?

    也就是說(shuō)增強(qiáng)學(xué)習(xí)關(guān)注的是智能體如何在環(huán)境中采取一系列行為,從而獲得最大的累積回報(bào)。

    通過(guò)增強(qiáng)學(xué)習(xí),一個(gè)智能體應(yīng)該知道在什么狀態(tài)下應(yīng)該采取什么行為。RL是從環(huán)境狀態(tài)到動(dòng)作的映射的學(xué)習(xí),我們把這個(gè)映射稱為策略。

    那么增強(qiáng)學(xué)習(xí)具體解決哪些問(wèn)題呢,我們來(lái)舉一些例子:

    例1.?flappy bird?是現(xiàn)在很流行的一款小游戲,不了解的同學(xué)可以點(diǎn)鏈接進(jìn)去玩一會(huì)兒。現(xiàn)在我們讓小鳥自行進(jìn)行游戲,但是我們卻沒(méi)有小鳥的動(dòng)力學(xué)模型,也不打算了解它的動(dòng)力學(xué)。要怎么做呢? 這時(shí)就可以給它設(shè)計(jì)一個(gè)增強(qiáng)學(xué)習(xí)算法,然后讓小鳥不斷的進(jìn)行游戲,如果小鳥撞到柱子了,那就獲得-1的回報(bào),否則獲得0回報(bào)。通過(guò)這樣的若干次訓(xùn)練,我們最終可以得到一只飛行技能高超的小鳥,它知道在什么情況下采取什么動(dòng)作來(lái)躲避柱子。

    例2.?假設(shè)我們要構(gòu)建一個(gè)下國(guó)際象棋的機(jī)器,這種情況不能使用監(jiān)督學(xué)習(xí),首先,我們本身不是優(yōu)秀的棋手,而請(qǐng)象棋老師來(lái)遍歷每個(gè)狀態(tài)下的最佳棋步則代價(jià)過(guò)于昂貴。其次,每個(gè)棋步好壞判斷不是孤立的,要依賴于對(duì)手的選擇和局勢(shì)的變化。是一系列的棋步組成的策略決定了是否能贏得比賽。下棋過(guò)程的唯一的反饋是在最后贏得或是輸?shù)羝寰謺r(shí)才產(chǎn)生的。這種情況我們可以采用增強(qiáng)學(xué)習(xí)算法,通過(guò)不斷的探索和試錯(cuò)學(xué)習(xí),增強(qiáng)學(xué)習(xí)可以獲得某種下棋的策略,并在每個(gè)狀態(tài)下都選擇最有可能獲勝的棋步。目前這種算法已經(jīng)在棋類游戲中得到了廣泛應(yīng)用。

    可以看到,增強(qiáng)學(xué)習(xí)和監(jiān)督學(xué)習(xí)的區(qū)別主要有以下兩點(diǎn):

    1. ?增強(qiáng)學(xué)習(xí)是試錯(cuò)學(xué)習(xí)(Trail-and-error),由于沒(méi)有直接的指導(dǎo)信息,智能體要以不斷與環(huán)境進(jìn)行交互,通過(guò)試錯(cuò)的方式來(lái)獲得最佳策略。

    2.??延遲回報(bào),增強(qiáng)學(xué)習(xí)的指導(dǎo)信息很少,而且往往是在事后(最后一個(gè)狀態(tài))才給出的,這就導(dǎo)致了一個(gè)問(wèn)題,就是獲得正回報(bào)或者負(fù)回報(bào)以后,如何將回報(bào)分配給前面的狀態(tài)。

    ?

    增強(qiáng)學(xué)習(xí)是機(jī)器學(xué)習(xí)中一個(gè)非常活躍且有趣的領(lǐng)域,相比其他學(xué)習(xí)方法,增強(qiáng)學(xué)習(xí)更接近生物學(xué)習(xí)的本質(zhì),因此有望獲得更高的智能,這一點(diǎn)在棋類游戲中已經(jīng)得到體現(xiàn)。Tesauro(1995)描述的TD-Gammon程序,使用增強(qiáng)學(xué)習(xí)成為了世界級(jí)的西洋雙陸棋選手。這個(gè)程序經(jīng)過(guò)150萬(wàn)個(gè)自生成的對(duì)弈訓(xùn)練后,已經(jīng)近似達(dá)到了人類最佳選手的水平,并在和人類頂級(jí)高手的較量中取得40 盤僅輸1盤的好成績(jī)。

    下篇我們正式開始學(xué)習(xí)增強(qiáng)學(xué)習(xí),首先介紹一下馬爾可夫決策過(guò)程。

    ?

    參考資料:

    [1] R.Sutton?et al.?Reinforcement learning: An introduction , 1998

    [2] T.Mitchell. 《機(jī)器學(xué)習(xí)》,2003

    [3] Andrew Ng.CS229:?Machine learning? Lecture notes

    增強(qiáng)學(xué)習(xí)(二)----- 馬爾可夫決策過(guò)程MDP

    1. 馬爾可夫模型的幾類子模型

      大家應(yīng)該還記得馬爾科夫鏈(Markov Chain),了解機(jī)器學(xué)習(xí)的也都知道隱馬爾可夫模型(Hidden Markov Model,HMM)。它們具有的一個(gè)共同性質(zhì)就是馬爾可夫性(無(wú)后效性),也就是指系統(tǒng)的下個(gè)狀態(tài)只與當(dāng)前狀態(tài)信息有關(guān),而與更早之前的狀態(tài)無(wú)關(guān)。

      馬爾可夫決策過(guò)程(Markov Decision Process,?MDP)也具有馬爾可夫性,與上面不同的是MDP考慮了動(dòng)作,即系統(tǒng)下個(gè)狀態(tài)不僅和當(dāng)前的狀態(tài)有關(guān),也和當(dāng)前采取的動(dòng)作有關(guān)。還是舉下棋的例子,當(dāng)我們?cè)谀硞€(gè)局面(狀態(tài)s)走了一步(動(dòng)作a),這時(shí)對(duì)手的選擇(導(dǎo)致下個(gè)狀態(tài)s’)我們是不能確定的,但是他的選擇只和s和a有關(guān),而不用考慮更早之前的狀態(tài)和動(dòng)作,即s’是根據(jù)s和a隨機(jī)生成的。

      我們用一個(gè)二維表格表示一下,各種馬爾可夫子模型的關(guān)系就很清楚了:

    ?不考慮動(dòng)作考慮動(dòng)作
    狀態(tài)完全可見馬爾科夫鏈(MC)馬爾可夫決策過(guò)程(MDP)
    狀態(tài)不完全可見隱馬爾可夫模型(HMM)不完全可觀察馬爾可夫決策過(guò)程(POMDP)

    2. 馬爾可夫決策過(guò)程

    一個(gè)馬爾可夫決策過(guò)程由一個(gè)四元組構(gòu)成M = (S, A, Psa, R )?[注1]

    • S: 表示狀態(tài)集(states),有s∈S,si表示第i步的狀態(tài)。
    • A:表示一組動(dòng)作(actions),有a∈A,ai表示第i步的動(dòng)作。
    • Psa: 表示狀態(tài)轉(zhuǎn)移概率。Psa?表示的是在當(dāng)前s ∈ S狀態(tài)下,經(jīng)過(guò)a ∈ A作用后,會(huì)轉(zhuǎn)移到的其他狀態(tài)的概率分布情況。比如,在狀態(tài)s下執(zhí)行動(dòng)作a,轉(zhuǎn)移到s'的概率可以表示為p(s'|s,a),也可以說(shuō)s‘的分布服從Psa
    • R: S×A€? ,R是回報(bào)函數(shù)(reward function)。有些回報(bào)函數(shù)狀態(tài)S的函數(shù),可以簡(jiǎn)化為R: S?€??。如果一組(s,a)轉(zhuǎn)移到了下個(gè)狀態(tài)s',那么回報(bào)函數(shù)可記為r(s'|s, a)。如果(s,a)對(duì)應(yīng)的下個(gè)狀態(tài)s'是唯一的,那么回報(bào)函數(shù)也可以記為r(s,a)。(這里分為確定性和不確定。確定性的回報(bào),即當(dāng)在s下執(zhí)行a時(shí),下個(gè)狀態(tài)s’是確定的;而不確定性的回報(bào)是指當(dāng)在s下執(zhí)行a時(shí),下個(gè)狀態(tài)s’是不確定的,即帶概率的,這時(shí)我們需要用確定的期望值來(lái)代替不確定,即 E(r(s'|s, a)) = Σs1[p(s1|s,a) * r(s1|s,a)]?)

      MDP 的動(dòng)態(tài)過(guò)程如下:某個(gè)agent(智能體,也翻譯成代理、學(xué)習(xí)者)的初始狀態(tài)為s0,然后從 A 中挑選一個(gè)動(dòng)作a0執(zhí)行,執(zhí)行后,agent 按Psa概率隨機(jī)轉(zhuǎn)移到了下一個(gè)s1狀態(tài),s1∈ Ps0a0。然后再執(zhí)行一個(gè)動(dòng)作a1,就轉(zhuǎn)移到了s2,接下來(lái)再執(zhí)行a2…,我們可以用下面的圖表示狀態(tài)轉(zhuǎn)移的過(guò)程。

    如果回報(bào)r是根據(jù)狀態(tài)s和動(dòng)作a得到的,則MDP還可以表示成下圖:

    3. 值函數(shù)(value function)

      上篇我們提到增強(qiáng)學(xué)習(xí)學(xué)到的是一個(gè)從環(huán)境狀態(tài)到動(dòng)作的映射(即行為策略),記為策略π: S→A。而增強(qiáng)學(xué)習(xí)往往又具有延遲回報(bào)的特點(diǎn): 如果在第n步輸?shù)袅似?#xff0c;那么只有狀態(tài)sn和動(dòng)作an獲得了立即回報(bào)r(sn,an)=-1,前面的所有狀態(tài)立即回報(bào)均為0。所以對(duì)于之前的任意狀態(tài)s和動(dòng)作a,立即回報(bào)函數(shù)r(s,a)無(wú)法說(shuō)明策略的好壞。因而需要定義值函數(shù)(value function,又叫效用函數(shù))來(lái)表明當(dāng)前狀態(tài)下策略π的長(zhǎng)期影響,即描述agent以原策略π進(jìn)行前瞻性搜索后的長(zhǎng)期回報(bào)

      用Vπ(s)表示策略π下,狀態(tài)s的值函數(shù)。ri?表示未來(lái)第i步的立即回報(bào),常見的值函數(shù)有以下三種:

    a)

    b)

    c)

    其中:

    a)是采用策略π的情況下未來(lái)有限h步的期望立即回報(bào)總和;

    b)是采用策略π的情況下期望的平均回報(bào);

    c)是值函數(shù)最常見的形式,式中γ∈[0,1]稱為折合因子,表明了未來(lái)的回報(bào)相對(duì)于當(dāng)前回報(bào)的重要程度。特別的,γ=0時(shí),相當(dāng)于只考慮立即不考慮長(zhǎng)期回報(bào),γ=1時(shí),將長(zhǎng)期回報(bào)和立即回報(bào)看得同等重要。接下來(lái)我們只討論第三種形式,

    ?

    現(xiàn)在將值函數(shù)的第三種形式展開,其中ri表示未來(lái)第i步回報(bào),s'表示下一步狀態(tài),則有:

    給定策略π和初始狀態(tài)s,則動(dòng)作a=π(s),下個(gè)時(shí)刻將以概率p(s'|s,a)轉(zhuǎn)向下個(gè)狀態(tài)s',那么上式的期望可以拆開,可以重寫為:

    上面提到的值函數(shù)稱為狀態(tài)值函數(shù)(state value function),需要注意的是,在Vπ(s)中,π和初始狀態(tài)s是我們給定的,而初始動(dòng)作a是由策略π和狀態(tài)s決定的,即a=π(s)。

    定義動(dòng)作值函數(shù)(action value functionQ函數(shù))如下:

    給定當(dāng)前狀態(tài)s和當(dāng)前動(dòng)作a,在未來(lái)遵循策略π,那么系統(tǒng)將以概率p(s'|s,a)轉(zhuǎn)向下個(gè)狀態(tài)s',上式可以重寫為:

    在Qπ(s,a)中,不僅策略π和初始狀態(tài)s是我們給定的,當(dāng)前的動(dòng)作a也是我們給定的,這是Qπ(s,a)和Vπ(a)的主要區(qū)別。

    知道值函數(shù)的概念后,一個(gè)MDP的最優(yōu)策略可以由下式表示:

    即我們尋找的是在任意初始條件s下,能夠最大化值函數(shù)的策略π*。

    4. 值函數(shù)與Q函數(shù)計(jì)算的例子

      上面的概念可能描述得不夠清晰,接下來(lái)我們實(shí)際計(jì)算一下,如圖所示是一個(gè)格子世界,我們假設(shè)agent從左下角的start點(diǎn)出發(fā),右上角為目標(biāo)位置,稱為吸收狀態(tài)(Absorbing state),對(duì)于進(jìn)入吸收態(tài)的動(dòng)作,我們給予立即回報(bào)100,對(duì)其他動(dòng)作則給予0回報(bào),折合因子γ的值我們選擇0.9。

      為了方便描述,記第i行,第j列的狀態(tài)為sij, 在每個(gè)狀態(tài),有四種上下左右四種可選的動(dòng)作,分別記為au,ad,al,ar。(up,down,left,right首字母),并認(rèn)為狀態(tài)按動(dòng)作a選擇的方向轉(zhuǎn)移的概率為1。

    1.由于狀態(tài)轉(zhuǎn)移概率是1,每組(s,a)對(duì)應(yīng)了唯一的s'。回報(bào)函數(shù)r(s'|s,a)可以簡(jiǎn)記為r(s,a)

    如下所示,每個(gè)格子代表一個(gè)狀態(tài)s,箭頭則代表動(dòng)作a,旁邊的數(shù)字代表立即回報(bào),可以看到只有進(jìn)入目標(biāo)位置的動(dòng)作獲得了回報(bào)100,其他動(dòng)作都獲得了0回報(bào)。 即r(s12,ar) = r(s23,au) =100。

    ?

    2. 一個(gè)策略π如圖所示:

    ?

    3. 值函數(shù)Vπ(s)如下所示

    根據(jù)Vπ的表達(dá)式,立即回報(bào),和策略π,有

    Vπ(s12) =?r(s12,ar) = r(s13|s12,ar)?= 100

    ?Vπ(s11)= r(s11,ar)+γ*Vπ(s12) = 0+0.9*100 = 90

    Vπ(s23) = r(s23,au) = 100

    ?Vπ(s22)= r(s22,ar)+γ*Vπ(s23) = 90

    ?Vπ(s21)= r(s21,ar)+γ*Vπ(s22) = 81

    4. Q(s,a)值如下所示

    有了策略π和立即回報(bào)函數(shù)r(s,a), Qπ(s,a)如何得到的呢?

    對(duì)s11計(jì)算Q函數(shù)(用到了上面Vπ的結(jié)果)如下:

    Qπ(s11,ar)=r(s11,ar)+ γ *Vπ(s12)? =0+0.9*100 = 90

    Qπ(s11,ad)=r(s11,ad)+ γ *Vπ(s21)? = 72

    ?

    至此我們了解了馬爾可夫決策過(guò)程的基本概念,知道了增強(qiáng)學(xué)習(xí)的目標(biāo)(獲得任意初始條件下,使Vπ值最大的策略π*),下一篇開始介紹求解最優(yōu)策略的方法。

    PS:發(fā)現(xiàn)寫東西還是蠻辛苦的,希望對(duì)大家有幫助。另外自己也比較菜,沒(méi)寫對(duì)的地方歡迎指出~~

    ?

    [注]采用折合因子作為值函數(shù)的MDP也可以定義為五元組M=(S, A, P, γ, R)。也有的書上把值函數(shù)作為一個(gè)因子定義五元組。還有定義為三元組的,不過(guò)MDP的基本組成元素是不變的。

    參考資料:

    [1] R.Sutton et al. Reinforcement learning: An introduction , 1998

    [2] T.Mitchell. 《機(jī)器學(xué)習(xí)》,2003

    [3] 金卓軍,逆向增強(qiáng)學(xué)習(xí)和示教學(xué)習(xí)算法研究及其在智能機(jī)器人中的應(yīng)用[D],2011

    [4] Oliver Sigaud et al,Markov Decision Process in Artificial Intelligence[M], 2010

    ?

    增強(qiáng)學(xué)習(xí)(三)----- MDP的動(dòng)態(tài)規(guī)劃解法

      上一篇我們已經(jīng)說(shuō)到了,增強(qiáng)學(xué)習(xí)的目的就是求解馬爾可夫決策過(guò)程(MDP)的最優(yōu)策略,使其在任意初始狀態(tài)下,都能獲得最大的Vπ值。(本文不考慮非馬爾可夫環(huán)境和不完全可觀測(cè)馬爾可夫決策過(guò)程(POMDP)中的增強(qiáng)學(xué)習(xí))。

      那么如何求解最優(yōu)策略呢?基本的解法有三種:

      動(dòng)態(tài)規(guī)劃法(dynamic programming methods)

      蒙特卡羅方法(Monte Carlo methods)

      時(shí)間差分法(temporal difference)。

      動(dòng)態(tài)規(guī)劃法是其中最基本的算法,也是理解后續(xù)算法的基礎(chǔ),因此本文先介紹動(dòng)態(tài)規(guī)劃法求解MDP。本文假設(shè)擁有MDP模型M=(S, A, Psa, R)的完整知識(shí)。

    1. 貝爾曼方程(Bellman Equation)

      上一篇我們得到了Vπ和Qπ的表達(dá)式,并且寫成了如下的形式

      在動(dòng)態(tài)規(guī)劃中,上面兩個(gè)式子稱為貝爾曼方程,它表明了當(dāng)前狀態(tài)的值函數(shù)與下個(gè)狀態(tài)的值函數(shù)的關(guān)系。

      優(yōu)化目標(biāo)π*可以表示為:

      分別記最優(yōu)策略π*對(duì)應(yīng)的狀態(tài)值函數(shù)和行為值函數(shù)為V*(s)和Q*(s, a),由它們的定義容易知道,V*(s)和Q*(s, a)存在如下關(guān)系:

      狀態(tài)值函數(shù)和行為值函數(shù)分別滿足如下貝爾曼最優(yōu)性方程(Bellman optimality equation):

      有了貝爾曼方程和貝爾曼最優(yōu)性方程后,我們就可以用動(dòng)態(tài)規(guī)劃來(lái)求解MDP了。

    2. 策略估計(jì)(Policy Evaluation)

      首先,對(duì)于任意的策略π,我們?nèi)绾斡?jì)算其狀態(tài)值函數(shù)Vπ(s)?這個(gè)問(wèn)題被稱作策略估計(jì),

      前面講到對(duì)于確定性策略,值函數(shù)

      現(xiàn)在擴(kuò)展到更一般的情況,如果在某策略π下,π(s)對(duì)應(yīng)的動(dòng)作a有多種可能,每種可能記為π(a|s),則狀態(tài)值函數(shù)定義如下:

      一般采用迭代的方法更新狀態(tài)值函數(shù),首先將所有Vπ(s)的初值賦為0(其他狀態(tài)也可以賦為任意值,不過(guò)吸收態(tài)必須賦0值),然后采用如下式子更新所有狀態(tài)s的值函數(shù)(第k+1次迭代):

      對(duì)于Vπ(s),有兩種更新方法,

      第一種:將第k次迭代的各狀態(tài)值函數(shù)[Vk(s1),Vk(s2),Vk(s3)..]保存在一個(gè)數(shù)組中,第k+1次的Vπ(s)采用第k次的Vπ(s')來(lái)計(jì)算,并將結(jié)果保存在第二個(gè)數(shù)組中。

      第二種:即僅用一個(gè)數(shù)組保存各狀態(tài)值函數(shù),每當(dāng)?shù)玫揭粋€(gè)新值,就將舊的值覆蓋,形如[Vk+1(s1),Vk+1(s2),Vk(s3)..],第k+1次迭代的Vπ(s)可能用到第k+1次迭代得到的Vπ(s')。

      通常情況下,我們采用第二種方法更新數(shù)據(jù),因?yàn)樗皶r(shí)利用了新值,能更快的收斂。整個(gè)策略估計(jì)算法如下圖所示:

    3. 策略改進(jìn)(Policy Improvement)

      上一節(jié)中進(jìn)行策略估計(jì)的目的,是為了尋找更好的策略,這個(gè)過(guò)程叫做策略改進(jìn)(Policy Improvement)。

      假設(shè)我們有一個(gè)策略π,并且確定了它的所有狀態(tài)的值函數(shù)Vπ(s)。對(duì)于某狀態(tài)s,有動(dòng)作a0=π(s)。 那么如果我們?cè)跔顟B(tài)s下不采用動(dòng)作a0,而采用其他動(dòng)作a≠π(s)是否會(huì)更好呢?要判斷好壞就需要我們計(jì)算行為值函數(shù)Qπ(s,a),公式我們前面已經(jīng)說(shuō)過(guò):

      評(píng)判標(biāo)準(zhǔn)是:Qπ(s,a)是否大于Vπ(s)。如果Qπ(s,a)> Vπ(s),那么至少說(shuō)明新策略【僅在狀態(tài)s下采用動(dòng)作a,其他狀態(tài)下遵循策略π】比舊策略【所有狀態(tài)下都遵循策略π】整體上要更好。

      策略改進(jìn)定理(policy improvement theorem):π和π'是兩個(gè)確定的策略,如果對(duì)所有狀態(tài)s∈S有Qπ(s,π'(s))≥Vπ(s),那么策略π'必然比策略π更好,或者至少一樣好。其中的不等式等價(jià)于Vπ'(s)≥Vπ(s)。

      有了在某狀態(tài)s上改進(jìn)策略的方法和策略改進(jìn)定理,我們可以遍歷所有狀態(tài)和所有可能的動(dòng)作a,并采用貪心策略來(lái)獲得新策略π'。即對(duì)所有的s∈S, 采用下式更新策略:

      這種采用關(guān)于值函數(shù)的貪心策略獲得新策略,改進(jìn)舊策略的過(guò)程,稱為策略改進(jìn)(Policy Improvement)

    ? ? ?最后大家可能會(huì)疑惑,貪心策略能否收斂到最優(yōu)策略,這里我們假設(shè)策略改進(jìn)過(guò)程已經(jīng)收斂,即對(duì)所有的s,Vπ'(s)等于Vπ(s)。那么根據(jù)上面的策略更新的式子,可以知道對(duì)于所有的s∈S下式成立:

      可是這個(gè)式子正好就是我們?cè)?中所說(shuō)的Bellman optimality equation,所以π和π'都必然是最優(yōu)策略!神奇吧!

    4. 策略迭代(Policy Iteration)

      策略迭代算法就是上面兩節(jié)內(nèi)容的組合。假設(shè)我們有一個(gè)策略π,那么我們可以用policy evaluation獲得它的值函數(shù)Vπ(s),然后根據(jù)policy improvement得到更好的策略π',接著再計(jì)算Vπ'(s),再獲得更好的策略π'',整個(gè)過(guò)程順序進(jìn)行如下圖所示:

    完整的算法如下圖所示:

      5. 值迭代(Value Iteration):(即Q學(xué)習(xí),Q learning)

      從上面我們可以看到,策略迭代算法包含了一個(gè)策略估計(jì)的過(guò)程,而策略估計(jì)則需要掃描(sweep)所有的狀態(tài)若干次,其中巨大的計(jì)算量直接影響了策略迭代算法的效率。我們必須要獲得精確的Vπ值嗎?事實(shí)上不必,有幾種方法可以在保證算法收斂的情況下,縮短策略估計(jì)的過(guò)程。

      值迭代(Value Iteration)就是其中非常重要的一種。它的每次迭代只掃描(sweep)了每個(gè)狀態(tài)一次。值迭代的每次迭代對(duì)所有的s∈S按照下列公式更新:

      即在值迭代的第k+1次迭代時(shí),直接將能獲得的最大的Vπ(s)值賦給Vk+1。值迭代算法直接用可能轉(zhuǎn)到的下一步s'的V(s')來(lái)更新當(dāng)前的V(s),算法甚至都不需要存儲(chǔ)策略π。而實(shí)際上這種更新方式同時(shí)卻改變了策略πk和V(s)的估值Vk(s)。 直到算法結(jié)束后,我們?cè)偻ㄟ^(guò)V值來(lái)獲得最優(yōu)的π。

    此外,值迭代還可以理解成是采用迭代的方式逼近1中所示的貝爾曼最優(yōu)方程。

    值迭代完整的算法如圖所示:

      由上面的算法可知,值迭代的最后一步,我們才根據(jù)V*(s),獲得最優(yōu)策略π*。

      一般來(lái)說(shuō)值迭代和策略迭代都需要經(jīng)過(guò)無(wú)數(shù)輪迭代才能精確的收斂到V*和π*, 而實(shí)踐中,我們往往設(shè)定一個(gè)閾值來(lái)作為中止條件,即當(dāng)Vπ(s)值改變很小時(shí),我們就近似的認(rèn)為獲得了最優(yōu)策略。在折扣回報(bào)的有限MDP(discounted finite MDPs)中,進(jìn)過(guò)有限次迭代,兩種算法都能收斂到最優(yōu)策略π*。

      至此我們了解了馬爾可夫決策過(guò)程的動(dòng)態(tài)規(guī)劃解法,動(dòng)態(tài)規(guī)劃的優(yōu)點(diǎn)在于它有很好的數(shù)學(xué)上的解釋,但是動(dòng)態(tài)要求一個(gè)完全已知的環(huán)境模型,這在現(xiàn)實(shí)中是很難做到的。另外,當(dāng)狀態(tài)數(shù)量較大的時(shí)候,動(dòng)態(tài)規(guī)劃法的效率也將是一個(gè)問(wèn)題。下一篇介紹蒙特卡羅方法,它的優(yōu)點(diǎn)在于不需要完整的環(huán)境模型。

    參考資料:

    [1] R.Sutton et al. Reinforcement learning: An introduction , 1998

    [2]?徐昕,增強(qiáng)學(xué)習(xí)及其在移動(dòng)機(jī)器人導(dǎo)航與控制中的應(yīng)用研究[D],2002

    ?

    增強(qiáng)學(xué)習(xí)(四) ----- 蒙特卡羅方法(Monte Carlo Methods)

    1. 蒙特卡羅方法的基本思想

      蒙特卡羅方法又叫統(tǒng)計(jì)模擬方法,它使用隨機(jī)數(shù)(或偽隨機(jī)數(shù))來(lái)解決計(jì)算的問(wèn)題,是一類重要的數(shù)值計(jì)算方法。該方法的名字來(lái)源于世界著名的賭城蒙特卡羅,而蒙特卡羅方法正是以概率為基礎(chǔ)的方法。

      一個(gè)簡(jiǎn)單的例子可以解釋蒙特卡羅方法,假設(shè)我們需要計(jì)算一個(gè)不規(guī)則圖形的面積,那么圖形的不規(guī)則程度和分析性計(jì)算(比如積分)的復(fù)雜程度是成正比的。而采用蒙特卡羅方法是怎么計(jì)算的呢?首先你把圖形放到一個(gè)已知面積的方框內(nèi),然后假想你有一些豆子,把豆子均勻地朝這個(gè)方框內(nèi)撒,散好后數(shù)這個(gè)圖形之中有多少顆豆子,再根據(jù)圖形內(nèi)外豆子的比例來(lái)計(jì)算面積。當(dāng)你的豆子越小,撒的越多的時(shí)候,結(jié)果就越精確。

    2. 增強(qiáng)學(xué)習(xí)中的蒙特卡羅方法   MC是屬于sampling-based policy optimization的一種。

      現(xiàn)在我們開始講解增強(qiáng)學(xué)習(xí)中的蒙特卡羅方法,與上篇的DP不同的是,這里不需要對(duì)環(huán)境的完整知識(shí)。蒙特卡羅方法僅僅需要經(jīng)驗(yàn)就可以求解最優(yōu)策略,這些經(jīng)驗(yàn)可以在線獲得或者根據(jù)某種模擬機(jī)制獲得。

      要注意的是,我們僅將蒙特卡羅方法定義在episode task上,所謂的episode task就是指不管采取哪種策略π,都會(huì)在有限時(shí)間內(nèi)到達(dá)終止?fàn)顟B(tài)并獲得回報(bào)的任務(wù)。比如玩棋類游戲,在有限步數(shù)以后總能達(dá)到輸贏或者平局的結(jié)果并獲得相應(yīng)回報(bào)。

    那么什么是經(jīng)驗(yàn)?zāi)?#xff1f;經(jīng)驗(yàn)其實(shí)就是訓(xùn)練樣本。比如在初始狀態(tài)s,遵循策略π,最終獲得了總回報(bào)R,這就是一個(gè)樣本。如果我們有許多這樣的樣本,就可以估計(jì)在狀態(tài)s下,遵循策略π的期望回報(bào),也就是狀態(tài)值函數(shù)Vπ(s)了。蒙特卡羅方法就是依靠樣本的平均回報(bào)來(lái)解決增強(qiáng)學(xué)習(xí)問(wèn)題的。

      盡管蒙特卡羅方法和動(dòng)態(tài)規(guī)劃方法存在諸多不同,但是蒙特卡羅方法借鑒了很多動(dòng)態(tài)規(guī)劃中的思想。在動(dòng)態(tài)規(guī)劃中我們首先進(jìn)行策略估計(jì),計(jì)算特定策略π對(duì)應(yīng)的Vπ和Qπ,然后進(jìn)行策略改進(jìn),最終形成策略迭代。這些想法同樣在蒙特卡羅方法中應(yīng)用。

    3. 蒙特卡羅策略估計(jì)(Monte Carlo Policy evalution)

      首先考慮用蒙特卡羅方法來(lái)學(xué)習(xí)狀態(tài)值函數(shù)Vπ(s)。如上所述,估計(jì)Vπ(s)的一個(gè)明顯的方法是對(duì)于所有到達(dá)過(guò)該狀態(tài)的回報(bào)取平均值。這里又分為first-visit MC methods和every-visit MC methods。這里,我們只考慮first MC methods,即在一個(gè)episode內(nèi),我們只記錄s的第一次訪問(wèn),并對(duì)它取平均回報(bào)。

    現(xiàn)在我們假設(shè)有如下一些樣本,取折扣因子γ=1,即直接計(jì)算累積回報(bào),則有

    根據(jù)first MC methods,對(duì)出現(xiàn)過(guò)狀態(tài)s的episode的累積回報(bào)取均值,有Vπ(s)≈ (2 + 1 – 5 + 4)/4 = 0.5

    ????容易知道,當(dāng)我們經(jīng)過(guò)無(wú)窮多的episode后,Vπ(s)的估計(jì)值將收斂于其真實(shí)值。

    4. 動(dòng)作值函數(shù)的MC估計(jì)(Mote Carlo Estimation of Action Values)

      在狀態(tài)轉(zhuǎn)移概率p(s'|a,s)已知的情況下,策略估計(jì)后有了新的值函數(shù),我們就可以進(jìn)行策略改進(jìn)了,只需要看哪個(gè)動(dòng)作能獲得最大的期望累積回報(bào)就可以。然而在沒(méi)有準(zhǔn)確的狀態(tài)轉(zhuǎn)移概率的情況下這是不可行的。為此,我們需要估計(jì)動(dòng)作值函數(shù)Qπ(s,a)。Qπ(s,a)的估計(jì)方法前面類似,即在狀態(tài)s下采用動(dòng)作a,后續(xù)遵循策略π獲得的期望累積回報(bào)即為Qπ(s,a),依然用平均回報(bào)來(lái)估計(jì)它。有了Q值,就可以進(jìn)行策略改進(jìn)了

    5. 持續(xù)探索(Maintaining Exploration)

      下面我們來(lái)探討一下Maintaining Exploration的問(wèn)題。前面我們講到,我們通過(guò)一些樣本來(lái)估計(jì)Q和V,并且在未來(lái)執(zhí)行估值最大的動(dòng)作。這里就存在一個(gè)問(wèn)題,假設(shè)在某個(gè)確定狀態(tài)s0下,能執(zhí)行a0, a1, a2這三個(gè)動(dòng)作,如果智能體已經(jīng)估計(jì)了兩個(gè)Q函數(shù)值,如Q(s0,a0), Q(s0,a1),且Q(s0,a0)>Q(s0,a1),那么它在未來(lái)將只會(huì)執(zhí)行一個(gè)確定的動(dòng)作a0。這樣我們就無(wú)法更新Q(s0,a1)的估值和獲得Q(s0,a2)的估值了。這樣的后果是,我們無(wú)法保證Q(s0,a0)就是s0下最大的Q函數(shù)。

    Maintaining Exploration的思想很簡(jiǎn)單,就是用soft?policies來(lái)替換確定性策略,使所有的動(dòng)作都有可能被執(zhí)行。比如其中的一種方法是ε-greedy policy,即在所有的狀態(tài)下,用1-ε的概率來(lái)執(zhí)行當(dāng)前的最優(yōu)動(dòng)作a0,ε的概率來(lái)執(zhí)行其他動(dòng)作a1, a2。這樣我們就可以獲得所有動(dòng)作的估計(jì)值,然后通過(guò)慢慢減少ε值,最終使算法收斂,并得到最優(yōu)策略。簡(jiǎn)單起見,在下面MC控制中,我們使用exploring start,即僅在第一步令所有的a都有一個(gè)非零的概率被選中。

    6. 蒙特卡羅控制(Mote Carlo Control)

      我們看下MC版本的策略迭代過(guò)程:

      根據(jù)前面的說(shuō)法,值函數(shù)Qπ(s,a)的估計(jì)值需要在無(wú)窮多episode后才能收斂到其真實(shí)值。這樣的話策略迭代必然是低效的。在上一篇DP中,我們了值迭代算法,即每次都不用完整的策略估計(jì),而僅僅使用值函數(shù)的近似值進(jìn)行迭代,這里也用到了類似的思想。每次策略的近似值,然后用這個(gè)近似值來(lái)更新得到一個(gè)近似的策略,并最終收斂到最優(yōu)策略。這個(gè)思想稱為廣義策略迭代。

      具體到MC control,就是在每個(gè)episode后都重新估計(jì)下動(dòng)作值函數(shù)(盡管不是真實(shí)值),然后根據(jù)近似的動(dòng)作值函數(shù),進(jìn)行策略更新。這是一個(gè)episode by episode的過(guò)程。

      一個(gè)采用exploring starts的Monte Carlo control算法,如下圖所示,稱為Monte Carlo ES。而對(duì)于所有狀態(tài)都采用soft?policy的版本,這里不再討論。

    7. 小結(jié)

      Monte Carlo方法的一個(gè)顯而易見的好處就是我們不需要環(huán)境模型了,可以從經(jīng)驗(yàn)中直接學(xué)到策略。它的另一個(gè)好處是,它對(duì)所有狀態(tài)s的估計(jì)都是獨(dú)立的,而不依賴與其他狀態(tài)的值函數(shù)。在很多時(shí)候,我們不需要對(duì)所有狀態(tài)值進(jìn)行估計(jì),這種情況下蒙特卡羅方法就十分適用。

    不過(guò),現(xiàn)在增強(qiáng)學(xué)習(xí)中,直接使用MC方法的情況比較少,而較多的采用TD算法族。但是如同DP一樣,MC方法也是增強(qiáng)學(xué)習(xí)的基礎(chǔ)之一,因此依然有學(xué)習(xí)的必要。

    ?

    參考資料:

    [1] R.Sutton et al. Reinforcement learning: An introduction, 1998

    [2] Wikipedia,蒙特卡羅方法

    轉(zhuǎn)載于:https://www.cnblogs.com/mo-wang/p/4910855.html

    總結(jié)

    以上是生活随笔為你收集整理的【整理】强化学习与MDP的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。