1. States and Observations
state
是對word
的描述,是完整的;observation
是對state
的描述,是不完整的。他們都用一種real_valued向量、矩陣或者更高階的tensor來表述。比如,可觀測狀態可以表示成RGB矩陣,機器人的狀態可以表示成關節的角度和速度
2. Action Spaces
給定環境下的動作集合,分爲離散的(棋類遊戲)和連續的(機器人)。
3. Policies
幫助agent
決定採取哪種action
,可以是確定的,也可以是隨機的。前者通常用 μ表示,後者用 π 表示.由於policy
就是agent
最重要的部分,所以可以將二者視爲等價,所以在表示方法上,也可以用變量a
來替代p
。
某一時刻下的確定性策略可以表示爲:
at=μ(st)
某一時刻下的隨機性策略可以表示爲:
at∼π(⋅∣st)
在深度學習中,所有的策略是有參數的。策略可以看做是一個函數的映射過程,需要依賴一組參數才能得到一個結果,指導agent
進行某種行動,這裏的參數類似於神經網絡的神經元。不斷調參可以獲得最佳結果,所以策略是依賴於參數的,我們用θ 或者 ϕ來進行下標表示。
atat=μθ(st)∼πθ(⋅∣st)
3.1 確定性的策略(Deterministic Policies)
連續動作空間下的TensorFlow的例子
obs = tf.placeholder(shape=(None, obs_dim), dtype=tf.float32)
net = mlp(obs, hidden_dims=(64, 64), activation=tf.tahn)
actions = tf.layers.dense(net, units=act_dim, activation=None)
貪婪策略是一個確定性的策略、只在動作值函數最大的動作以概率爲1的機率選擇,其他動作以概率0選擇。
π∗(a∣s)={10 if a=argmaxq∗(s,a) if else
3.2 隨機性的策略
ϵ−greedy策略是強化學習常用的隨機策略。以比較大的概率選擇動作值函數的最大的動作,以比較小的概率選擇的其他動作,保證了探索性。
其他還有高斯策略、玻爾茲曼策略等。
4. Trajectories
用 τ 表示,又稱爲episodes
或者 rollouts
.就是一系列的狀態和策略,
τ=(s0,a0,s1,a1,…)
初始狀態一般是從初始狀態的分佈中採樣得到的,常用 ρ0 表示
s0∼ρ0(⋅)
下一狀態只和當前策略有關,可以是確定的,也可以是隨機的。(馬爾科夫決策過程吧)
st+1=f(st,at)st+1∼P(⋅∣st,at)
5. Reward and Return
Reward函數用R 表示,依賴於當前狀態、當前策略和下一狀態,有的簡寫成依賴於前兩個,甚至只依賴於第一個,所以在此簡化,把依賴參數統稱 τ,即收益函數表示爲 Rτ. 某一時刻下Return 就是Reward函數的結果,用 rt 表示。
總的收益有兩種計算方式,一種是不考慮折扣的,即各種時刻下收益值直接相加求和。
R(τ)=t=0∑Trt
另外一種就是對每次的收益都打一個折 γ,取值(0,1)
R(τ)=t=0∑∞γtrt
加上折扣因子有兩方面考慮,一是因爲,下一時刻的折扣是我們預期的,不能滿算,就像是未來的貨幣總不如手裏的值錢;二是從數學角度考慮的,無限時刻下的收益總和可能不會收斂,加上這個因子可以更容易求和收斂。
關於兩種返回結果的表示說明
二者之間的界限其實不是很特別明顯,對於第一種無折扣的返回表示,常通過算法去優化這一函數,但是在預測value function
的時候,更常用的是第二種
6. RL學習學的是什麼?
不管選擇哪種 return
表示,也不管policy
怎麼選,RL的目標就是選擇一種policy,讓agent能根據他的action
,獲得最大expected return
.
expected return
是一系列狀態和行爲下(針對 trajectories
軌跡),總的收益。我們假定環境變化和策略都是隨機,這樣一來, 一個 T-step的概率可以表示爲:
P(τ∣π)=ρ0(s0)t=0∏T−1P(st+1∣st,at)π(at∣st)
這個公式可以理解爲,從一個初始狀態出發,然後根據當前狀態和行爲,轉移到了下一個狀態。
那麼期望收益 expected return
就可以表示爲:
J(π)=∫τP(τ∣π)R(τ)=τ∼πE[R(τ)]
這個公式可以理解爲每一個狀態和狀態下的收益的總和。因爲是隨機的,所以要用積分的方式求。又因爲現代概率論上,期望的定義就是一種積分,所以收益也是期望的收益。
想讓期望收益最大,就是想找到最優策略:
π∗=argπmaxJ(π)
7. Value function
value function就是用來衡量一個狀態及行爲的,看看當前狀態下的策略能帶來多大收益。主要有四類value function:
- 第一種是
On-Policy Value Function
, Vπ(s),就是從一開始的狀態下,就老老實實執行policy選的動作,得到預期收益。
Vπ(s)=τ∼πE[R(τ)∣s0=s]
- 第二種是
On-Policy Action-Value Function
, Qπ(s,a),和第一種方法不同的是,雖然一開始狀態是固定的,但是我可以不聽policy給定的動作,自己隨便選一個,但是這之後,依舊會老老實實服從安排。
Qπ(s,a)=τ∼πE[R(τ)∣s0=s,a0=a]
- 第三種是
Optimal Value Function
,V∗(s),和第一種不同的時,每次會先選擇最優策略 π,然後執行該策略下的動作。
V∗(s)=πmaxτ∼πE[R(τ)∣s0=s]
- 第四種是
Optimal Action-Value Function
,Q∗(s,a),開始時也是隨機選一個動作,在這之後,每次都會先選擇最優策略,再執行最優策略下的行動。
Q∗(s,a)=πmaxτ∼πE[R(τ)∣s0=s,a0=a]
value function 和時間的關係
時間無關性是指MDP經過不斷演化,最終會使不同時刻下相同狀態的價值相等。
當我們討論valuefunction的時候,如果我們不考慮時間性,我們的預期收益是無限帶折扣因子的,即infinite-horizon discounted return
,如果考慮時間,就需要加入一個時間因子。
Note that V(n)
is exactly V0 in a finite-horizon problem with n
timesteps.
value function 和 the action-value function
回顧一下,根據MDP的模型形式,價值函數一般可以分爲兩種類型。
- 狀態值函數 vπ(s):也就是已知當前狀態 s,按照某種策略行動產生的長期回報期望。
- 狀態-行動值函數qπ(s,a):也就是已知當前狀態和行動,按照某種策略行動產生的長期回報期望。
實際上,即使採用這樣的方式,仍然難以計算價值。如果要計算從某個狀態出發的value function,相當於依從某個策略,把所有從這個狀態出發的可能路徑走一遍,將這些路徑的長期回報按照概率求期望:
vπ(st)=Eτ[k=0∑∞γkrt+k+1]=τ∑p(τ)k=0∑∞γkrt+k+1
其中 τ 表示從狀態 st出發的某條路徑。將部分路徑按照馬爾科夫決策展開,
vπ(st)=(st,at,…)∼τ∑π(at∣st)p(st+1∣st,at)…k=0∑∞γkrt+k+1
使用代換消元法,將公式改寫爲:
vπ(st)=τ∑π(at∣st)p(st+1∣st,at)…k=0∑∞γkrt+k+1
貝爾曼方程
其實我們可以發現,value function可以通過遞歸的方式表示。假設value function已經穩定,任意一個狀態的價值可以由其他狀態的價值得到,這個公式就被成爲貝爾曼方程。
對於on-policy
價值函數,其貝爾曼方程如下
Vπ(s)Qπ(s,a)=g∼πE[r(s,a)+γVπ(s′)]=s′∼PE[r(s,a)+γa′∼πE[Qπ(s′,a′)]]
其中 s′ 是 rS′∼P(⋅∣s,a) 的簡寫,表明下一個狀態 s′ 是根據環境轉移規則隨機出來的。 a∼π 是 a∼π(⋅∣s) 的簡寫,a′∼π 是 a′∼π(⋅∣s) 的簡寫,
對於optimal
價值函數的貝爾曼方程如下
V∗(s)Q∗(s,a)=amaxs′PE[r(s,a)+γV∗(s′)]=s∗∼PE[r(s,a)+γa′maxQ∗(s′,a′)]
8. Advantage Functions
不需要是最好的action,比其他的action好就行了。Aπ(s,a) 表示,假定你一直使用一種策略 π, 那麼在一種狀態下,使用這種策略下采用的行動,比隨機選的行動 π(⋅∣s) 要好多少。數學公式表示如下:
Aπ(s,a)=Qπ(s,a)−Vπ(s)
這個函數對 policy gradient
方法特別重要!!