1. 程式人生 > >人工智障學習筆記——強化學習(3)蒙特卡洛方法

人工智障學習筆記——強化學習(3)蒙特卡洛方法

上一章我們瞭解了馬爾可夫決策過程的動態規劃方法,但是動態要求一個完全已知的環境模型,這在現實中是很難做到的。另外,當狀態數量較大的時候,動態規劃法的效率也將是一個問題。所以本章我們引用一種不需要完整的環境模型的方法概念——蒙特卡羅方法。

蒙特卡洛是一個賭城的名字。又叫統計模擬方法,它使用隨機數(或偽隨機數)來解決計算的問題,是一類重要的數值計算方法。相對於確定性的演算法,蒙特卡洛方法是基於抽樣資料來計算結果。

蒙特卡洛方法在強化學習中的基本思路為:模擬 -> 抽樣 -> 估值。我們已知強化學習的目的是得到最優策略。蒙特卡羅方法僅僅需要經驗就可以求解最優策略,這些經驗可以線上獲得或者根據某種模擬機制獲得。我們僅將蒙特卡羅方法定義在episode task上,所謂的episode task就是指不管採取哪種策略π,都會在有限時間內到達終止狀態並獲得回報的任務。比如玩棋類遊戲,在有限步數以後總能達到輸贏或者平局的結果並獲得相應回報。所謂經驗其實就是訓練樣本。比如在初始狀態s,遵循策略π,最終獲得了總回報R,這就是一個樣本。如果我們有許多這樣的樣本,就可以估計在狀態s下,遵循策略π的期望回報,也就是狀態值函式Vπ(s)了。蒙特卡羅方法就是依靠樣本的平均回報來解決增強學習問題的。

策略評估迭代過程:
1. 探索 - 選擇一個狀態(s, a)。
2. 模擬 - 使用當前策略π,進行一次模擬,從當前狀態(s, a)到結束,隨機產生一段情節(episode)。
3. 抽樣 - 獲得這段情節上的每個狀態(s, a)的回報G(s,a),記錄G(s,a)到集合Returns(s,a)。
4. 估值 - q(s, a) = Returns(s, a)的平均值。
(因為狀態(s, a)可能會被多次選擇,所以狀態(s, a)有一組回報值。)

策略優化 - 使用新的行動價值q(s,a)優化策略π(s)。

策略評估迭代步驟一般會針對所有的狀態-行動,或者一個起始(s0,a0)下的所有狀態-行動。這也說明持續探索(continual exploration)是蒙特卡洛方法的主題。模擬過程 - 會模擬到結束。是前進式的,隨機選擇下一個行動,一直前進到結束為止。因此可以看出蒙特卡洛方法需要大量的迭代,才能正確的找到最優策略。策略評估是計算行動價值(q(s,a))。

蒙特卡羅策略估計(Monte Carlo Policy evalution)

首先考慮用蒙特卡羅方法來學習狀態值函式Vπ(s)。估計Vπ(s)的一個明顯的方法是對於所有到達過該狀態的回報取平均值。這裡又分為first-visit MC methods和every-visit MC methods。這裡,我們只考慮first MC methods,即在一個episode內,我們只記錄s的第一次訪問,並對它取平均回報。當我們經過無窮多的episode後,Vπ(s)的估計值將收斂於其真實值。

動作值函式的MC估計(Mote Carlo Estimation of Action Values)

在狀態轉移概率p(s'|a,s)已知的情況下,策略估計後有了新的值函式,我們就可以進行策略改進了,只需要看哪個動作能獲得最大的期望累積回報就可以。然而在沒有準確的狀態轉移概率的情況下這是不可行的。為此,我們需要估計動作值函式Qπ(s,a)。Qπ(s,a)的估計方法前面類似,即在狀態s下采用動作a,後續遵循策略π獲得的期望累積回報即為Qπ(s,a),依然用平均回報來估計它。有了Q值,就可以進行策略改進了。


持續探索(Maintaining Exploration)

我們通過一些樣本來估計Q和V,並且在未來執行估值最大的動作。這裡就存在一個問題,假設在某個確定狀態s0下,能執行a0, a1, a2這三個動作,如果智慧體已經估計了兩個Q函式值,如Q(s0,a0), Q(s0,a1),且Q(s0,a0)>Q(s0,a1),那麼它在未來將只會執行一個確定的動作a0。這樣我們就無法更新Q(s0,a1)的估值和獲得Q(s0,a2)的估值了。這樣的後果是,我們無法保證Q(s0,a0)就是s0下最大的Q函式。Maintaining Exploration的思想很簡單,就是用soft policies來替換確定性策略,使所有的動作都有可能被執行。比如其中的一種方法是ε-greedy policy,即在所有的狀態下,用1-ε的概率來執行當前的最優動作a0,ε的概率來執行其他動作a1, a2。這樣我們就可以獲得所有動作的估計值,然後通過慢慢減少ε值,最終使演算法收斂,並得到最優策略。簡單起見,在下面MC控制中,我們使用exploring start,即僅在第一步令所有的a都有一個非零的概率被選中。

蒙特卡羅控制(Mote Carlo Control)

MC版本的策略迭代過程:


值函式Qπ(s,a)的估計值需要在無窮多episode後才能收斂到其真實值。這樣的話策略迭代必然是低效的。我們看動態規則的值迭代演算法,每次都不用完整的策略估計,而僅僅使用值函式的近似值進行迭代,這裡也用到了類似的思想。每次策略的近似值,然後用這個近似值來更新得到一個近似的策略,並最終收斂到最優策略。這也就是我們常說的廣義策略迭代思想。即:在每個episode後都重新估計下動作值函式(儘管不是真實值),然後根據近似的動作值函式,進行策略更新。

總結:

蒙特卡洛方法的適用條件:1.環境是可模擬的:在實際的應用中,模擬容易實現。相對的,瞭解環境的完整知識反而比較困難。由於環境可模擬,我們就可以抽樣。2.只適合情節性任務(episodic tasks)因為,需要抽樣完成的結果,只適合有限步驟的情節性任務。儘管蒙特卡羅方法和動態規劃方法存在諸多不同,但蒙特卡羅方法也借鑑了很多動態規劃中的思想。比如他們都是首先進行策略估計,計算特定策略π對應的Vπ和Qπ,然後進行策略改進,最終形成策略迭代。

相關推薦

人工學習筆記——強化學習(3)蒙特卡洛方法

上一章我們瞭解了馬爾可夫決策過程的動態規劃方法,但是動態要求一個完全已知的環境模型,這在現實中是很難做到的。另外,當狀態數量較大的時候,動態規劃法的效率也將是一個問題。所以本章我們引用一種不需要完整的環境模型的方法概念——蒙特卡羅方法。蒙特卡洛是一個賭城的名字。又叫統計模擬方

Python機器學習筆記——強化學習

【啊啊啊強化學習真的啥都不懂……Orz】 s∈S:有限狀態state集合,s表示某個特定狀態 a∈A:有限動作action集合,a表示某個特定動作 馬爾可夫決策過程(MarkovDecision Process) 智慧體(agent)根據當前對環境的觀察採取動作獲得環

機器學習筆記——強化學習

1.什麼是強化學習? 現在的機器學習演算法中,大多都是學習怎麼做。而強化學習則是在不斷嘗試的過程中,尋找在特定情境下選擇哪種行為可以獲得最大回報(Reward)。 .2.強化學習(RL)和監督學習(SL),無監督學習(UL)的關係 (1)監督學習就是給一個訓練集(訓

增強學習筆記 第五章 蒙特卡洛方法

兩個 width 重要 思想 後者 src 兩種方法 預測 eps 5.1 蒙特卡洛預測 分為兩種:First-Visit MC和Every-Visit MC,前者用的更多。後者用於函數近似和Eligibility Traces 5.2 蒙特卡洛評估action valu

人工學習筆記——機器學習(13)LLE降維

一.概念 LLE:Locally linear embedding(區域性線性嵌入演算法)是一種非線性降維演算法,它能夠使降維後的資料較好地保持原有流形結構。LLE可以說是流形學習方法最經典的工作之一。和傳統的PCA,LDA等關注樣本方差的降維方法相比,LLE關注於降維時保

人工學習筆記——機器學習(4)支援向量機

一.概念 支援向量機(Support Vector Machine),簡稱SVM。是常見的一種判別方法。在機器學習領域,是一個有監督的學習模型,通常用來進行模式識別、分類以及迴歸分析。 SVM的主要思想可以概括為兩點: 1.它是針對線性可分情況進行分析,對於線性不可分的情況

人工學習筆記——梯度下降(2)優化演算法

四、優化 4-1 Momentum 如果我們把梯度下降法當作小球從山坡到山谷的一個過程,那麼在小球滾動時是帶有一定的初速度,在下落過程,小球積累的動能越來越大,小球的速度也會越滾越大,更快的奔向谷底,受此啟發就有了動量法 Momentum。 動量的引入是為了加速SG

人工學習筆記——機器學習(12)LDA降維

一.概念LDA:Linear Discriminant Analysis (也有叫做Fisher Linear Discriminant)。與PCA一樣,是一種線性降維演算法。不同於PCA只會選擇資料變化最大的方向,由於LDA是有監督的(分類標籤),所以LDA會主要以類別為

人工學習筆記——機器學習(11)PCA降維

一.概念 Principal Component Analysis(PCA):主成分分析法,是最常用的線性降維方法,它的目標是通過某種線性投影,將高維的資料對映到低維的空間中表示,即把原先的n個特徵用數目更少的m個特徵取代,新特徵是舊特徵的線性組合。並期望在所投影的維度上資

人工學習筆記——機器學習(7)FM/FFM

一.概念 FM(分解機模型)和FFM(基於域的分解機模型)是最近幾年提出的模型,主要用於預估CTR/CVR,憑藉其在資料量比較大並且特徵稀疏的情況下,仍然能夠得到優秀的效能和效果的特性,屢次在各大公司舉辦的CTR預估比賽中獲得不錯的戰績。 二.原理 FM(Factoriz

人工學習筆記——機器學習(15)t-SNE降維

一.概念 t-SNE(t分佈隨機鄰域嵌入)是一種用於探索高維資料的非線性降維演算法。它將多維資料對映到適合於人類觀察的兩個或多個維度。 t-SNE主要包括兩個步驟:第一、t-SNE構建一個高維物件之間的概率分佈,使得相似的物件有更高的概率被選擇,而不相似的物件有較低的概率被

人工學習筆記——深度學習(2)卷積神經網路

上一章最後提到了多層神經網路(deep neural network,DNN),也叫多層感知機(Multi-Layer perceptron,MLP)。 當下流行的DNN主要分為應對具有空間性分佈資料的CNN(卷積神經網路)和應對具有時間性分佈資料的RNN(遞迴神經網路,又

機器學習人工(5):決策樹與隨機森林

一、從LR到決策樹   1.總體流程與核心問題     (1)決策樹是基於樹的結構進行決策:       每個“內部節點”對應於某個屬性上的“測試”       每個分支對應於該測試的一種可能結果(即該屬性上的每個取值)       每個葉節點對應於一個預測結果     (2)學習過程:通過對訓練

強化學習筆記】4.3 無模型的強化學習方法-蒙特卡羅演算法與重要性取樣

異策略與重要性取樣 因為異策略中的行動策略和目標策略不一樣,也就是說行動策略產生的資料分佈與目標策略的資料分佈存在偏差,即即行動策略的軌跡概率分佈和改善策略的軌跡概率分佈不一樣,因此在使用資料進行目標策略評估的時候需要考慮該影響,常用的方法是重要性取樣

【extjs6學習筆記】0.3 準備: 類庫結構2

.cn ext 類庫 分享 nbsp image img extjs6 extjs 【extjs6學習筆記】0.3 準備: 類庫結構2

《solidity學習筆記》chapter 3-solidity其他知識

solidityOwnable contractsOpenZeppelin Solidity庫裏的合約之一,可以通過繼承使用。/** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic

[吳恩達機器學習筆記]15.1-3非監督學習異常檢測算法/高斯回回歸模型

閾值 訓練集 jpg -a 情況 color 訓練 ase 需要 15.異常檢測 Anomaly detection 覺得有用的話,歡迎一起討論相互學習~Follow Me 15.1問題動機 Problem motivation 飛機引擎異常檢測 假想你是一個飛機引擎制造

強化學習(RLAI)讀書筆記第五章蒙特卡洛方法

第五章:蒙特卡洛方法 和前幾章講的不一樣,蒙特卡洛方法不需要對環境進行完全的建模,而只需要經驗,也就是實際或者模擬的與環境進行互動的整個樣本序列,包括狀態動作和反饋資訊。從實際互動中學習並不需要對環境建模,而從模擬互動中學習也只需要能夠產生相應的轉移樣本而不是完整的環境狀態轉移概率分佈。而且很多

rust學習筆記基礎篇3--陣列,切片,元組的變數宣告(霜之小刀)

rust學習筆記基礎篇3–陣列,切片,元組的變數宣告(霜之小刀) 歡迎轉載和引用,若有問題請聯絡 若有疑問,請聯絡 Email : [email protected] QQ:2279557541 陣列指的是一組型別必須相同,個數不變的組合 切

C++程式設計學習筆記 複習/拾遺 3

拷貝建構函式與解構函式 字串函式 例4.1:類中資料成員是字串 #include <iostream> #include <cstring>//字串函式宣告所在的標頭檔案 using namespace std; class HelloWorld { pri