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