1. 程式人生 > >David Silver強化學習課程筆記(八)(下)

David Silver強化學習課程筆記(八)(下)

第八課(下):基於Simulation的搜尋方法

        在《第八課(上):學習與規劃的結合》中,我們講到了Model-Based RL方法,在該方法中,我們首先擬合得到一個模型,然後可以利用各種規劃方法進行規劃,或者,可以引申出Sample-Based Planning,也即我們並不是去採用貝爾曼方程計算,而是用模型進行取樣,然後利用Model-Free方法進行學習。本文中要講的Simulation-Based Search與Sample-Based Planning有著異曲同工之妙,值得注意的是,這裡的Simulation-Based Search仍然是一種結合Model-Free RL與Model-Based RL的強化學習方法

        首先,我們來理解一下,什麼是Simulation-Based Search?兩大要素,一是simulation,一是search。

        simulation指的是用模型去取樣,不過這些樣本有一個共同點,就是從同一個狀態開始轉移,這與Sample-Based Planning是不一樣的。從前面的AB Example中可以看出來我們是從隨機初始化狀態開始進行取樣的,因為最終我們需要計算V(A)、V(B),如果僅僅從B開始轉移,那麼我們甚至得不到對於V(A)的估計,所以是片面的。當我們從同一個狀態s開始進行了N次實驗之後,我們就可以將其連成一棵以s為根節點的樹,用於search。

        search從字面意義來講,就是搜尋,在simulation中,我們構建了一棵以當前狀態為根節點的樹,並由此選擇動作的過程便叫做search。

        先來看看前向搜尋(Forward Search)。前向搜尋演算法通過lookahead來選擇最好的動作,這裡所謂的lookahead表示從當前節點開始完全擴充套件,換句話說,所有情形都在裡面。這種演算法有一個優點:我們不用去求解整個MDP,只需要求解部分MDP(sub-MDP)即可,或者說,我們不需要對所有狀態求得最優策略,而只要對當前狀態求得最優策略。Forward Search示意圖如下:


        如果我們對此引入Simulation,則得到Simulation-Based Search,這樣我們就不用構建完整的樹了,而只需要從樣本中學習:


        這種方法表述如下:


        後面我們將分別對Monte-Carlo Seach和TD search進行介紹。

Monte-Carlo Simulation/Search

        我們知道,所謂Monte-Carlo方法, 是指“當所求解的問題是某種隨機事件出現的概率,或者是某個隨機變數的期望值時,通過某種“實驗”的方法,以這種事件出現的頻率估計這一隨機事件的概率,或者得到這個隨機變數的某些數字特徵,並將其作為問題的解”。我們能夠很容易地想出Monte-Carlo Simulation演算法以及Monte-Carlo Search演算法:



        其中,估計V(s)只是叫做Simulation,而估計Q(s, a)才能叫做Search,因為我們前面說到search表示去尋找並選擇最優動作的過程。如果將Monte-Carlo Search中的最後一步,也即選擇real action的那一步去掉不看,那麼這個演算法可以看作是一個策略估計(policy evaluation)演算法。需要注意的是,這裡估計的策略是simulation policy,而不是real policy,real policy是最後一步得到的貪婪策略。好了,既然說到了策略估計,那我們就會想,是不是有個策略改善(policy improvement)呢?對,沒錯,顯然我們需要對simulation policy進行改進,不然我們的real policy肯定也不咋地。比如說,假設模型是正確或者近似正確的,那麼這個模型就可以被近似看做真實環境,如果我們採取的simulation policy慢慢地改進,變得越來越傾向於選擇return較高的動作,則Q(s, a)也將由對於較差動作的估計變為對於較好動作的估計,比如一開始可能simulation policy裡面沒有較高return的action,那麼Q中也就沒有對這個action的估計,最後的real policy便不可能包括這個較高return的action。所以,對於simulation policy的改進最終將使得我們的real policy得到改進。下面給出Evaluation以及Improve(Simulation)的PPT:


        總結Evaluation:在模擬中從現在(real)的狀態開始,simulate K episodes(用simulation policy),用這些樣本構造搜尋樹,並估計Q(s, a),選擇real action來控制real agent,注意這裡沒有探索,是確定性策略。


        總結Simulation:這頁主要將improve,其中在simulation時有兩種策略,當我們遇到沒有見過的狀態時,使用default policy,而遇到見過的策略時,則使用tree policy。我們會對tree policy進行改進,並且,得到的策略是epsilon-greedy策略,也即隨機性策略。這種方法是有收斂性保證的,Q(s, a)將收斂到最優動作值函式,因而real policy將收斂到最優策略。

        將Evaluation與Improve(Simulation)相結合,可以得到完整的蒙特卡羅樹搜尋演算法(MCTS),也就是大名鼎鼎的AlphaGo中用到的核心演算法。下面以圍棋為例介紹樹的構造過程:


        PPT中講的是V(s)的估計,也即這裡考慮的是我(黑子)當前在狀態s,選擇一個策略,使得值函式V(s)最大,所以說是考慮某個狀態s究竟有多好。不過由於我們是self-play,所以也要為對手(白子)選擇最優策略。選擇先在“腦子”裡面simulate一個episode:


        圖中1/1表示下了一盤棋,並且己方(黑子)贏了,且一開始沒有見過除了Current State之外的狀態,所以均採用Default Policy。圖中的白色塊表示白子落子,雖然對於白子而言是利用某個策略來選擇動作,但對於黑子而言可以當做一個狀態。此時,我們見到了Current state下面的那個白色塊表示的狀態,所以將其加入到Tree Policy中,繼續執行演算法:


        此時因為只有Tree Policy中只有一個白色塊選擇,所以就直接選這個作為後續狀態,但是這個episode卻不像上一步中嘗試該狀態時那樣順利,這次我(黑子)輸了,於是我對這個狀態的評估進行更新,在Tree Policy中將其值函式置為0,不再選用這個狀態。由於Tree Policy是epsilon greedy的,所以可以到達另外的狀態:


        該狀態的simulation表明,我(黑子)贏了,所以繼續選擇這一白色塊狀態,並往下搜尋,將該白色塊後續的黑色塊加入Tree Policy中:


        對這個黑色塊進行simulation,發現輸了,置其值函式為0,然後尋找另一個狀態:


        依此類推,得到一個Tree Policy,用於對Current state進行決策。總的來說,這種方法就是將整個對局放在心中,不過一般是一步一步來,走一步a,到s,再按照上述步驟建樹,這就是MCTS。這種演算法的優點為:


        其中較為值得注意的是,“動態擴充套件樹”,只評估現在的狀態。

        說了這麼久,說的是MC Search,下面我們介紹TD Search

        TD Search也是一種Simulation-Based Search方法,與MC Search不同的是,這種方法使用TD代替了MC,有著bootstrapping的特點。在MCTS中我們從當前開始對於sub-MDP應用MC control,而TD Search則是從當前開始對sub-MDP應用Sarsa。可見,在TD Search中,每個simulation episode中都將一直更新,而不是episode結束才更新:


        搜尋樹與值函式估計方法的聯絡:


        這張PPT表明,Search Tree使用的是查詢表的估計方法,但與一般的model-free強化學習不同,因為它是simulation-based search,所以會稍微不那麼naive,不過對於一個較大的搜尋空間,值函式估計還是必要的。由此,PPT引出了Linear TD Search:


        採用線性值函式估計器代替查詢表估計方法,從而使之能夠處理較大的搜尋空間。

        上一篇文章中我們講過了Dyna結構,該結構的想法是,我們不僅僅可以從real experience中學習,我們還可以利用simulation來促進學習。Dyna-2結構的核心想法也很類似,這裡我們考查Dyna-2結構:


        在這種結構中,我們的智慧體維持了兩組權重,一組處理Long-term memory,一組處理Short-term memory(working memory)。其中Long-term memory用real experience進行更新,而Short用simulated experience進行更新,因為長期記憶一般是普適性的,所以要求比較準確,而短期記憶用於即時決策,所以用當前狀態通過simulation構建得到的搜尋樹來進行決策。由於一組權重對應一個值函式,所以在Dyna-2中我們有兩個值函式,利用real experience對應的值函式V1(s)告訴我們在實際場景中,我們所預估的期望回報,而simulated experience對應的值函式V2(s)則是從搜尋樹中估計得到的預期回報,這是短期的。假設我們在攀巖,那麼V1(s)表明,根據以往攀巖的經歷(real experience),我們當前的這個位置(某條路線上的一個點)將會觸發較高的期望回報,從而給我們一個大局觀;而V2(s)通過simulate後面的路線(或者說放手的位置),發現這塊石頭鬆了,不能借力,那塊石頭很牢固,從而給我們一個後續行為的區域性引導。最終,我們的值函式是這兩個值函式的和。

        給出Dyna-2結構的Linear TD演算法如下:




        在上面4張PPT中,前兩張表示從real experience中學習Long-term memory,而後兩張表示從simulated experience中學習Short-term memory,從示例圖中可以看出,Long-term memory學的是大局觀,是從真實(real)的以往的經驗中學到(learning)的,要長期記住(long-term)的東西,而Short-term memory學的是後續行為的區域性引導,或者說是具體實施細節,是從虛擬(simulated)的當前(構想)的經驗(或者說是樣本更確切,因為說經驗總像是real experience一樣)搜尋(search)得來的東西。整理這句話如下:

        Long-term memory學的是大局觀,是從真實的以往的經驗中學到的,要長期記住的東西,而Short-term memory學的是後續行為的區域性引導,或者說是具體實施細節,是從虛擬的當前(構想)的經驗中搜尋得來的東西。

        好了,時間也不早了,本文就聊到這裡,週末愉快~

相關推薦

David Silver強化學習課程筆記

第八課(下):基於Simulation的搜尋方法         在《第八課(上):學習與規劃的結合》中,我們講到了Model-Based RL方法,在該方法中,我們首先擬合得到一個模型,然後可以利用各種規劃方法進行規劃,或者,可以引申出Sample-Based Plann

David Silver強化學習課程筆記

第五課:模型無關的控制         本文主要介紹模型無關的控制,包括同策略方法(On-Policy,也譯作“在策略”)和異策略(Off-Policy,也譯作“離策略”)方法,由於是模型無關,因此本文聊的是學習(learning),而不是規劃(planning)。   

David Silver強化學習課程筆記

第三課:動態規劃        課程標題本來是“Planning by Dynamic Programming”,應該翻譯為”利用動態規劃方法進行規劃“,但是感覺有點長,所以就使用”動態規劃“作為標題,大家理解就好......        先說下這節課講的主要內容,主要有:

David Silver強化學習課程筆記

        大家好,我是微念。         國慶這些天大致學習了一下David Silver的強化學習課程,感覺挺受用的,大家可以去百度雲盤(無字幕版本)下載視訊,或者去B站搜尋觀看(有字幕版本),課程課件下載地址為David Silver課程課件。       

David Silver強化學習公開課:馬爾科夫決策過程

在強化學習中,馬爾科夫決策過程(Markov decision process, MDP)是對完全可觀測的環境進行描述的,也就是說觀測到的狀態內容完整地決定了決策的需要的特徵。幾乎所有的強化學習問題都可以轉化為MDP。本講是理解強化學習問題的理論基礎。 馬爾科夫過程 M

David Silver強化學習公開課:不基於模型的預測

簡介 Introduction 通過先前的講解,我們明白瞭如何從理論上解決一個已知的MDP:通過動態規劃來評估一個給定的策略,並且得到最優價值函式,根據最優價值函式來確定最優策略;也可以直接進行不基於任何策略的狀態價值迭代得到最優價值函式和最優策略。 從本講開始將花連續兩

David Silver 強化學習Lecture3:Dynamic Programming

    David Silver 強化學習系列部落格的內容整理自David Silver 強化學習的PPT和知乎葉強強化學習專欄。 1 Introduction 1.1 What is Dynamic Programming?     Dynami

David Silver 強化學習Lecture4:Model-Free Prediction

    David Silver強化學習系列部落格的內容整理自David Silver 強化學習的PPT和知乎葉強強化學習專欄。 1 Introduction     前三節筆記中,通過動態規劃能夠解決環境已知的MDP問題,也就是已知<S,A,P,

David Silver強化學習Lecture1:強化學習簡介

優化 計算 rod 簡介 因此 roc 課件 布局 表示 課件:Lecture 1: Introduction to Reinforcement Learning 視頻:David Silver深度強化學習第1課 - 簡介 (中文字幕) 強化學習的特征 作為機器學習的

Andrew Ng機器學習課程筆記之神經網絡

sca 優化 介紹 www 之間 output 現在 利用 href Andrew Ng機器學習課程筆記(四)之神經網絡 版權聲明:本文為博主原創文章,轉載請指明轉載地址 http://www.cnblogs.com/fydeblog/p/7365730.html 前言

神經網路與深度學習課程筆記第三、四周

接著學習吳恩達老師第三、四周的課程。(圖片均來自吳恩達老師課件)   第三週 1. 普通的淺層網路                        

神經網路與深度學習課程筆記第一、二週

   之前結束了吳恩達老師的機器學習的15節課,雖然看得很艱辛,但是也算是對於機器學習的理論有了一個入門,很多的東西需要不斷的思考以及總結。現在開始深度學習的學習,仍然做課程筆記,記錄自己的一些收穫以及思考。   第一週 1. ReLU (Rectified

吳恩達機器學習課程筆記02——處理房價預測問題梯度下降演算法詳解

  建議記住的實用符號 符號 含義 m 樣本數目 x 輸入變數 y 輸出變數/目標變數

Elam的吳恩達深度學習課程筆記

記憶力是真的差,看過的東西要是一直不用的話就會馬上忘記,於是乎有了寫部落格把學過的東西儲存下來,大概就是所謂的集鞏固,分享,後期查閱與一身的思想吧,下面開始正題 深度學習概論 什麼是神經網路 什麼是神經網路呢,我們就以房價預測為例子來描述一個最簡單的神經網路模型。   假設有6間

斯坦福深度學習課程筆記

損失函式和優化 官網 ppt 1 損失函式 損失函式是用來定量地分析我們的模型預測效果有多糟糕的函式。損失函式輸出值越大,代表我們的模型效果越糟糕。 損失函式的通用表示: 假設我們的資料集有N個樣本,{(xi,yi)}i=1N\{(x_i,y_i)\}^{N}_

機器學習課程筆記2

分類問題(接1) logistic迴歸中的代價函式: 對於原來的迴歸方程, J(θ)=1/m∑1/2(hθ(x)-y)2 與線性迴歸相同,所不同的是線性迴歸中hθ(x)為f(x),logistics中hθ(x)為sigmoid-f(x) 我們先設cost(h

吳恩達Coursera深度學習課程筆記1-1神經網路和深度學習-深度學習概論

這系列文章是我在學習吳恩達教授深度學習課程時為了加深自己理解,同時方便後來對內容進行回顧而做的筆記,其中難免有錯誤的理解和不太好的表述方式,歡迎各位大佬指正並提供建議。1、什麼是神經網路               在簡單的從房屋面積預測價格時,神經網路可以理解為將輸入的房屋

Andrew Ng機器學習課程筆記十三之無監督學習之EM演算法

Preface Jensen’s Inequality(Jensen不等式) Expectation-Maximization Algorithm(EM演算法) Jensen’s Inequality 對於凸函式 令f(x)f(x)為

資源 | UC Berkeley CS 294深度強化學習課程附視訊、學習資料

來源:機器之心本文共4000字,建議閱讀10分鐘。本文主要介紹了課程中的強化學習主題,涉及深度強

Andrew Ng機器學習課程筆記十二之無監督學習之K-means聚類演算法

Preface Unsupervised Learning(無監督學習) K-means聚類演算法 Unsupervised Learning 我們以前介紹的所有演算法都是基於有類別標籤的資料集,當我們對於沒有標籤的資料進行分類時,以前的方