在學習強化學習的過程中,有兩個名詞早晚會出現在我們面前,就是Model-Based 和Model-Free。在一些資料中,我們經常會見到“這是一個Model-Based 的算法”或者“這個方法是典型的Model-Free的算法”的說法。“Model-Based”通常被翻譯成“基于模型”,“Model-Free”通常被翻譯成“無模型”。可能有人會問:為什麼會有這樣兩個算法呢?這就要從它們各自的含義說起。
本文選自《白話強化學習與PyTorch》一書。
“Model-Based”既然被翻譯成“基于模型”,那麼關鍵就在于理解什麼是模型。這裡的“模型”,是我們常說的用機器學習的方法訓練出來的模型嗎?不是。這裡的模型是指,在一個環境中各個狀态之間轉換的概率分布描述。還是以天氣為例。我們想要用“模型”的概念描述天氣(或者說建立一個天氣模型),應該怎麼做呢?首先想辦法建立一個表格,如下表。
左側的縱坐标表示第一天的天氣狀況,上方的橫坐标表示第二天的天氣狀況。經過長期的統計,得到了這樣一個天氣轉移概率表。其中,第3 行第5 列表示在第一天是陰天的情況下第二天有雨的概率。
這就是一個天氣模型。擁有了這樣的模型(Model),我們能做什麼呢?不管是否滿足馬爾可夫特性,隻要有這麼一個模型存在,就必然能夠在初始狀态确定的情況下找出一條滿足特定要求的路徑。隻要模型是确定的,轉移概率就是确定的。隻要轉移概率是确定的,我們就能知道對應于→ ′ 的轉移概率,以及在狀态 下做什麼樣的動作 會有最高的回報值。這樣,一個狀态的估值 (),以及一個狀态下的動作估值 (, ),就比較容易被準确地估計出來了。
在《強化學習研究什麼?用白話講就是……》中,我們提到過一個在四四方方的城市範圍内導航的例子,它就是一個比較典型的規劃問題的例子。
規劃問題(Planning Problem)是運籌學的一個分支,是用于解決決策問題的,或者說,是用于在一定的約束條件下得出最優決策的。規劃問題常用的套路,要麼是解方程組,要麼是解不等式組,并試着求出滿足限制條件的極大值或者極小值。這個導航的例子比較理想化,由于解的空間比較小,我們采用了最為直接的窮舉排序的方式來求出滿足路程成本極小值的路徑。對于解的空間較大,尤其是解的空間是連續值的情況,通常就要使用其他解法了,例如梯度下降(上升)法、模拟退火算法、遺傳算法等(求解一個函數處于極小值時的函數自變量)。
導航的例子中我們曾經說過,由于開啟了“上帝視角”,用GPS 等高科技手段掌握了全城的道路情況,在求解這個問題時,我們根本不需要建立一個含有待定系數的模型、通過正向傳播讓它産生誤差、最終通過最優化的手段把極小值解出來的過程——在這裡,完全沒有使用強化學習的必要。
這就是規劃問題的應用場景了。如果在一個環境中,能夠得到在一個狀态下做某個動作後轉移到另一個狀态的概率,并且清楚地知道在這個過程中獲得的獎勵值的數學期望值,那麼,這個問題就是一個規劃問題。也就是說,可以通過遍曆樹、解方程、解不等式等一列工程方法求一個函數的極小值來獲解,不需要采用機器學習的手段,更不需要采用強化學習的手段。我想,編過代碼、寫過遍曆樹的程序員朋友,一定明白我在說什麼。
理解了Model-Base 的概念,就可以理解Model-Free 的概念了——Model-Base 的對立面。
在前面提到過,如果一個問題看起來滿足規劃問題的條件,那就把它當成規劃問題來解決,不需要使用強化學習算法。可是,模型的建立工作由誰來完成呢?如果在環境建立之後沒有人去建立模型,我們就不能進行人工智能手段上的策略探索和學習了嗎?答案是否定的。事實上,情況恰恰相反:有人幫我們做好模型的情況很少出現。在絕大多數場景中,模型是未知的,至少是未曾精确量化的。怎麼辦?其實,這才是強化學習希望得到的更具普适性的方式和方法。
随着學習的深入,你會了解更多的Model-Free 算法。現在,你可以先建立一個基本的印象。例如,Q-Learning 是通過不斷求解一個狀态下的動作估值函數 (, ) 來進行策略學習的,它并沒有采用先根據統計結果做出一個模型再做規劃的方法,而是直接以類似查表的方法,估算 (, )中每個“小格子”的值,從而進行建模和求解的。這個思路是很好的——我們不是“先知”,怎麼知道模型長什麼樣?因此,采用一個直觀的方法來解決問題會更靠譜。
《白話強化學習與PyTorch》一書将帶你緊扣Model-Free 思想下的算法族和算法體系進行讨論,這些都是理解強化學習思維的重點。
本書希望服務的讀者,主要是對強化學習感興趣,但掌握的知識比較有限的讀者,因此,隻能在有限的篇幅内進行适當的取舍,以強化學習為主線,串聯講解必須掌握的知識點,并通過前後呼應的方式讓讀者跟随書的内容反複學習。隻有這樣,才能盡量避免出現“零零散散地閱讀了一大堆概念,但在腦子裡還是無法将它們聯系起來”的問題。
希望在閱讀過程中你會感覺到,這不是一本照本宣科的教條手冊,而是一個能與你一起聊天、一起思考的夥伴。
第1章到第5章 ,講的是傳統強化學習的研究目标與脈絡,主要介紹了從一個程序員的角度怎麼理解強化學習最為輕松,側重于理解方式的誘導。
第6章到第11章,是本書的核心内容,講的是深度學習的原理、PyTorch框架的基本知識及深度強化學習的常用算法模型。
第12章到第15章,講的是擴展性的知識。例如,其他有助于訓練模型的算法思路,第三方工具插件,可供實驗的環境,一些有趣的強化學習算法和觀點,甚至模型落地過程中的優化與壓縮。
附錄A中詳細記載了本書涉及的各種軟件環境的安裝和配置過程。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!