[強化學習]區分Model-free和Model-based方法

強化學習方法分爲Model-free和Model-based方法,那麼這兩種方法的區別在哪:

首先我們定義強化學習中的馬爾可夫決策過程MDP,用四元組表示<S,A,R,T>

  • S :環境的狀態空間
  • A :agent可選擇的動作空間
  • Rsa :獎勵函數,返回的值表示在s 狀態下執行a 動作的獎勵
  • T(s|s,a) : 狀態轉移概率函數,表示從s 狀態執行a 動作後環境轉移至s 狀態的概率

我們的目標是:找到一個策略π 能夠最大化我們的對未來獎勵的期望E(t=0nγtRt)Rtt 時刻的獎勵,γ 爲折扣因子,代表距離現在越遙遠的獎勵不如現在的獎勵大

現在,如果我們知道MDP中的所有東西,那麼我們可以不用在環境中做出動作便可直接求解,我們通常稱在執行動作前作出的決策爲規劃(planning),那麼一些經典的規劃算法能夠直接求解MDP問題,包括值迭代和策略迭代等

但是在強化學習中,agent卻不是那麼容易知曉MDP中所有的元素的,比如,agent也許不會知道環境將會如何改變當它執行了一個動作後(狀態轉移概率函數T ),也不會知道它執行這個動作獲得即時的獎勵將會是多少(獎勵函數R ),agent能做的就是:根據自己已有的策略π 選擇關於當前狀態s 下自己認爲好的動作a ,執行此動作給環境,觀察環境給出的反饋r 和下一個狀態s ,並根據這個反饋r 調整更新自己的策略π ,這樣反覆迭代,直到找到一種 最優的策略π 能夠最大限度獲得正反饋

那麼,當agent不知道轉移概率函數T 和獎勵函數R ,它是如何找到一個好的策略的呢,當然會有很多方法:

Model-based RL

一種方法就是Model-based方法,讓agent學習一種模型,這種模型能夠從它的觀察角度描述環境是如何工作的,然後利用這個模型做出動作規劃,具體來說,當agent處於s1 狀態,執行了a1 動作,然後觀察到了環境從s1 轉化到了s2 以及收到的獎勵r , 那麼這些信息能夠用來提高它對T(s2|s1,a1)R(s1,a1) 的估計的準確性,當agent學習的模型能夠非常貼近於環境時,它就可以直接通過一些規劃算法來找到最優策略,具體來說:當agent已知任何狀態下執行任何動作獲得的回報,即R(st,at) 已知,而且下一個狀態也能通過T(st+1|st,at) 被計算,那麼這個問題很容易就通過動態規劃算法求解,尤其是當T(st+1|st,at)1 時,直接利用貪心算法,每次執行只需選擇當前狀態st 下回報函數取最大值的動作(maxaR(s,a|s=st) )即可,這種採取對環境進行建模的強化學習方法就是Model-based方法

Model free RL

但是,事實證明,我們有時候並不需要對環境進行建模也能找到最優的策略,一種經典的例子就是Q-learning,Q-learning直接對未來的回報Q(s,a) 進行估計,Q(sk,ak) 表示對sk 狀態下執行動作at 後獲得的未來收益總和E(t=knγkRk) 的估計,若對這個Q值估計的越準確,那麼我們就越能確定如何選擇當前st 狀態下的動作:選擇讓Q(st,at) 最大的at 即可,而Q值的更新目標由Bellman方程定義,更新的方式可以有TD(Temporal Difference)等,這種是基於值迭代的方法,類似的還有基於策略迭代的方法以及結合值迭代和策略迭代的actor-critic方法,基礎的策略迭代方法一般回合制更新(Monte Carlo Update),這些方法由於沒有去對環境進行建模,因此他們都是Model-free的方法

所以,如果你想查看這個強化學習算法是model-based還是model-free的,你就問你自己這個問題:在agent執行它的動作之前,它是否能對下一步的狀態和回報做出預測,如果可以,那麼就是model-based方法,如果不能,即爲model-free方法

Reference

https://www.quora.com/What-is-the-difference-between-model-based-and-model-free-reinforcement-learning

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章