RL关键概念
本文內(nèi)容摘錄自O(shè)penAI的深度強(qiáng)化學(xué)習(xí)資源Spinning Up,進(jìn)入網(wǎng)址。
智能體與環(huán)境
強(qiáng)化學(xué)習(xí)(RL)主要包括智能體(agent)和環(huán)境(environment)兩部分。在智能體與環(huán)境交互的每一步,智能體獲取(或部分獲取)環(huán)境狀態(tài)的一個(gè)觀測(observation),并采取一個(gè)動(dòng)作(action)。環(huán)境會(huì)在智能體作用于它的時(shí)候發(fā)生變化(或者自己變化)。
智能體會(huì)從環(huán)境中獲得獎(jiǎng)勵(lì)(reward),獎(jiǎng)勵(lì)代表了當(dāng)前環(huán)境狀態(tài)的好壞。智能體的目標(biāo)是最大化累計(jì)獎(jiǎng)勵(lì),即回報(bào)(return)。強(qiáng)化學(xué)習(xí)算法就是訓(xùn)練智能體實(shí)現(xiàn)這個(gè)目標(biāo)的方法。
狀態(tài)和觀測
狀態(tài)(state)是環(huán)境狀態(tài)的一個(gè)完整描述,而觀測(observation)是狀態(tài)的一個(gè)部分描述(可能忽略了某些信息)。
比如,在視頻游戲任務(wù)中,狀態(tài)可以是圖像的像素值矩陣;在機(jī)器人控制中,狀態(tài)可以是機(jī)械臂的角度、速度等。
環(huán)境可以分為fully observed和partially observed
- fully observed:智能體可以獲取環(huán)境的完整信息
- partially observed:智能體只能獲取環(huán)境的部分信息
動(dòng)作空間
動(dòng)作空間(action space)是智能體可以執(zhí)行的動(dòng)作的集合,通常分為:
- 離散動(dòng)作空間
- 連續(xù)動(dòng)作空間
策略
策略(policy)是一個(gè)規(guī)則,智能體依據(jù)策略來決定采取什么動(dòng)作。由于策略是智能體的核心,所以常把“策略”與“智能體“混用。
策略可以是確定性的:
a t = μ ( s t ) a_t = \mu(s_t) at?=μ(st?)
μ \mu μ是一個(gè)確定的函數(shù)。也可以是隨機(jī)的:
a t ~ π ( ? ∣ s t ) a_t \sim \pi(\cdot | s_t) at?~π(?∣st?)
π \pi π是一個(gè)概率分布。
在深度RL中,我們討論是參數(shù)化的策略,即策略是根據(jù)一系列參數(shù)(比如神經(jīng)網(wǎng)絡(luò)的權(quán)重與偏置)計(jì)算出來的,因此策略可以寫作:
a t = μ θ ( s t ) a_t = \mu_{\theta}(s_t) at?=μθ?(st?)
a t ~ π θ ( ? ∣ s t ) a_t \sim \pi_{\theta}(\cdot | s_t) at?~πθ?(?∣st?)
1. 確定性策略
例子:假設(shè)狀態(tài)空間是連續(xù)的,我們將observation作為神經(jīng)網(wǎng)絡(luò)的輸入,將神經(jīng)網(wǎng)絡(luò)的輸出作為確定性的動(dòng)作。
2. 隨機(jī)策略
深度RL中最常見的兩種隨機(jī)策略:分類策略和對角高斯策略。前者用于離散動(dòng)作空間,后者用于連續(xù)動(dòng)作空間。
訓(xùn)練與使用隨機(jī)策略的過程中的涉及到兩個(gè)關(guān)鍵計(jì)算:
- 從策略中抽樣動(dòng)作
- 計(jì)算動(dòng)作的對數(shù)似然度 log ? π θ ( a ∣ s ) \log \pi_{\theta}(a|s) logπθ?(a∣s)
(概率 π θ ( a ∣ s ) \pi_{\theta}(a|s) πθ?(a∣s)是大于0的,而 log ? π θ ( a ∣ s ) \log \pi_{\theta}(a|s) logπθ?(a∣s)的取值范圍是 ( ? ∞ , + ∞ ) (-\infty, +\infty) (?∞,+∞),采用對數(shù)可以方便神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,使我們不用關(guān)注“概率>0”這個(gè)約束)
(1)分類策略
分類策略用于離散動(dòng)作空間。訓(xùn)練一個(gè)分類策略就類似于訓(xùn)練一個(gè)分類器:將observation輸入到神經(jīng)網(wǎng)絡(luò),最后一層給出每個(gè)可選動(dòng)作的logit,經(jīng)過softmax得到每個(gè)采取動(dòng)作的概率。
(2)對角高斯策略
對角高斯策略用于連續(xù)狀態(tài)空間。先解釋下對角高斯分布:
多變量高斯分布由均值向量和協(xié)方差矩陣表示。對角高斯分布的協(xié)方差矩陣只在對角線取值不為0,從而可以用一個(gè)向量表示。這里的變量個(gè)數(shù)是動(dòng)作的維度,對角意味著動(dòng)作之間相互獨(dú)立。
在對角高斯策略中,使用一個(gè)神經(jīng)網(wǎng)絡(luò)輸出動(dòng)作的均值向量 μ θ ( s ) \mu_{\theta}(s) μθ?(s),對于協(xié)方差矩陣(方差向量)有兩種生成方法:
-
方法一:使用一個(gè)與狀態(tài)無關(guān)的標(biāo)準(zhǔn)差向量 log ? σ \log \sigma logσ
-
方法二:使用一個(gè)神經(jīng)網(wǎng)絡(luò)將狀態(tài)映射到標(biāo)準(zhǔn)差向量 log ? σ θ ( s ) \log \sigma_{\theta}(s) logσθ?(s)
注:這里使用log也是和上面一個(gè)道理。
有了均值和標(biāo)準(zhǔn)差,可以使用下式來生成動(dòng)作:
a = μ θ ( s ) + σ θ ( s ) ⊙ z a = \mu_{\theta}(s) + \sigma_{\theta}(s) \odot z a=μθ?(s)+σθ?(s)⊙z
其中, ⊙ \odot ⊙表示元素對應(yīng)相乘,z是噪聲向量( z ~ N ( 0 , I ) z \sim \mathcal{N}(0, I) z~N(0,I))。
軌跡
軌跡(trajectory )是狀態(tài)與動(dòng)作的一個(gè)序列,也叫episode或rollout:
τ = ( s 0 , a 0 , s 1 , a 1 , . . . ) \tau = (s_0, a_0, s_1, a_1, ...) τ=(s0?,a0?,s1?,a1?,...)
初始狀態(tài)服從某個(gè)分布: s 0 ~ ρ 0 ( ? ) s_0 \sim \rho_0(\cdot) s0?~ρ0?(?)
狀態(tài)之間的轉(zhuǎn)移只與最近的動(dòng)作有關(guān)(馬爾科夫性)。可以是確定性的:
s t + 1 = f ( s t , a t ) s_{t+1} = f(s_t, a_t) st+1?=f(st?,at?)
也可以是隨機(jī)的:
s t + 1 ~ P ( ? ∣ s t , a t ) s_{t+1} \sim P(\cdot|s_t, a_t) st+1?~P(?∣st?,at?)
獎(jiǎng)勵(lì)與回報(bào)
獎(jiǎng)勵(lì)(reward)可以寫作 r t = R ( s t , a t , s t + 1 ) r_t = R(s_t, a_t, s_{t+1}) rt?=R(st?,at?,st+1?) ,也可以簡化為: r t = R ( s t ) r_t = R(s_t) rt?=R(st?) 或 r t = R ( s t , a t ) r_t = R(s_t,a_t) rt?=R(st?,at?)。
智能體的目標(biāo)是最大化一個(gè)軌跡中的累積獎(jiǎng)勵(lì),即回報(bào)(return)。回報(bào)通常有兩種形式:
-
有限無折扣回報(bào):
R ( τ ) = ∑ t = 0 T r t R(\tau) = \sum_{t=0}^T r_t R(τ)=t=0∑T?rt? -
無限折扣回報(bào):
R ( τ ) = ∑ t = 0 ∞ γ t r t R(\tau) = \sum_{t=0}^{\infty} \gamma^t r_t R(τ)=t=0∑∞?γtrt?γ ∈ ( 0 , 1 ) \gamma \in (0,1) γ∈(0,1)是折扣因子。折扣化有兩方面原因:(1)直觀上,未來充滿不確定性,因此對未來獎(jiǎng)勵(lì)的重視程度較低;(2)數(shù)學(xué)上,引入折扣因子能夠保證收斂(在一定條件下)。
RL問題
RL的目標(biāo)就是選擇一個(gè)能夠最大化期望回報(bào)的策略。
假設(shè)環(huán)境的轉(zhuǎn)移和策略都是隨機(jī)的,則一個(gè)T步長的軌跡的概率為: P ( τ ∣ π ) = ρ 0 ( s 0 ) ∏ t = 0 T ? 1 P ( s t + 1 ∣ s t , a t ) π ( a t ∣ s t ) P(\tau|\pi) = \rho_0 (s_0) \prod_{t=0}^{T-1} P(s_{t+1} | s_t, a_t) \pi(a_t | s_t) P(τ∣π)=ρ0?(s0?)t=0∏T?1?P(st+1?∣st?,at?)π(at?∣st?)
期望回報(bào)為:
J ( π ) = ∫ τ P ( τ ∣ π ) R ( τ ) = E τ ~ π [ R ( τ ) ] J(\pi) = \int_{\tau} P(\tau|\pi) R(\tau) = E_{\tau\sim \pi}[{R(\tau)}] J(π)=∫τ?P(τ∣π)R(τ)=Eτ~π?[R(τ)]
則RL優(yōu)化問題可以寫作:
π ? = arg ? max ? π J ( π ) \pi^* = \arg \max_{\pi} J(\pi) π?=argπmax?J(π)
π ? \pi^* π?是最優(yōu)策略。
價(jià)值函數(shù)
價(jià)值是指從一個(gè)狀態(tài)或者一個(gè)狀態(tài)-動(dòng)作對出發(fā),遵循某個(gè)策略所得到的期望回報(bào)。它有四種形式:
-
On-Policy Value Function,從狀態(tài) s s s出發(fā),遵循策略 π \pi π所得到的期望回報(bào):
V π ( s ) = E τ ~ π [ R ( τ ) ∣ s 0 = s ] V^{\pi}(s) = E_{\tau \sim \pi}[{R(\tau)\left| s_0 = s\right.]} Vπ(s)=Eτ~π?[R(τ)∣s0?=s] -
On-Policy Action-Value Function, 從狀態(tài) s s s出發(fā),采取任意動(dòng)作 a a a,此后遵循策略 π \pi π所得到的期望回報(bào),常稱為Q函數(shù):
Q π ( s , a ) = E τ ~ π [ R ( τ ) ∣ s 0 = s , a 0 = a ] Q^{\pi}(s,a) = E_{\tau \sim \pi}[{R(\tau)\left| s_0 = s, a_0 = a\right.]} Qπ(s,a)=Eτ~π?[R(τ)∣s0?=s,a0?=a] -
Optimal Value Function,從狀態(tài) s s s出發(fā),遵循最優(yōu)策略所得到的期望回報(bào):
V ? ( s ) = max ? π E τ ~ π [ R ( τ ) ∣ s 0 = s ] V^*(s) = \max_{\pi} E_{\tau \sim \pi}[{R(\tau)\left| s_0 = s\right.}] V?(s)=πmax?Eτ~π?[R(τ)∣s0?=s] -
Optimal Action-Value Function,從狀態(tài) s s s出發(fā),采取任意動(dòng)作 a a a,此后遵循最優(yōu)策略所得到的期望回報(bào):
Q ? ( s , a ) = max ? π E τ ~ π [ R ( τ ) ∣ s 0 = s , a 0 = a ] Q^*(s,a) = \max_{\pi}E_{\tau \sim \pi}[{R(\tau)\left| s_0 = s, a_0 = a\right.}] Q?(s,a)=πmax?Eτ~π?[R(τ)∣s0?=s,a0?=a]
兩個(gè)重要關(guān)系:
V π ( s ) = E a ~ π [ Q π ( s , a ) ] V^{\pi}(s) = E_{a\sim \pi}[{Q^{\pi}(s,a)}] Vπ(s)=Ea~π?[Qπ(s,a)]
V ? ( s ) = max ? a Q ? ( s , a ) V^*(s) = \max_a Q^* (s,a) V?(s)=amax?Q?(s,a)
都可以由定義推導(dǎo)出來。
最優(yōu)Q函數(shù)與最優(yōu)動(dòng)作
我們在狀態(tài) s s s下,要采取的最優(yōu)動(dòng)作滿足:
a ? ( s ) = arg ? max ? a Q ? ( s , a ) a^*(s) = \arg \max_a Q^* (s,a) a?(s)=argamax?Q?(s,a)
貝爾曼方程
上述四個(gè)價(jià)值函數(shù)都遵循特定的自洽方程,稱為貝爾曼方程。
貝爾曼方程的基本思想是:起始點(diǎn)處的 value 等于你在那個(gè)點(diǎn)可以獲得的 reward 加上接下來可能處于的位置的value。
V π ( s ) = E a ~ π , s ′ ~ P [ r ( s , a ) + γ V π ( s ′ ) ] V^{\pi}(s) = E_{a \sim \pi, s'\sim P}[{r(s,a) + \gamma V^{\pi}(s')}] Vπ(s)=Ea~π,s′~P?[r(s,a)+γVπ(s′)]
Q π ( s , a ) = E s ′ ~ P [ r ( s , a ) + γ E a ′ ~ π [ Q π ( s ′ , a ′ ) ] Q^{\pi}(s,a) = E_{s'\sim P}[{r(s,a) + \gamma E_{a'\sim \pi}[{Q^{\pi}(s',a')}}] Qπ(s,a)=Es′~P?[r(s,a)+γEa′~π?[Qπ(s′,a′)]
V ? ( s ) = max ? a E s ′ ~ P [ r ( s , a ) + γ V ? ( s ′ ) ] V^*(s) = \max_a E_{s'\sim P}[{r(s,a) + \gamma V^*(s')}] V?(s)=amax?Es′~P?[r(s,a)+γV?(s′)]
Q ? ( s , a ) = E s ′ ~ P [ r ( s , a ) + γ max ? a ′ Q ? ( s ′ , a ′ ) ] Q^*(s,a) = E_{s'\sim P}[{r(s,a) + \gamma \max_{a'} Q^*(s',a')}] Q?(s,a)=Es′~P?[r(s,a)+γa′max?Q?(s′,a′)]
優(yōu)勢函數(shù)
有時(shí)候我們不需要知道一個(gè)動(dòng)作的絕對好壞,只需要知道它比其他動(dòng)作平均好多少。這個(gè)概念用優(yōu)勢(advantage)函數(shù)表示:
A π ( s , a ) = Q π ( s , a ) ? V π ( s ) A^{\pi}(s,a) = Q^{\pi}(s,a) - V^{\pi}(s) Aπ(s,a)=Qπ(s,a)?Vπ(s)
形式化描述
環(huán)境的形式化描述是馬爾科夫決策過程(MDP),用五元組 ? S , A , R , P , ρ 0 ? \langle S, A, R, P, \rho_0 \rangle ?S,A,R,P,ρ0??表示,其中,
- S S S是狀態(tài)集合
- A A A是動(dòng)作集合
- R : S × A × S → R R: S \times A \times S \to \mathbb{R} R:S×A×S→R是獎(jiǎng)勵(lì)函數(shù)
- P : S × A → P ( S ) P : S \times A \to \mathcal{P}(S) P:S×A→P(S)是轉(zhuǎn)移概率函數(shù)
- ρ 0 \rho_0 ρ0?是初始狀態(tài)分布
總結(jié)
- 上一篇: 《世界棒球》:19 世纪棒球规则的演变
- 下一篇: 蒜蓉茄子