機(jī)器學(xué)習(xí)原理、算法與應(yīng)用 課件 第十二章 強(qiáng)化學(xué)習(xí)_第1頁(yè)
機(jī)器學(xué)習(xí)原理、算法與應(yīng)用 課件 第十二章 強(qiáng)化學(xué)習(xí)_第2頁(yè)
機(jī)器學(xué)習(xí)原理、算法與應(yīng)用 課件 第十二章 強(qiáng)化學(xué)習(xí)_第3頁(yè)
機(jī)器學(xué)習(xí)原理、算法與應(yīng)用 課件 第十二章 強(qiáng)化學(xué)習(xí)_第4頁(yè)
機(jī)器學(xué)習(xí)原理、算法與應(yīng)用 課件 第十二章 強(qiáng)化學(xué)習(xí)_第5頁(yè)
已閱讀5頁(yè),還剩77頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

機(jī)器學(xué)習(xí)原理、算法與應(yīng)用

第十二章:強(qiáng)化學(xué)習(xí)目錄12.1強(qiáng)化學(xué)習(xí)概述12.2馬爾可夫決策過(guò)程12.3蒙特卡洛方法12.4時(shí)序差分方法12.5深度Q網(wǎng)絡(luò)12.6強(qiáng)化學(xué)習(xí)應(yīng)用機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)2本章的重點(diǎn)、難點(diǎn)和需要掌握的內(nèi)容掌握強(qiáng)化學(xué)習(xí)的基本原理和組成元素。了解馬爾可夫決策過(guò)程的形式化表述及應(yīng)用。掌握蒙特卡洛和時(shí)序差分學(xué)習(xí)的基本思想。掌握深度強(qiáng)化學(xué)習(xí)中的技巧,如經(jīng)驗(yàn)回放、目標(biāo)網(wǎng)絡(luò)等。掌握并學(xué)會(huì)使用強(qiáng)化學(xué)習(xí)建模。機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)3目錄12.1強(qiáng)化學(xué)習(xí)概述12.1.1定義與特點(diǎn)12.1.2主要組成元素機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)4強(qiáng)化學(xué)習(xí)概述強(qiáng)化學(xué)習(xí)的思想源于行為心理學(xué)的研究。其發(fā)展歷程為:1911年,Thorndike提出了效用法則(LawofEffect):在一定情景下有讓動(dòng)物感到舒服的行為,就會(huì)與此情景加強(qiáng)聯(lián)系,當(dāng)此情景再現(xiàn)時(shí),動(dòng)物的這種行為也更易再現(xiàn);相反,在一定情景下有讓動(dòng)物感覺(jué)不舒服的行為,會(huì)減弱與此情景的聯(lián)系,此情景再現(xiàn)時(shí),動(dòng)物的此行為將很難再現(xiàn)。1954年,MarvinMinsky在其博士論文中實(shí)現(xiàn)了計(jì)算上的試錯(cuò)學(xué)習(xí)。1957年,RichardBellman提出了動(dòng)態(tài)規(guī)劃方法,用于解決最優(yōu)控制問(wèn)題。1960年,Howard提出了馬爾可夫決策過(guò)程的策略迭代方法。他提出了一種通過(guò)反復(fù)評(píng)估和改進(jìn)策略來(lái)逐步優(yōu)化決策過(guò)程的方法。這種策略迭代方法為后來(lái)強(qiáng)化學(xué)習(xí)中策略評(píng)估和策略改進(jìn)的概念提供了基礎(chǔ)。1961年,MarvinMinsky在他的論文“Stepstowardartificialintelligence”中首次使用了ReinforcementLearning一詞,這標(biāo)志著“強(qiáng)化學(xué)習(xí)”這個(gè)術(shù)語(yǔ)的首次正式使用。5機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)定義與特點(diǎn)強(qiáng)化學(xué)習(xí)的目標(biāo)是找到一個(gè)最優(yōu)的策略,使得智能體能夠在長(zhǎng)期累積獎(jiǎng)勵(lì)上取得最大化值。通過(guò)學(xué)習(xí)價(jià)值函數(shù)或動(dòng)作值函數(shù),強(qiáng)化學(xué)習(xí)可以評(píng)估不同狀態(tài)或行動(dòng)的價(jià)值,并基于這些價(jià)值進(jìn)行決策。如圖12-1,強(qiáng)化學(xué)習(xí)的基本過(guò)程可以歸結(jié)為五個(gè)主要元素:狀態(tài)、環(huán)境、智能體、動(dòng)作和獎(jiǎng)勵(lì)。在強(qiáng)化學(xué)習(xí)過(guò)程中,智能體與環(huán)境一直在交互,該過(guò)程可以看作循環(huán):智能體在環(huán)境中采取動(dòng)作,環(huán)境因此發(fā)生改變,并向智能體提供獎(jiǎng)勵(lì)和新的環(huán)境,智能體根據(jù)這些信息決定下一步的動(dòng)作。智能體在環(huán)境中獲取某個(gè)狀態(tài)后,它會(huì)利用該狀態(tài)輸出一個(gè)動(dòng)作,這個(gè)動(dòng)作也稱為決策。然后這個(gè)動(dòng)作會(huì)在環(huán)境中被執(zhí)行,環(huán)境會(huì)根據(jù)智能體采取的動(dòng)作,輸出下一個(gè)狀態(tài)以及當(dāng)前這個(gè)動(dòng)作帶來(lái)的獎(jiǎng)勵(lì)。智能體的目的是盡可能多地從環(huán)境中獲取獎(jiǎng)勵(lì)。6機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)定義與特點(diǎn)強(qiáng)化學(xué)習(xí)不同于監(jiān)督學(xué)習(xí)和無(wú)監(jiān)督學(xué)習(xí),這三種機(jī)器學(xué)習(xí)方法的對(duì)比如表12-1所示。在監(jiān)督學(xué)習(xí)過(guò)程中,兩個(gè)假設(shè):1)輸入的數(shù)據(jù)(標(biāo)注的數(shù)據(jù))都應(yīng)是沒(méi)有關(guān)聯(lián)的。如果輸入的數(shù)據(jù)有關(guān)聯(lián),那么分類器是不好學(xué)習(xí)的。2)需要告訴分類器正確的標(biāo)簽,這樣它可以通過(guò)正確的標(biāo)簽來(lái)修正自己的預(yù)測(cè)。通過(guò)比較,可以總結(jié)出強(qiáng)化學(xué)習(xí)的特點(diǎn):交互性、延遲獎(jiǎng)勵(lì)信號(hào)、探索與利用權(quán)衡、試錯(cuò)學(xué)習(xí)、建模與規(guī)劃以及基本領(lǐng)域知識(shí)。機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)7主要組成元素智能體是進(jìn)行學(xué)習(xí)和決策的主體,它通過(guò)觀察環(huán)境的狀態(tài),選擇合適的動(dòng)作來(lái)最大化未來(lái)的獎(jiǎng)勵(lì)。環(huán)境指智能體生存和動(dòng)作的空間,它會(huì)對(duì)智能體的動(dòng)作做出響應(yīng)。環(huán)境對(duì)智能體的動(dòng)作產(chǎn)生影響,并根據(jù)智能體的動(dòng)作返回新的狀態(tài)和獎(jiǎng)勵(lì)信號(hào)。狀態(tài)描述一個(gè)時(shí)間步智能體所處環(huán)境的附加信息,可以是完整環(huán)境信息,也可以是部分觀測(cè)。狀態(tài)包含了環(huán)境的關(guān)鍵特征,用于指導(dǎo)智能體的決策。狀態(tài)空間包含所有可能狀態(tài)的集合。動(dòng)作指智能體在環(huán)境中執(zhí)行的所有操作集合,每次智能體根據(jù)當(dāng)前環(huán)境狀態(tài)選擇一個(gè)動(dòng)作,動(dòng)作會(huì)使環(huán)境產(chǎn)生新的狀態(tài)。智能體的目標(biāo)是選擇最優(yōu)的動(dòng)作來(lái)達(dá)到最大化累積獎(jiǎng)勵(lì)。動(dòng)作可以是離散的或連續(xù)的,在給定的環(huán)境中,有效動(dòng)作的集合被稱為動(dòng)作空間。例如,走迷宮機(jī)器人如果只有往東、往南、往西、往北這4種移動(dòng)方式,那么其動(dòng)作空間為離散動(dòng)作空間;如果機(jī)器人可以向360°中的任意角度移動(dòng),則其動(dòng)作空間為連續(xù)動(dòng)作空間。獎(jiǎng)勵(lì)是環(huán)境對(duì)智能體在某個(gè)狀態(tài)采取動(dòng)作后的反饋。獎(jiǎng)勵(lì)可以是立即的,也可以是延遲的。強(qiáng)化學(xué)習(xí)的目的就是最大化智能體可以獲得的獎(jiǎng)勵(lì)。在不同的環(huán)境中,獎(jiǎng)勵(lì)也是不同的。比如,一個(gè)象棋選

手,他的目的是贏棋,在最后棋局結(jié)束的時(shí)候,他就會(huì)得到一個(gè)正獎(jiǎng)勵(lì)(贏)或者負(fù)獎(jiǎng)勵(lì)(輸)。機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)8主要組成元素三個(gè)重要概念:策略(Policy):定義了智能體在給定狀態(tài)下選擇動(dòng)作的方式。它是從狀態(tài)到動(dòng)作的映射關(guān)系。策略可以是確定性的,即對(duì)于每個(gè)狀態(tài)只選擇一個(gè)特定的動(dòng)作;也可以是隨機(jī)性的,即對(duì)于每個(gè)狀態(tài)選擇動(dòng)作的概率分布。強(qiáng)化學(xué)習(xí)的目標(biāo)之一是找到最優(yōu)的策略,使得智能體能夠獲得最大的累積獎(jiǎng)勵(lì)。

價(jià)值函數(shù)(ValueFunction):用于評(píng)估給定狀態(tài)或狀態(tài)?動(dòng)作對(duì)的好壞。價(jià)值函數(shù)預(yù)測(cè)了在某個(gè)狀態(tài)下執(zhí)行某個(gè)動(dòng)作或者遵循某個(gè)策略能夠獲得的預(yù)期獎(jiǎng)勵(lì)。通過(guò)最大化價(jià)值函數(shù),智能體可以找到最優(yōu)的動(dòng)作策略。

模型:對(duì)環(huán)境的內(nèi)部表示,它可以預(yù)測(cè)環(huán)境的狀態(tài)轉(zhuǎn)換和獎(jiǎng)勵(lì)信號(hào)。模型可以用于規(guī)劃和預(yù)測(cè),通過(guò)模擬不同的動(dòng)作和狀態(tài)轉(zhuǎn)換來(lái)評(píng)估不同策略的效果,并生成參考數(shù)據(jù)用于訓(xùn)練智能體。機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)9主要組成元素—策略策略可分為兩種:隨機(jī)性策略和確定性策略。隨機(jī)性策略(StochasticPolicy)即π函數(shù),可以通過(guò)概率分布來(lái)定義動(dòng)作的選擇概率。例如,在狀態(tài)s下,智能體可以根據(jù)一個(gè)概率分布選擇動(dòng)作a,表示為π(a|s),即π(a|s)=p(at=a|st=s)確定性策略(DeterministicPolicy)指的是智能體根據(jù)當(dāng)前狀態(tài)直接選擇具有最高概率(或最高估計(jì)價(jià)值)的動(dòng)作,而不引入隨機(jī)性。換句話說(shuō),確定性策略使智能體在給定狀態(tài)下始終選擇同一個(gè)最優(yōu)動(dòng)作,即a*=argmaxaπ(a|s)機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)10主要組成元素—價(jià)值函數(shù)

機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)11主要組成元素—價(jià)值函數(shù)

機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)12主要組成元素—模型

機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)13目錄12.2馬爾可夫決策過(guò)程12.2.1貝爾曼方程12.2.2策略迭代12.2.3價(jià)值迭代機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)14馬爾可夫決策過(guò)程馬爾可夫決策過(guò)程(MDP)是一種用于建模序貫決策問(wèn)題的數(shù)學(xué)框架。圖12-1展示了強(qiáng)化學(xué)習(xí)中智能體與環(huán)境之間的交互過(guò)程,這個(gè)過(guò)程可以通過(guò)MDP這一數(shù)學(xué)框架來(lái)描述。MDP是強(qiáng)化學(xué)習(xí)的基礎(chǔ)和核心,它通過(guò)數(shù)學(xué)方法來(lái)表達(dá)序貫決策問(wèn)題。如圖12-2所示,這個(gè)MDP可視化了狀態(tài)之間的轉(zhuǎn)移及采取的動(dòng)作。在馬爾可夫決策過(guò)程(MDP)中,環(huán)境被假設(shè)為完全可觀測(cè)的,這意味著智能體可以準(zhǔn)確地觀察到環(huán)境的狀態(tài)。然而,在實(shí)際問(wèn)題中,有時(shí)候環(huán)境中的一些量是不完全可觀測(cè)的,這會(huì)給決策過(guò)程帶來(lái)挑戰(zhàn)。為了解決這個(gè)問(wèn)題,可以將部分觀測(cè)問(wèn)題轉(zhuǎn)化為MDP問(wèn)題,通過(guò)引入額外的隱狀態(tài)來(lái)擴(kuò)展MDP模型。本節(jié)將介紹MDP中的策略評(píng)估和決策過(guò)程的控制,具體有策略迭代(PolicyIteration)和價(jià)值迭代(ValueIteration)兩種算法。機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)15貝爾曼方程貝爾曼方程(BellmanEquation)是描述MDP中價(jià)值函數(shù)的重要方程。價(jià)值函數(shù)表示在給定狀態(tài)下,智能體從當(dāng)前狀態(tài)開(kāi)始,按照某個(gè)策略執(zhí)行動(dòng)作所能獲得的期望累積獎(jiǎng)勵(lì)。貝爾曼方程是用來(lái)描述價(jià)值函數(shù)的遞歸關(guān)系的方程。對(duì)于一個(gè)MDP,貝爾曼方程可以分為兩種形式:狀態(tài)價(jià)值函數(shù)的貝爾曼方程和動(dòng)作價(jià)值函數(shù)的貝爾曼方程。馬爾可夫過(guò)程是一組具有馬爾可夫性質(zhì)的隨機(jī)變量序列s1,s2,······,st

,其中下一個(gè)時(shí)刻的狀態(tài)st+1只取決于當(dāng)前狀態(tài)st。離散時(shí)間的馬爾可夫過(guò)程也稱為馬爾可夫鏈(MarkovChain)。馬爾可夫鏈?zhǔn)亲詈?jiǎn)單的馬爾可夫過(guò)程,其狀態(tài)是有限的。可以用狀態(tài)轉(zhuǎn)移矩陣(StateTransitionMatrix)來(lái)描述狀態(tài)轉(zhuǎn)移P(st+1=s’|st=s)。馬爾可夫獎(jiǎng)勵(lì)過(guò)程(MarkovRewardProcess,MRP)是指馬爾可夫鏈加上了獎(jiǎng)勵(lì)函數(shù)。在馬爾可夫獎(jiǎng)勵(lì)過(guò)程中,狀態(tài)轉(zhuǎn)移矩陣和狀態(tài)都與馬爾可夫鏈一樣,只是多了獎(jiǎng)勵(lì)函數(shù)(RewardFunction)。范圍是指一個(gè)回合的長(zhǎng)度(每個(gè)回合最大的時(shí)間步數(shù)),它是由有限個(gè)步數(shù)決定的?;貓?bào)可以定義為獎(jiǎng)勵(lì)的逐步疊加,假設(shè)時(shí)刻t后的獎(jiǎng)勵(lì)序列為rt+1,rt+2,······,則回報(bào)為Gt=rt+1+γrt+2+γ2rt+3+······+γT-t-1rT機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)16貝爾曼方程

機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)17貝爾曼方程

機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)18貝爾曼方程

機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)19策略迭代策略迭代用于優(yōu)化策略和價(jià)值函數(shù)。它由兩個(gè)主要步驟組成:策略評(píng)估和策略改進(jìn)。這兩個(gè)步驟交替進(jìn)行,直到達(dá)到收斂條件為止。策略迭代的步驟如圖12-3(a)所示,首先是策略評(píng)估,當(dāng)前在優(yōu)化策略π,在優(yōu)化過(guò)程中得到一個(gè)最新的策略。先保證這個(gè)策略不變,然后估計(jì)它的價(jià)值,即給定當(dāng)前的策略函數(shù)來(lái)估計(jì)狀態(tài)價(jià)值函數(shù)。接著是策略改進(jìn),得到狀態(tài)價(jià)值函數(shù)后,可以進(jìn)一步推算出它的Q函數(shù)。得到Q函數(shù)后,直接對(duì)Q函數(shù)進(jìn)行最大化,通過(guò)在Q函數(shù)中做一個(gè)貪心的搜索來(lái)進(jìn)一步改進(jìn)策略。這兩個(gè)步驟一直在迭代進(jìn)行。機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)20策略迭代

機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)21價(jià)值迭代

22機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)價(jià)值迭代

23機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)蒙特卡洛方法強(qiáng)化學(xué)習(xí)根據(jù)智能體是否需要對(duì)真實(shí)環(huán)境進(jìn)行建模,可以分為有模型強(qiáng)化學(xué)習(xí)和免模型強(qiáng)化學(xué)習(xí)。有模型強(qiáng)化學(xué)習(xí)是指智能體在學(xué)習(xí)過(guò)程中能夠?qū)Νh(huán)境進(jìn)行建模,即學(xué)習(xí)環(huán)境的動(dòng)態(tài)轉(zhuǎn)移函數(shù)。在有模型強(qiáng)化學(xué)習(xí)中,智能體需要進(jìn)行兩個(gè)過(guò)程:學(xué)習(xí)環(huán)境模型和基于模型進(jìn)行決策。智能體通過(guò)與環(huán)境的交互,學(xué)習(xí)環(huán)境的動(dòng)態(tài)轉(zhuǎn)移函數(shù)和獎(jiǎng)勵(lì)函數(shù),從而建立一個(gè)對(duì)環(huán)境行為的模型。基于這個(gè)模型,智能體可以進(jìn)行規(guī)劃和預(yù)測(cè),評(píng)估不同的策略,并選擇最優(yōu)的動(dòng)作。由于有模型強(qiáng)化學(xué)習(xí)需要學(xué)習(xí)環(huán)境模型,因此可能需要更多的訓(xùn)練數(shù)據(jù)和計(jì)算資源。免模型強(qiáng)化學(xué)習(xí)不需要對(duì)真實(shí)環(huán)境進(jìn)行顯式建模。智能體直接從與環(huán)境的交互中學(xué)習(xí),通過(guò)嘗試不同的動(dòng)作并觀察環(huán)境的響應(yīng)來(lái)改進(jìn)策略。它不依賴于事先對(duì)環(huán)境進(jìn)行建模,而是通過(guò)試錯(cuò)和探索來(lái)學(xué)習(xí)最優(yōu)策略。在免模型強(qiáng)化學(xué)習(xí)中,智能體只需要進(jìn)行一個(gè)過(guò)程:基于當(dāng)前狀態(tài)和獎(jiǎng)勵(lì)進(jìn)行決策。由于免模型強(qiáng)化學(xué)習(xí)不需要學(xué)習(xí)環(huán)境模型,因此通常比有模型強(qiáng)化學(xué)習(xí)更易于實(shí)現(xiàn)和運(yùn)行。免模型強(qiáng)化學(xué)習(xí)更加適用于現(xiàn)實(shí)世界中復(fù)雜、未知和難以建模的環(huán)境。蒙特卡洛方法是一種免模型強(qiáng)化學(xué)習(xí)算法,它可以在沒(méi)有對(duì)環(huán)境進(jìn)行顯式建模的情況下進(jìn)行學(xué)習(xí)和決策。24機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)蒙特卡洛方法蒙特卡洛方法是基于采樣的方法,給定策略π,讓智能體與環(huán)境進(jìn)行交互,可以得到很多軌跡。每個(gè)軌跡都有對(duì)應(yīng)的回報(bào):Gt=rt+1+γrt+2+γ2rt+3+······。通過(guò)求出所有軌跡的回報(bào)的平均值,可以知道某一個(gè)策略對(duì)應(yīng)狀態(tài)的價(jià)值,即Vπ(s)=Eτ~π[Gt|st=s]。蒙特卡洛方法是一種統(tǒng)計(jì)模擬方法,用于估計(jì)未知量或分析復(fù)雜系統(tǒng)的行為。它通過(guò)執(zhí)行多個(gè)隨機(jī)策略的軌跡(也稱為回合或仿真)來(lái)估計(jì)策略的狀態(tài)價(jià)值函數(shù)或動(dòng)作價(jià)值函數(shù)。另外,它使用經(jīng)驗(yàn)平均回報(bào)(EmpiricalMeanReturn)的方法來(lái)估計(jì),它不需要馬爾可夫決策過(guò)程的狀態(tài)轉(zhuǎn)移函數(shù)和獎(jiǎng)勵(lì)函數(shù),并且不需要像動(dòng)態(tài)規(guī)劃那樣采用自舉的方法。此外,蒙特卡洛方法有一定的局限性,它只能用在有終止的馬爾可夫決策過(guò)程中。25機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)蒙特卡洛方法

26機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)目錄12.4時(shí)序差分方法12.4.1SARSA算法12.4.2Q-Learning算法機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)27時(shí)序差分方法時(shí)序差分(TemporalDifference,TD)方法是一種強(qiáng)化學(xué)習(xí)中的學(xué)習(xí)算法,介于蒙特卡洛方法和動(dòng)態(tài)規(guī)劃方法之間。與蒙特卡洛方法不同的是,時(shí)序差分方法不需要完整的回合來(lái)進(jìn)行學(xué)習(xí)。相反,它可以從不完整的回合中進(jìn)行學(xué)習(xí),及時(shí)地更新價(jià)值函數(shù)的估計(jì)。時(shí)序差分方法也不需要馬爾可夫決策過(guò)程的狀態(tài)轉(zhuǎn)移函數(shù)和獎(jiǎng)勵(lì)函數(shù)。它通過(guò)觀察智能體與環(huán)境交互的狀態(tài)轉(zhuǎn)換和即時(shí)獎(jiǎng)勵(lì)來(lái)進(jìn)行學(xué)習(xí)。通過(guò)增量式地更新價(jià)值函數(shù)的估計(jì),并利用時(shí)序差分誤差(TD誤差)來(lái)估計(jì)當(dāng)前狀態(tài)值的估計(jì)與下一個(gè)狀態(tài)值的估計(jì)之間的差異,時(shí)序差分方法可以逐步優(yōu)化價(jià)值函數(shù)的估計(jì)。時(shí)序差分方法結(jié)合了自舉的思想,即通過(guò)當(dāng)前預(yù)測(cè)值來(lái)更新下一個(gè)狀態(tài)的預(yù)測(cè)值。這使得它能夠在未知模型或復(fù)雜環(huán)境中進(jìn)行學(xué)習(xí),并且能夠進(jìn)行在線學(xué)習(xí),即時(shí)更新策略。28機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)時(shí)序差分方法

29機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)時(shí)序差分方法

30機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)時(shí)序差分方法與蒙特卡洛方法對(duì)比:時(shí)序差分方法可以在線學(xué)習(xí),每走一步就可以更新,效率高。蒙特卡洛方法必須等游戲結(jié)束才可以學(xué)習(xí)。時(shí)序差分方法可以從不完整序列上學(xué)習(xí)。蒙特卡洛方法只能從完整序列上學(xué)習(xí)。時(shí)序差分方法可以在連續(xù)的環(huán)境下(沒(méi)有終止)學(xué)習(xí)。蒙特卡洛方法只能在有終止的情況下學(xué)習(xí)。時(shí)序差分方法利用了馬爾可夫性質(zhì),在馬爾可夫環(huán)境下有更高的學(xué)習(xí)效率。蒙特卡洛方法沒(méi)有假設(shè)環(huán)境具有馬爾可夫性質(zhì),利用采樣的價(jià)值來(lái)估計(jì)某個(gè)狀態(tài)的價(jià)值,在不具有馬爾可夫性質(zhì)的環(huán)境下更加有效。時(shí)序差分方法是指在不清楚馬爾可夫狀態(tài)轉(zhuǎn)移概率的情況下,以采樣的方式得到不完整的狀態(tài)序列,估計(jì)某狀態(tài)在該狀態(tài)序列完整后可能得到的獎(jiǎng)勵(lì),并通過(guò)不斷地采樣持續(xù)更新價(jià)值。蒙特卡洛方法則需要經(jīng)歷完整的狀態(tài)序列來(lái)更新?tīng)顟B(tài)的真實(shí)價(jià)值。31機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)SARSA算法

32機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)SARSA算法時(shí)序差分單步更新如圖12-5所示,先把rt+1+γQ(st+1,at+1)當(dāng)作目標(biāo)值,即Q(st,at)想要33機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)SARSA算法因?yàn)樽铋_(kāi)始的Q值都是隨機(jī)初始化或者被初始化為0的,所以它需要不斷地去逼近理想中真實(shí)的Q值(時(shí)序差分目標(biāo)),rt+1+γQ(st+1,at+1)-Q(st,at)就是時(shí)序差分誤差。用Q(st,at)來(lái)逼近Gt,那么Q(st+1,at+1)其實(shí)就是近似Gt+1

。軟更新的方式就是每次只更新一點(diǎn),α類似于學(xué)習(xí)率。最終Q值是可以慢慢地逼近真實(shí)的目標(biāo)值的。這樣,更新公式只需要用到當(dāng)前時(shí)刻的st、at,還有獲取的rt+1、st+1、at+1。該算法由于每次更新價(jià)值函數(shù)時(shí)需要知道當(dāng)前的狀態(tài)、當(dāng)前的動(dòng)作、獎(jiǎng)勵(lì)、下一步的狀態(tài)、下一步的動(dòng)作,即(st,at,rt+1,st+1,at+1)這幾個(gè)值,因此得名SARSA算法。它走了一步,獲取了(st,at,rt+1,st+1,at+1)之后,就可以做一次更新。34機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)SARSA算法

35機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)Q-Learning算法Q-Learning算法是一種異策略算法。異策略在學(xué)習(xí)的過(guò)程中,有兩種不同的策略:目標(biāo)策略(TargetPolicy)和行為策略(BehaviorPolicy)。目標(biāo)策略是需要去學(xué)習(xí)的策略,一般用π來(lái)表示。目標(biāo)策略就像在后方提供戰(zhàn)術(shù)的一個(gè)軍師,它可以根據(jù)自己的經(jīng)驗(yàn)來(lái)學(xué)習(xí)最優(yōu)的策略,不需要去和環(huán)境交互。行為策略是探索環(huán)境的策略,一般用μ來(lái)表示。行為策略可以大膽地探索到所有可能的軌跡,并采集軌跡、數(shù)據(jù),把采集到的數(shù)據(jù)“喂”給目標(biāo)策略學(xué)習(xí)。而且“喂”給目標(biāo)策略的數(shù)據(jù)中并不需要at+1,而SARSA算法需要at+1。Q-Learning算法有很多優(yōu)點(diǎn):首先,它可以利用探索策略學(xué)到最佳的策略,學(xué)習(xí)效率高;其次,Q-Learning算法可以學(xué)習(xí)其他智能體的動(dòng)作,進(jìn)行模仿學(xué)習(xí),學(xué)習(xí)人或者其他智能體產(chǎn)生的軌跡;最后,Q-Learning算法可以重用舊的策略產(chǎn)生的軌跡,因?yàn)樘剿鬟^(guò)程需要很多計(jì)算資源,所以這樣可以節(jié)省資源。36機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)Q-Learning算法

37機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)Q-Learning算法(算法對(duì)比)38機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)目錄12.5深度Q網(wǎng)絡(luò)12.5.1目標(biāo)網(wǎng)絡(luò)12.6.2經(jīng)驗(yàn)回放機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)39深度Q網(wǎng)絡(luò)

40機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)深度Q網(wǎng)絡(luò)

41機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)目標(biāo)網(wǎng)絡(luò)實(shí)際上這樣的輸入并不好學(xué)習(xí),假設(shè)這是一個(gè)回歸問(wèn)題,目標(biāo)網(wǎng)絡(luò)如圖12-8所示,Qπ(st,at)是網(wǎng)絡(luò)的輸出,rt+Qπ(st+1,π(st+1))是目標(biāo),目標(biāo)是會(huì)變動(dòng)的。當(dāng)然要實(shí)現(xiàn)這樣的訓(xùn)練,其實(shí)也沒(méi)有問(wèn)題,就是在做反向傳播時(shí),Qπ的參數(shù)會(huì)被更新,要把兩個(gè)更新的結(jié)果加在一起(因?yàn)樗鼈兪峭粋€(gè)模型Qπ,所以兩個(gè)更新的結(jié)果會(huì)加在一起)。但這樣會(huì)導(dǎo)致訓(xùn)練變得不太穩(wěn)定,因?yàn)榧僭O(shè)把Qπ(st,at)當(dāng)作模型的輸出,把rt+Qπ(st+1,π(st+1))當(dāng)作目標(biāo),那么要去擬合的目標(biāo)是一直在變動(dòng)的,這是不太好訓(xùn)練的。42機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)目標(biāo)網(wǎng)絡(luò)通常把圖12-8右邊所示的Q網(wǎng)絡(luò)固定住。在訓(xùn)練時(shí),只更新左邊Q網(wǎng)絡(luò)的參數(shù),而右邊Q網(wǎng)絡(luò)的參數(shù)會(huì)被固定。因?yàn)橛疫叺腝網(wǎng)絡(luò)負(fù)責(zé)產(chǎn)生目標(biāo),所以被稱為目標(biāo)網(wǎng)絡(luò)。因?yàn)槟繕?biāo)網(wǎng)絡(luò)是固定的,所以現(xiàn)在得到的目標(biāo)rt+Qπ(st+1,π(st+1))的值也是固定的。只調(diào)整左邊Q網(wǎng)絡(luò)的參數(shù),它就變成一個(gè)回歸問(wèn)題。人們希望模型輸出的值與目標(biāo)值越接近越好,這樣會(huì)最小化它的均方誤差。43機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)目標(biāo)網(wǎng)絡(luò)為了減小目標(biāo)值的波動(dòng)和提高算法的穩(wěn)定性,會(huì)固定目標(biāo)網(wǎng)絡(luò)的參數(shù)一段時(shí)間,并使用固定的目標(biāo)網(wǎng)絡(luò)來(lái)計(jì)算目標(biāo)值。在這段時(shí)間內(nèi),只更新估計(jì)網(wǎng)絡(luò)的參數(shù),并使用固定的目標(biāo)網(wǎng)絡(luò)進(jìn)行目標(biāo)值的計(jì)算。在實(shí)現(xiàn)時(shí)會(huì)把左邊的Q網(wǎng)絡(luò)更新多次,再用更新過(guò)的Q網(wǎng)絡(luò)替換目標(biāo)網(wǎng)絡(luò)。但這兩個(gè)網(wǎng)絡(luò)不能同時(shí)更新,一開(kāi)始這兩個(gè)網(wǎng)絡(luò)是一樣的,在訓(xùn)練時(shí),把右邊的Q網(wǎng)絡(luò)固定住;在做梯度下降時(shí),只調(diào)整左邊Q網(wǎng)絡(luò)的參數(shù)。在更新N次以后才把參數(shù)復(fù)制到右邊的Q網(wǎng)絡(luò)中,把右邊Q網(wǎng)絡(luò)的參數(shù)覆蓋,目標(biāo)值就變了。就好像本來(lái)在做一個(gè)回歸問(wèn)題,訓(xùn)練后把這個(gè)回歸問(wèn)題的損失降下去以后,把左邊網(wǎng)絡(luò)的參數(shù)復(fù)制到右邊網(wǎng)絡(luò),目標(biāo)值就變了,接下來(lái)就要重新訓(xùn)練??梢酝ㄟ^(guò)貓追老鼠的例子來(lái)直觀地理解固定目標(biāo)網(wǎng)絡(luò)的目的。貓是Q估計(jì),老鼠是Q目標(biāo)。一開(kāi)始,貓離老鼠很遠(yuǎn),所以想讓貓追上老鼠。因?yàn)镼目標(biāo)也是與模型參數(shù)相關(guān)的,所以每次優(yōu)化后,Q目標(biāo)也會(huì)動(dòng)。這就導(dǎo)致一個(gè)問(wèn)題,貓和老鼠都在動(dòng),貓和老鼠會(huì)在優(yōu)化空間里面到處亂動(dòng),這會(huì)產(chǎn)生非常奇怪的優(yōu)化軌跡,使得訓(xùn)練過(guò)程十分不穩(wěn)定。因此需要固定Q網(wǎng)絡(luò),讓老鼠動(dòng)得不那么頻繁,可能讓它每5步動(dòng)一次,貓則是每一步都在動(dòng)。如果老鼠每5步動(dòng)一次,那么貓就有足夠的時(shí)間來(lái)接近老鼠了,它們之間的距離會(huì)隨著優(yōu)化過(guò)程越來(lái)越小,最后貓會(huì)捉到老鼠,即Q估計(jì)和Q目標(biāo)擬合,擬合后可以得到一個(gè)最好的Q網(wǎng)絡(luò)。44機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)經(jīng)驗(yàn)回放如圖12-9所示,經(jīng)驗(yàn)回放會(huì)構(gòu)建一個(gè)回放緩沖區(qū),回放緩沖區(qū)又被稱為回放內(nèi)存。回放緩沖區(qū)是指現(xiàn)在有某一個(gè)策略π與環(huán)境交互,它會(huì)去收集數(shù)據(jù),把所有的數(shù)據(jù)放到一個(gè)數(shù)據(jù)緩沖區(qū)里面,數(shù)據(jù)緩沖區(qū)里面存儲(chǔ)了很多數(shù)據(jù)。比如,數(shù)據(jù)緩沖區(qū)可以存儲(chǔ)5萬(wàn)筆數(shù)據(jù),每一筆數(shù)據(jù)就是代表,之前在某一個(gè)狀態(tài)st采取某一個(gè)動(dòng)作at,得到了獎(jiǎng)勵(lì)rt,進(jìn)入狀態(tài)st+1。用π與環(huán)境交互多次,把收集到的數(shù)據(jù)放到回放緩沖區(qū)中?;胤啪彌_區(qū)中的經(jīng)驗(yàn)可能來(lái)自不同的策略,每次用π與環(huán)境交互時(shí),可能只交互10000次,接下來(lái)就更新π了。但是回放緩沖區(qū)中可以放5萬(wàn)筆數(shù)據(jù),所以5萬(wàn)筆數(shù)據(jù)可能來(lái)自不同的策略?;胤啪彌_區(qū)只有在它裝滿的時(shí)候,才會(huì)把舊的數(shù)據(jù)丟掉。所以回放緩沖區(qū)里面其實(shí)裝了很多不同策略的經(jīng)驗(yàn)。45機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)經(jīng)驗(yàn)回放有了回放緩沖區(qū)以后,訓(xùn)練Q模型、估計(jì)Q函數(shù)的訓(xùn)練過(guò)程如下:使用回放緩沖區(qū)訓(xùn)練Q函數(shù)如圖12-10所示,迭代地訓(xùn)練Q函數(shù),在每一次迭代中,從回放緩沖區(qū)中隨機(jī)挑一個(gè)批量出來(lái),即與一般的網(wǎng)絡(luò)訓(xùn)練一樣。采樣該批量,其中有一些經(jīng)驗(yàn),根據(jù)這些經(jīng)驗(yàn)更新Q函數(shù)。這與時(shí)序差分學(xué)習(xí)要有一個(gè)目標(biāo)網(wǎng)絡(luò)是一樣的。46機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)經(jīng)驗(yàn)回放如果某種算法使用了經(jīng)驗(yàn)回放這個(gè)技巧,那么該算法就變成了一種異策略的算法。因?yàn)楸緛?lái)Q函數(shù)是要觀察π的經(jīng)驗(yàn)的,但實(shí)際上存儲(chǔ)在回放緩沖區(qū)中的這些經(jīng)驗(yàn)不是通通來(lái)自π,有些是過(guò)去其他的策略所留下來(lái)的經(jīng)驗(yàn)。因?yàn)椴粫?huì)用某一個(gè)π就把整個(gè)回放緩沖區(qū)裝

滿,再拿去測(cè)Q函數(shù),π只是采樣一些數(shù)據(jù)放到回放緩沖區(qū)中,所以接下來(lái)就讓Q函數(shù)去訓(xùn)練。Q函數(shù)在采樣的時(shí)候,會(huì)采樣到過(guò)去的一些數(shù)據(jù)。這么做有兩個(gè)好處。第一個(gè)好處是,在進(jìn)行強(qiáng)化學(xué)習(xí)時(shí),往往最花時(shí)間的步驟是與環(huán)境交互,訓(xùn)練網(wǎng)絡(luò)反而是比較快速的。因?yàn)橛肎PU訓(xùn)練很快。用回放緩沖區(qū)可以減少與環(huán)境交互的次數(shù),因?yàn)樵谧鲇?xùn)練時(shí),經(jīng)驗(yàn)不需要通通來(lái)自某一個(gè)策略。一些過(guò)去的策略所得到的經(jīng)驗(yàn)可以放在回放緩沖區(qū)中被使用很多次,被反復(fù)地再利用,這樣可以比較高效地采樣經(jīng)驗(yàn)。第二個(gè)好處是,在訓(xùn)練網(wǎng)絡(luò)時(shí),希望批量中的數(shù)據(jù)越多樣越好,如果回放緩沖區(qū)中的經(jīng)驗(yàn)通通來(lái)自不同的策略,那么采樣到的一個(gè)批量中的數(shù)據(jù)會(huì)是比較多樣的。如果批量中的數(shù)據(jù)都是同樣性質(zhì)的,那么訓(xùn)練下去,結(jié)果容易不太好。47機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)深度Q網(wǎng)絡(luò)深度Q網(wǎng)絡(luò)算法如下所示:初始化函數(shù)Q、目標(biāo)函數(shù)Q?

,令Q?=Q。

對(duì)于每一個(gè)回合。對(duì)于每一個(gè)時(shí)間步t。對(duì)于給定的狀態(tài)st,基于Q(ε?貪心策略)執(zhí)行動(dòng)作at。獲得反饋rt,并獲得新的狀態(tài)st+1。將(st,at,rt,st+1)存儲(chǔ)到回放緩沖區(qū)中。從回放緩沖區(qū)中采樣(通常以批量形式)(si,ai,ri,si+1)。目標(biāo)值是y=ri+maxaQ?(si+1,a)。更新Q的參數(shù)使Q(si,ai)盡可能接近于y(回歸)。每C次更新重置Q?=Q。48機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)深度Q網(wǎng)絡(luò)

49機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)目錄12.6強(qiáng)化學(xué)習(xí)應(yīng)用12.6.1gym介紹12.6.2懸崖尋路實(shí)戰(zhàn)12.6.3蛇棋實(shí)戰(zhàn)機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)50強(qiáng)化學(xué)習(xí)應(yīng)用本章選擇懸崖尋路實(shí)戰(zhàn)和蛇棋實(shí)戰(zhàn)兩個(gè)典型案例,來(lái)介紹強(qiáng)化學(xué)習(xí)在實(shí)戰(zhàn)中的具體應(yīng)用。在懸崖尋路實(shí)戰(zhàn)中,我們利用強(qiáng)化學(xué)習(xí)算法訓(xùn)練智能體,使其學(xué)會(huì)在一個(gè)有懸崖存在的環(huán)境中找到安全路徑,避免掉落到懸崖下。在蛇棋實(shí)戰(zhàn)中,我們利用強(qiáng)化學(xué)習(xí)算法訓(xùn)練智能體,使其學(xué)會(huì)在蛇棋游戲中采取最優(yōu)的移動(dòng)策略,以獲得勝利。這些應(yīng)用通常涉及將游戲規(guī)則建模為一個(gè)狀態(tài)空間,智能體根據(jù)當(dāng)前狀態(tài)選擇合適的動(dòng)作。51機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)Gym介紹如圖所示,OpenAI的Gym庫(kù)是一個(gè)環(huán)境仿真庫(kù),里面包含很多現(xiàn)有的環(huán)境。針對(duì)不同的場(chǎng)景,人們可以選擇不同的環(huán)境。離散控制場(chǎng)景((輸出的動(dòng)作是可數(shù)的,比如Pong游戲中輸出的向上或向下動(dòng)作)一般使用雅達(dá)利環(huán)境評(píng)估;連續(xù)控制場(chǎng)景(輸出的動(dòng)作是不可數(shù)的,比如機(jī)器人走路時(shí)不僅有方向,還有角度,角度就是不可數(shù)的,是一個(gè)連續(xù)的量)一般使用MuJoCo環(huán)境評(píng)估。GymRetro是對(duì)Gym環(huán)境的進(jìn)一步擴(kuò)展,包含更多的游戲。52機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)Gym介紹Gym的主要特點(diǎn)如下。

標(biāo)準(zhǔn)化的環(huán)境:Gym提供了大量的標(biāo)準(zhǔn)化環(huán)境,涵蓋了從簡(jiǎn)單的格子世界到復(fù)雜的物理仿真等不同類型的問(wèn)題。

簡(jiǎn)單易用:Gym的API設(shè)計(jì)簡(jiǎn)潔、清晰,易于理解和使用。用戶可以通過(guò)幾行代碼創(chuàng)建環(huán)境、與環(huán)境交互并進(jìn)行實(shí)驗(yàn)。

靈活性:Gym允許用戶自定義環(huán)境,以滿足特定問(wèn)題的需求。用戶可以輕松地添加新的環(huán)境或修改現(xiàn)有環(huán)境。

豐富的文檔和示例:Gym提供了詳盡的文檔和豐富的示例代碼,幫助用戶快速了解和使用工具包。53機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)Gym介紹—倒立擺下面通過(guò)倒立擺(CartPole-v0)的例子來(lái)介紹如何使用OpenAIGym環(huán)境。強(qiáng)化學(xué)習(xí)有三個(gè)核心,分別是對(duì)代理的控制(action)、對(duì)代理的期望(reward),以及代理行動(dòng)造成的環(huán)境變化(observation)。54importgym#創(chuàng)建CartPole環(huán)境env=gym.make('CartPole-v0',render_mode='human')###gym>0.26需要加入render_mode參數(shù)env.reset()#重置環(huán)境#迭代一定次數(shù),渲染并可視化環(huán)境for_inrange(100):env.render()action=env.action_space.sample()#隨機(jī)選擇動(dòng)作#observation,reward,done,info=env.step(action)###gym<0.26observation,reward,terminated,truncated,info=env.step(action)###gym>0.26done=terminatedortruncatedposition=observation[0]ifabs(position)>2.4:env.reset()#如果游戲結(jié)束,重新開(kāi)始env.close()機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)Gym介紹—倒立擺運(yùn)行代碼會(huì)出現(xiàn)一個(gè)畫(huà)風(fēng)樸素的倒立擺,搖搖晃晃地左右移動(dòng)。例子代碼首先導(dǎo)入gym庫(kù),使用make()函數(shù)創(chuàng)建CartPole-v0環(huán)境,并重置了環(huán)境狀態(tài)。CartPole-v0環(huán)境是一個(gè)2D模擬器,它可以通過(guò)向左或者向右加速小推車,來(lái)平衡放置于其頂端的一個(gè)桿(見(jiàn)圖12-12)。在for循環(huán)中進(jìn)行1000個(gè)時(shí)間步長(zhǎng)的控制,render()函數(shù)刷新每個(gè)時(shí)間步長(zhǎng)的環(huán)境畫(huà)面,step()函數(shù)對(duì)當(dāng)前環(huán)境狀態(tài)采取一個(gè)隨機(jī)動(dòng)作,_space是對(duì)應(yīng)環(huán)境所有的動(dòng)作空間,這里是0或1。step返回的observation中,第一個(gè)參數(shù)是小車的位置,判斷小車的位置,在屏幕外的情況下重置環(huán)境。最后循環(huán)結(jié)束后關(guān)閉仿真環(huán)境。55機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)Gym介紹—倒立擺上面代碼中使用了env.step()函數(shù)來(lái)對(duì)每一步進(jìn)行仿真,在Gym中,env.step()會(huì)返回4個(gè)參數(shù),如下所示。觀測(cè)[observation(Object)]:當(dāng)前step執(zhí)行后,環(huán)境的觀測(cè)(類型為對(duì)象)。例如,從相機(jī)獲取的像素點(diǎn),機(jī)器人各個(gè)關(guān)節(jié)的角度或棋盤(pán)游戲當(dāng)前的狀態(tài)等。獎(jiǎng)勵(lì)[reward(Float)]:執(zhí)行上一步動(dòng)作后,智能體獲得的獎(jiǎng)勵(lì)(浮點(diǎn)類型)。在不同的環(huán)境中,獎(jiǎng)勵(lì)值變化范圍也不相同,但是強(qiáng)化學(xué)習(xí)的目標(biāo)就是使總獎(jiǎng)勵(lì)值最大。完成[done(Boolean)]:表示是否需要將環(huán)境重置(env.reset)。在大多數(shù)情況下,當(dāng)done為T(mén)rue時(shí),就表明當(dāng)前回合或者試驗(yàn)結(jié)束。例如,當(dāng)機(jī)器人摔倒或者掉出臺(tái)面時(shí),就應(yīng)當(dāng)終止當(dāng)前回合進(jìn)行重置。信息[info(Dict)]:針對(duì)調(diào)試過(guò)程的診斷信息。在標(biāo)準(zhǔn)的智能體仿真評(píng)估中不會(huì)使用到這個(gè)info。56機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)Gym介紹—倒立擺總結(jié)來(lái)說(shuō),這就是一個(gè)強(qiáng)化學(xué)習(xí)的基本流程,在每個(gè)時(shí)間點(diǎn)上,智能體(可以認(rèn)為是所寫(xiě)的算法)選擇一個(gè)動(dòng)作,環(huán)境返回上一次動(dòng)作的觀測(cè)和獎(jiǎng)勵(lì),如圖12-13所示。57機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)懸崖尋路一、懸崖尋路的搭建二、構(gòu)建智能體ε-greedy策略選擇動(dòng)作設(shè)置探索率、學(xué)習(xí)率和折扣因子SARSA算法Q-Learning算法三、比較Sarsa和Q-learning算法機(jī)器學(xué)習(xí)與框架58機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)懸崖尋路運(yùn)動(dòng)規(guī)劃方面,其實(shí)已有很多適用于強(qiáng)化學(xué)習(xí)的仿真環(huán)境,小到迷宮,大到貼近真實(shí)的自動(dòng)駕駛環(huán)境CARLA。本案例講述的是懸崖尋路問(wèn)題,是指在一個(gè)4×12的網(wǎng)格中,智能體以網(wǎng)格的左下角位置為起點(diǎn),以網(wǎng)格的右下角位置為終點(diǎn),目標(biāo)是移動(dòng)智能體從起點(diǎn)位置到達(dá)終點(diǎn)位置,智能體每次可以在上、下、左、右這4個(gè)方向中移動(dòng)一步,每移動(dòng)一步會(huì)得到?1單位的獎(jiǎng)勵(lì)。如圖所示,紅色部分表示懸崖,數(shù)字代表智能體能夠觀測(cè)到的位置信息,即observation,會(huì)有0~47共48個(gè)不同的值,智能體在移動(dòng)中會(huì)有以下限制。59機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)懸崖尋路一、環(huán)境的搭建定義了該環(huán)境的高度為4和寬度為12,定義了四個(gè)動(dòng)作:向上、向下、向左、向右,并將它們分別用整數(shù)0、1、2、3表示。stateActionValues是一個(gè)三維數(shù)組,表示狀態(tài)動(dòng)作價(jià)值函數(shù)(Q函數(shù)),其大小為(WORLD_HEIGHT,WORLD_WIDTH,4),對(duì)應(yīng)于環(huán)境中每個(gè)狀態(tài)和每個(gè)動(dòng)作的值。智能體從起點(diǎn)位置開(kāi)始,根據(jù)選擇的動(dòng)作向上、向下、向左或向右移動(dòng)。如果智能體遇到邊界,那么它將留在原地。如果智能體遇到懸崖,那么它將受到重大懲罰并回到起點(diǎn)位置。如果智能體到達(dá)終點(diǎn)位置,那么游戲結(jié)束。以下代碼定義了一個(gè)簡(jiǎn)單的格子世界環(huán)境,其中智能體可以在4×12的格子中向上、向下、向左或向右移動(dòng)。代碼初始化了一個(gè)三維數(shù)組stateActionValues來(lái)存儲(chǔ)每個(gè)狀態(tài)和動(dòng)作的值(Q函數(shù)),以及初始化了一個(gè)三維數(shù)組actionRewards來(lái)存儲(chǔ)每個(gè)動(dòng)作的即時(shí)獎(jiǎng)勵(lì),其中大部分動(dòng)作的獎(jiǎng)勵(lì)為?1,而掉入懸崖的獎(jiǎng)勵(lì)為?100。代碼中定義了一個(gè)step函數(shù),它根據(jù)當(dāng)前狀態(tài)和選擇的動(dòng)作來(lái)確定下一個(gè)狀態(tài)和獲得的獎(jiǎng)勵(lì)。如果智能體到達(dá)邊界,那么它將停留在原地;如果智能體到達(dá)懸崖,那么它將受到重大懲罰并重置到起點(diǎn)位置;如果智能體到達(dá)終點(diǎn)位置,那么游戲結(jié)束。這個(gè)函數(shù)模擬了智能體在環(huán)境中的一步動(dòng)作及其結(jié)果。60機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)懸崖尋路61機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)懸崖尋路二、構(gòu)建智能體ε-貪心策略選擇動(dòng)作:智能體使用ε-貪心策略在給定狀態(tài)下選擇動(dòng)作。智能體根據(jù)ε-貪心策略進(jìn)行動(dòng)作選擇,即在探索和利用之間進(jìn)行權(quán)衡。以下代碼定義了一個(gè)名為chooseAction的函數(shù),它實(shí)現(xiàn)了ε-貪心策略來(lái)選擇動(dòng)作。函數(shù)接收當(dāng)前狀態(tài)、狀態(tài)動(dòng)作價(jià)值函數(shù)和探索率ε作為輸入。如果隨機(jī)數(shù)生成器產(chǎn)生的值小于或等于ε,那么函數(shù)將從所有可能的動(dòng)作中隨機(jī)選擇一個(gè)動(dòng)作,以進(jìn)行探索;否則,它將選擇當(dāng)前狀態(tài)下價(jià)值最高的動(dòng)作以進(jìn)行利用。這個(gè)函數(shù)幫助智能體在探索新動(dòng)作和利用已知最佳動(dòng)作之間做出決策。62機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)懸崖尋路2.設(shè)置探索率、學(xué)習(xí)率和折扣因子EPSILON:探索率,用于平衡探索和利用。它確定了在每一步中選擇探索性動(dòng)作的概率。在ε-貪心策略中,ε表示以ε的概率進(jìn)行探索,以1?ε的概率進(jìn)行利用。在給定狀態(tài)下,以概率ε選擇一個(gè)隨機(jī)動(dòng)作,以概率1?ε選擇價(jià)值函數(shù)最大的動(dòng)作。ALPHA:學(xué)習(xí)率,用于控制更新價(jià)值函數(shù)時(shí)保留歷史信息的程度。它決定了新的真實(shí)值對(duì)之前學(xué)到的值的影響程度。較大的學(xué)習(xí)率意味著新的真實(shí)值對(duì)價(jià)值函數(shù)的影響較大,而較小的學(xué)習(xí)率意味著較多地保留歷史信息。GAMMA:折扣因子,用于衡量未來(lái)獎(jiǎng)勵(lì)的重要性。它表示了在當(dāng)前動(dòng)作后的未來(lái)獎(jiǎng)勵(lì)的折現(xiàn)率。較大的折扣因子意味著智能體更關(guān)注未來(lái)的獎(jiǎng)勵(lì),而較小的折扣因子意味著智能體更多地關(guān)注即時(shí)獎(jiǎng)勵(lì)。以上參數(shù)的取值如下。EPSILON=0.1ALPHA=0.5GAMMA=1.063機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)懸崖尋路3.SARSA算法64機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)懸崖尋路4.Q-Learning算法65機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)懸崖尋路多次運(yùn)行SARSA算法和Q-Learning算法,對(duì)于每次運(yùn)行,記錄累積獎(jiǎng)勵(lì)到對(duì)應(yīng)的獎(jiǎng)勵(lì)數(shù)組中,再得到平均獎(jiǎng)勵(lì)。使用滑動(dòng)窗口平均方法對(duì)獎(jiǎng)勵(lì)進(jìn)行平滑處理,以減小曲線的波動(dòng)性。以下代碼執(zhí)行了SARSA算法和Q-Learning算法的多次運(yùn)行,并記錄了每次運(yùn)行的累積獎(jiǎng)勵(lì)。66機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)懸崖尋路三、比較SARSA、Q-Learning獎(jiǎng)勵(lì)曲線圖如圖12-15所示,SARSA算法和Q-Learning算法都顯示出,隨著訓(xùn)練的進(jìn)行,平均獎(jiǎng)勵(lì)有所提高,但是兩者的變化趨勢(shì)略有不同。SARSA算法的獎(jiǎng)勵(lì)曲線相對(duì)平滑,波動(dòng)較小,表明它可能對(duì)環(huán)境的變化更加穩(wěn)健。Q-Learning算法的獎(jiǎng)勵(lì)曲線波動(dòng)較大,盡管最終也趨于穩(wěn)定,但是在訓(xùn)練過(guò)程中表現(xiàn)出一些劇烈的起伏,這可能是其更新策略引起的。SARSA算法在開(kāi)始階段收斂較快,從最初的負(fù)獎(jiǎng)勵(lì)迅速上升到接近于0附近,然后在一段時(shí)間內(nèi)波動(dòng)較小地保持在該水平上。Q-Learning算法在開(kāi)始階段也有相似的快速上升,但波動(dòng)更加明顯,并且收斂到較高水平花費(fèi)了更短的時(shí)間。67機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)蛇棋實(shí)戰(zhàn)蛇棋(SnakeandLadder)是一種古老的棋盤(pán)游戲,也被稱為“滑梯與梯子”或“蛇梯棋”。蛇棋游戲通常由一個(gè)方形棋盤(pán)組成,棋盤(pán)上劃分有等距的格子,每個(gè)格子上都有一個(gè)數(shù)字,代表玩家在抵達(dá)該格子時(shí)需要前進(jìn)的步數(shù)。游戲中通常會(huì)繪制一些“蛇”和“梯子”,它們連接著棋盤(pán)上的不同格子。參與游戲者輪流擲骰子,得到多少點(diǎn)數(shù)就走幾步,如果遇到梯子(梯底)可以往上爬到梯子的上面,一下子前進(jìn)很多步;但是如果遇到蛇頭,表示遭蛇吻,就回到蛇尾那格。勝負(fù)由誰(shuí)先走到終點(diǎn)決定,注意如果在終點(diǎn)附近,擲出的骰子點(diǎn)數(shù)超過(guò)到達(dá)終點(diǎn)的步數(shù),則必須往回走,只有點(diǎn)數(shù)與到達(dá)終點(diǎn)的步數(shù)吻合才算取得勝利。我們以這個(gè)游戲作為強(qiáng)化學(xué)習(xí)應(yīng)用的實(shí)戰(zhàn)案例。蛇棋中的棋盤(pán)和游戲規(guī)則是既定的,勝利規(guī)則也是既定的,即狀態(tài)空間和目標(biāo)是確定的。游戲中唯一變化的就是擲骰子。通常認(rèn)為擲骰子是一個(gè)完全隨機(jī)的動(dòng)作,但實(shí)際上,每個(gè)人擲骰子的狀態(tài)、手法和方式都不相同,可以認(rèn)為骰子各個(gè)面的概率不同。機(jī)器學(xué)習(xí)與框架68機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)蛇棋實(shí)戰(zhàn)基于此,可以假設(shè)玩家可以通過(guò)不同投擲骰子的方法來(lái)控制游戲。假設(shè)玩家的手法包含兩種:一種可以均勻的投擲出1-6這6個(gè)數(shù)字;另一種可以均勻的投擲出1-3這3個(gè)數(shù)字。這樣玩家在每個(gè)狀態(tài)下都有2種選擇,即強(qiáng)化學(xué)習(xí)的動(dòng)作空間大小為2。也可以理解為,在每個(gè)狀態(tài)玩家都有2種骰子可供選擇,一種只有3面,另一種骰子有6面。蛇棋游戲的目標(biāo)是最少的投擲次數(shù)快速到達(dá)終點(diǎn)。為此,玩家最好能更多地乘坐梯子上升,以便快速到達(dá)終點(diǎn)。游戲中,會(huì)用一些數(shù)字或者得分來(lái)記錄獎(jiǎng)勵(lì)值。這里約定,玩家投擲一次骰子,如果沒(méi)有到達(dá)終點(diǎn),將獲得-1分;到達(dá)終點(diǎn)后,將一次性獲得100分。這樣先達(dá)到終點(diǎn)的玩家一定會(huì)得到最高分,也即獲得了勝利。機(jī)器學(xué)習(xí)與框架69機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)蛇棋實(shí)戰(zhàn)蛇棋環(huán)境的搭建構(gòu)建智能體策略評(píng)估算法策略迭代價(jià)值迭代泛化迭代運(yùn)行結(jié)果機(jī)器學(xué)習(xí)與框架70機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)蛇棋實(shí)戰(zhàn)1.蛇棋環(huán)境的搭建(1)先定義一個(gè)上下文管理器timer,用于計(jì)算代碼塊的執(zhí)行時(shí)間,代碼塊的執(zhí)行時(shí)間將會(huì)被打印出來(lái),幫助評(píng)估后續(xù)設(shè)計(jì)的不同策略的性能和效率。以下代碼定義了一個(gè)名為timer的上下文管理器,它可以用來(lái)測(cè)量任意被with語(yǔ)句包裹的代碼塊的執(zhí)行時(shí)間。當(dāng)進(jìn)入with塊時(shí),它記錄下開(kāi)始時(shí)間,當(dāng)退出with塊時(shí),它記錄下結(jié)束時(shí)間,并計(jì)算兩者之間的差值,即代碼塊的執(zhí)行時(shí)間,最后將這個(gè)時(shí)間差打印出來(lái)。這個(gè)工具可以用來(lái)評(píng)估不同策略的性能和效率。機(jī)器學(xué)習(xí)原理、算法與應(yīng)用-強(qiáng)化學(xué)習(xí)71蛇棋實(shí)戰(zhàn)1.蛇棋環(huán)境的搭建(2)定義了一個(gè)名為SnakeEnv的OpenAIGym環(huán)境,用于模擬蛇棋游戲。兩個(gè)參數(shù)ladder_num和dices,分別表示梯子的數(shù)量和骰子的取值范圍。狀態(tài)空間使用Discrete,表示一個(gè)離散空間,范圍為1到SIZE+1。動(dòng)作空間使用Discrete,表示一個(gè)離散空間,大小為dices列表的長(zhǎng)度。如果有梯子,那么隨機(jī)生成梯子的起點(diǎn)和終點(diǎn),并存儲(chǔ)在self.ladders字典中,起點(diǎn)作為鍵,終點(diǎn)作為值。類中僅考慮了梯子,未考慮蛇的影響。以下代碼定義

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論