強化學習方法分爲Model-free和Model-based方法,那麼這兩種方法的區別在哪:
首先我們定義強化學習中的馬爾可夫決策過程MDP,用四元組表示 :
- :環境的狀態空間
- :agent可選擇的動作空間
- :獎勵函數,返回的值表示在 狀態下執行 動作的獎勵
- : 狀態轉移概率函數,表示從 狀態執行 動作後環境轉移至 狀態的概率
我們的目標是:找到一個策略 能夠最大化我們的對未來獎勵的期望 , 爲 時刻的獎勵, 爲折扣因子,代表距離現在越遙遠的獎勵不如現在的獎勵大
現在,如果我們知道MDP中的所有東西,那麼我們可以不用在環境中做出動作便可直接求解,我們通常稱在執行動作前作出的決策爲規劃(planning),那麼一些經典的規劃算法能夠直接求解MDP問題,包括值迭代和策略迭代等
但是在強化學習中,agent卻不是那麼容易知曉MDP中所有的元素的,比如,agent也許不會知道環境將會如何改變當它執行了一個動作後(狀態轉移概率函數 ),也不會知道它執行這個動作獲得即時的獎勵將會是多少(獎勵函數 ),agent能做的就是:根據自己已有的策略 選擇關於當前狀態 下自己認爲好的動作 ,執行此動作給環境,觀察環境給出的反饋 和下一個狀態 ,並根據這個反饋 調整更新自己的策略 ,這樣反覆迭代,直到找到一種 最優的策略 能夠最大限度獲得正反饋
那麼,當agent不知道轉移概率函數 和獎勵函數 ,它是如何找到一個好的策略的呢,當然會有很多方法:
Model-based RL
一種方法就是Model-based方法,讓agent學習一種模型,這種模型能夠從它的觀察角度描述環境是如何工作的,然後利用這個模型做出動作規劃,具體來說,當agent處於 狀態,執行了 動作,然後觀察到了環境從 轉化到了 以及收到的獎勵 , 那麼這些信息能夠用來提高它對 和 的估計的準確性,當agent學習的模型能夠非常貼近於環境時,它就可以直接通過一些規劃算法來找到最優策略,具體來說:當agent已知任何狀態下執行任何動作獲得的回報,即 已知,而且下一個狀態也能通過 被計算,那麼這個問題很容易就通過動態規劃算法求解,尤其是當 時,直接利用貪心算法,每次執行只需選擇當前狀態 下回報函數取最大值的動作( )即可,這種採取對環境進行建模的強化學習方法就是Model-based方法
Model free RL
但是,事實證明,我們有時候並不需要對環境進行建模也能找到最優的策略,一種經典的例子就是Q-learning,Q-learning直接對未來的回報 進行估計, 表示對 狀態下執行動作 後獲得的未來收益總和 的估計,若對這個Q值估計的越準確,那麼我們就越能確定如何選擇當前 狀態下的動作:選擇讓 最大的 即可,而Q值的更新目標由Bellman方程定義,更新的方式可以有TD(Temporal Difference)等,這種是基於值迭代的方法,類似的還有基於策略迭代的方法以及結合值迭代和策略迭代的actor-critic方法,基礎的策略迭代方法一般回合制更新(Monte Carlo Update),這些方法由於沒有去對環境進行建模,因此他們都是Model-free的方法
所以,如果你想查看這個強化學習算法是model-based還是model-free的,你就問你自己這個問題:在agent執行它的動作之前,它是否能對下一步的狀態和回報做出預測,如果可以,那麼就是model-based方法,如果不能,即爲model-free方法