帶你從不同角度了解強(qiáng)化學(xué)習(xí)算法的分類
本文轉(zhuǎn)載自公眾號“讀芯術(shù)”(ID:AI_Discovery)。
本文將介紹強(qiáng)化學(xué)習(xí)算法的分類法,從多種不同角度學(xué)習(xí)幾種分類法。話不多說,大家深呼吸,一起來學(xué)習(xí)RL算法的分類吧!
無模型(Model-Free)VS基于模型(Model-Based)
無模型VS模型分類法 [圖源:作者,OpenAISpinning Up再創(chuàng)作]
RL算法的一種分類方法是詢問代理是否能訪問環(huán)境模型。換言之,詢問環(huán)境會(huì)否響應(yīng)代理的行為。基于這個(gè)觀點(diǎn)有兩個(gè)RL算法的分支:無模型和基于模型。
- 模型RL算法根據(jù)環(huán)境的學(xué)習(xí)模型來選擇最佳策略。
- 無模型RL算法通過代理反復(fù)測試選擇最佳策略。
兩種算法都各有優(yōu)缺點(diǎn),如下表所示:
基于價(jià)值VS 基于政策
RL算法的另一種分類方法是考慮算法優(yōu)化了價(jià)值函數(shù)還是策略。在深入了解之前,我們先了解策略和價(jià)值功能。
(1) 策略
策略π是從狀態(tài)s到動(dòng)作a的映射,其中π(a | s)是在狀態(tài)s時(shí)采取動(dòng)作a的概率。策略可以是確定的,也可以是隨機(jī)的。
假設(shè)我們在玩剪刀石頭布這個(gè)非常簡單的游戲,兩個(gè)人通過同時(shí)執(zhí)行三個(gè)動(dòng)作(石頭/剪刀/布)中的一個(gè)來比輸贏。規(guī)則很簡單:
- 剪刀克布
- 石頭克剪刀
- 布克石頭
把策略看作是迭代的剪刀石頭布
- 確定性策略容易被利用-如果我意識到你出“石頭”較多,那么我可以利用這一點(diǎn),獲得更大贏面。
- 統(tǒng)一的隨機(jī)策略(uniform random policy)最佳—如果你的選擇完全隨機(jī),那我就不知道該采取什么行動(dòng)才能取勝。
(2) 價(jià)值函數(shù)
價(jià)值函數(shù)是根據(jù)對未來回報(bào)(返回值)的預(yù)測來衡量狀態(tài)良好程度的函數(shù)。返回值(Gt)基本等于“折扣”回報(bào)的總和(自t時(shí)起)。

γ ∈ [0,1]是折扣因數(shù)。折扣因數(shù)旨在抵扣未來的回報(bào),有以下幾個(gè)原因:
- 方便數(shù)學(xué)計(jì)算
- 打破狀態(tài)變化圖中的無限循環(huán)
- 未來回報(bào)的高度不確定性(比如股價(jià)變化)
- 未來回報(bào)不能立時(shí)受益(比如人們更愿意當(dāng)下享樂而非十年后)
了解了返回值的概念后,接下來定義價(jià)值函數(shù)的數(shù)學(xué)形式吧!
價(jià)值函數(shù)的數(shù)學(xué)形式有二:

狀態(tài)-動(dòng)作價(jià)值函數(shù)(Q值)是t時(shí)狀態(tài)動(dòng)作組合下的期望返回值:

Q值和價(jià)值函數(shù)之間的區(qū)別是動(dòng)作優(yōu)勢函數(shù)(通常稱為A值):

現(xiàn)在知道了什么是價(jià)值函數(shù)和動(dòng)作-狀態(tài)價(jià)值函數(shù)。接下來學(xué)習(xí)有關(guān)RL算法另一個(gè)分支的更多信息,該分支主要關(guān)注算法優(yōu)化的組件。
價(jià)值算法與策略算法[圖源:作者,David Silver RL課程再創(chuàng)作]
- 價(jià)值RL旨在學(xué)習(xí)價(jià)值/行動(dòng)-價(jià)值函數(shù),以生成最佳策略(即,隱式生成最佳策略);
- 策略RL旨在使用參數(shù)化函數(shù)直接學(xué)習(xí)策略。
- Actor-Critic RL旨在學(xué)習(xí)價(jià)值函數(shù)和策略。
下表列出了價(jià)值和策略算法的優(yōu)缺點(diǎn)。

- 價(jià)值算法必須選擇使動(dòng)作-狀態(tài)價(jià)值函數(shù)最大的動(dòng)作,如果動(dòng)作空間非常高維或連續(xù),成本就會(huì)很高,而策略算法是通過直接調(diào)整策略的參數(shù)來運(yùn)行的,不需要進(jìn)行最大化計(jì)算。
- 如果操作不當(dāng) (收斂性質(zhì)差/不穩(wěn)定),價(jià)值算法會(huì)出現(xiàn)一系列問題,而策略算法更穩(wěn)定,收斂性質(zhì)更好,因?yàn)樗鼈冎粚Σ呗蕴荻冗M(jìn)行很少的增量更改。
- 策略算法既可以學(xué)習(xí)確定性策略,也可以學(xué)習(xí)隨機(jī)策略,而價(jià)值算法只能學(xué)習(xí)確定性策略。
- 與價(jià)值算法相比,原本的策略算法速度更慢,方差更大。價(jià)值算法試圖選擇使動(dòng)作-狀態(tài)價(jià)值函數(shù)最大化的動(dòng)作,這將優(yōu)化策略 (運(yùn)算更快、方差更小),策略算法只需幾步,并且更新順暢、穩(wěn)定,但同時(shí)效率較低,有時(shí)會(huì)導(dǎo)致方差變大。
- 策略算法通常收斂于局部最優(yōu)而不是全局最優(yōu)。
策略和非策略算法
還有一種RL算法分類方法是基于策略來源分類。

可以說策略算法是“邊做邊學(xué)”。也就是說該算法試著從π采樣的經(jīng)驗(yàn)中了解策略π。而非策略算法是通過“監(jiān)視”的方式來工作。換句話說,該算法試圖從μ采樣的經(jīng)驗(yàn)中了解策略π。例如,機(jī)器人通過觀察人類的行為來學(xué)習(xí)如何操作。