RL中的關鍵概念

1. States and Observations

state 是對word 的描述,是完整的;observation 是對state的描述,是不完整的。他們都用一種real_valued向量、矩陣或者更高階的tensor來表述。比如,可觀測狀態可以表示成RGB矩陣,機器人的狀態可以表示成關節的角度和速度

2. Action Spaces

給定環境下的動作集合,分爲離散的(棋類遊戲)和連續的(機器人)。

3. Policies

幫助agent決定採取哪種action,可以是確定的,也可以是隨機的。前者通常用 μ\mu表示,後者用 π\pi 表示.由於policy就是agent最重要的部分,所以可以將二者視爲等價,所以在表示方法上,也可以用變量a來替代p
某一時刻下的確定性策略可以表示爲:
at=μ(st) a_{t}=\mu\left(s_{t}\right)
某一時刻下的隨機性策略可以表示爲:
atπ(st) a_{t} \sim \pi\left(\cdot | s_{t}\right)
在深度學習中,所有的策略是有參數的。策略可以看做是一個函數的映射過程,需要依賴一組參數才能得到一個結果,指導agent進行某種行動,這裏的參數類似於神經網絡的神經元。不斷調參可以獲得最佳結果,所以策略是依賴於參數的,我們用θ\theta 或者 ϕ\phi來進行下標表示。
at=μθ(st)atπθ(st) \begin{aligned} a_{t} &=\mu_{\theta}\left(s_{t}\right) \\ a_{t} & \sim \pi_{\theta}\left(\cdot | s_{t}\right) \end{aligned}

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選擇。
π(as)={1 if a=argmaxq(s,a)0  if else \pi_{*}(a | s)=\left\{\begin{array}{ll}{1} & {\text { if } \quad a=\operatorname{argmax} q_{*}(s, a)} \\ {0} & {\ \text { if else }}\end{array}\right.

3.2 隨機性的策略

ϵgreedy\epsilon-greedy​策略是強化學習常用的隨機策略。以比較大的概率選擇動作值函數的最大的動作,以比較小的概率選擇的其他動作,保證了探索性。

其他還有高斯策略、玻爾茲曼策略等。

4. Trajectories

τ\tau 表示,又稱爲episodes 或者 rollouts.就是一系列的狀態和策略,
τ=(s0,a0,s1,a1,) \tau=\left(s_{0}, a_{0}, s_{1}, a_{1}, \dots\right)
初始狀態一般是從初始狀態的分佈中採樣得到的,常用 ρ0\rho_{0} 表示
s0ρ0() s_{0} \sim \rho_{0}(\cdot)

下一狀態只和當前策略有關,可以是確定的,也可以是隨機的。(馬爾科夫決策過程吧)
st+1=f(st,at)st+1P(st,at) \begin{array}{c}{s_{t+1}=f\left(s_{t}, a_{t}\right)} \\ {s_{t+1} \sim P\left(\cdot | s_{t}, a_{t}\right)}\end{array}

5. Reward and Return

Reward函數用RR 表示,依賴於當前狀態、當前策略和下一狀態,有的簡寫成依賴於前兩個,甚至只依賴於第一個,所以在此簡化,把依賴參數統稱 τ\tau,即收益函數表示爲 RτR_{\tau}. 某一時刻下Return 就是Reward函數的結果,用 rtr_{t} 表示。
總的收益有兩種計算方式,一種是不考慮折扣的,即各種時刻下收益值直接相加求和。
R(τ)=t=0Trt R(\tau)=\sum_{t=0}^{T} r_{t}
另外一種就是對每次的收益都打一個折 γ\gamma,取值(0,1)
R(τ)=t=0γtrt R(\tau)=\sum_{t=0}^{\infty} \gamma^{t} r_{t}
加上折扣因子有兩方面考慮,一是因爲,下一時刻的折扣是我們預期的,不能滿算,就像是未來的貨幣總不如手裏的值錢;二是從數學角度考慮的,無限時刻下的收益總和可能不會收斂,加上這個因子可以更容易求和收斂。

關於兩種返回結果的表示說明
二者之間的界限其實不是很特別明顯,對於第一種無折扣的返回表示,常通過算法去優化這一函數,但是在預測value function的時候,更常用的是第二種

6. RL學習學的是什麼?

不管選擇哪種 return表示,也不管policy怎麼選,RL的目標就是選擇一種policy,讓agent能根據他的action,獲得最大expected return.

expected return是一系列狀態和行爲下(針對 trajectories軌跡),總的收益。我們假定環境變化和策略都是隨機,這樣一來, 一個 TT-step的概率可以表示爲:

P(τπ)=ρ0(s0)t=0T1P(st+1st,at)π(atst) P(\tau | \pi)=\rho_{0}\left(s_{0}\right) \prod_{t=0}^{T-1} P\left(s_{t+1} | s_{t}, a_{t}\right) \pi\left(a_{t} | s_{t}\right)

這個公式可以理解爲,從一個初始狀態出發,然後根據當前狀態和行爲,轉移到了下一個狀態。

那麼期望收益 expected return就可以表示爲:
J(π)=τP(τπ)R(τ)=Eτπ[R(τ)] J(\pi)=\int_{\tau} P(\tau | \pi) R(\tau)=\underset{\tau \sim \pi}{\mathrm{E}}[R(\tau)]
這個公式可以理解爲每一個狀態和狀態下的收益的總和。因爲是隨機的,所以要用積分的方式求。又因爲現代概率論上,期望的定義就是一種積分,所以收益也是期望的收益。

想讓期望收益最大,就是想找到最優策略:
π=argmaxπJ(π) \pi^{*}=\arg \max _{\pi} J(\pi)

7. Value function

value function就是用來衡量一個狀態及行爲的,看看當前狀態下的策略能帶來多大收益。主要有四類value function:

  1. 第一種是 On-Policy Value FunctionVπ(s)V^{\pi}(s),就是從一開始的狀態下,就老老實實執行policy選的動作,得到預期收益。
    Vπ(s)=Eτπ[R(τ)s0=s] V^{\pi}(s)=\underset{\tau \sim \pi}{\mathrm{E}}\left[R(\tau) | s_{0}=s\right]
  2. 第二種是On-Policy Action-Value FunctionQπ(s,a)Q^{\pi}(s, a),和第一種方法不同的是,雖然一開始狀態是固定的,但是我可以不聽policy給定的動作,自己隨便選一個,但是這之後,依舊會老老實實服從安排。

Qπ(s,a)=Eτπ[R(τ)s0=s,a0=a] Q^{\pi}(s, a)=\underset{\tau \sim \pi}{\mathrm{E}}\left[R(\tau) | s_{0}=s, a_{0}=a\right]

  1. 第三種是Optimal Value FunctionV(s)V^{*}(s),和第一種不同的時,每次會先選擇最優策略 π\pi,然後執行該策略下的動作。

V(s)=maxπEτπ[R(τ)s0=s] V^{*}(s)=\max _{\pi} \underset{\tau \sim \pi}{\mathrm{E}}\left[R(\tau) | s_{0}=s\right]

  1. 第四種是 Optimal Action-Value FunctionQ(s,a)Q^{*}(s, a),開始時也是隨機選一個動作,在這之後,每次都會先選擇最優策略,再執行最優策略下的行動。

Q(s,a)=maxπEτπ[R(τ)s0=s,a0=a] Q^{*}(s, a)=\max _{\pi} \underset{\tau \sim \pi}{\mathrm{E}}\left[R(\tau) | s_{0}=s, a_{0}=a\right]

value function 和時間的關係
時間無關性是指MDP經過不斷演化,最終會使不同時刻下相同狀態的價值相等。

當我們討論valuefunction的時候,如果我們不考慮時間性,我們的預期收益是無限帶折扣因子的,即infinite-horizon discounted return,如果考慮時間,就需要加入一個時間因子。

Note that V(n)V(n)
is exactly V0V_0 in a finite-horizon problem with n
timesteps.

value function 和 the action-value function

回顧一下,根據MDP的模型形式,價值函數一般可以分爲兩種類型。

  • 狀態值函數 vπ(s)v_{\pi}(s):也就是已知當前狀態 ss,按照某種策略行動產生的長期回報期望。
  • 狀態-行動值函數qπ(s,a)q_{\pi}(s, a):也就是已知當前狀態和行動,按照某種策略行動產生的長期回報期望。

實際上,即使採用這樣的方式,仍然難以計算價值。如果要計算從某個狀態出發的value function,相當於依從某個策略,把所有從這個狀態出發的可能路徑走一遍,將這些路徑的長期回報按照概率求期望:
vπ(st)=Eτ[k=0γkrt+k+1]=τp(τ)k=0γkrt+k+1 \begin{aligned} v_{\pi}\left(s_{t}\right) &=E_{\tau}\left[\sum_{k=0}^{\infty} \gamma^{k} \boldsymbol{r}_{t+k+1}\right] \\ &=\sum_{\boldsymbol{\tau}} p(\boldsymbol{\tau}) \sum_{k=0}^{\infty} \gamma^{k} \boldsymbol{r}_{t+k+1} \end{aligned}

其中 τ\tau 表示從狀態 sts_t出發的某條路徑。將部分路徑按照馬爾科夫決策展開,

vπ(st)=(st,at,)τπ(atst)p(st+1st,at)k=0γkrt+k+1 v_{\pi}\left(s_{t}\right)=\sum_{\left(s_{t}, a_{t}, \ldots\right) \sim \tau} \pi\left(\boldsymbol{a}_{t} | \boldsymbol{s}_{t}\right) p\left(\boldsymbol{s}_{t+1} | \boldsymbol{s}_{t}, \boldsymbol{a}_{t}\right) \ldots \sum_{k=0}^{\infty} \gamma^{k} \boldsymbol{r}_{t+k+1}

使用代換消元法,將公式改寫爲:

vπ(st)=τπ(atst)p(st+1st,at)k=0γkrt+k+1 v_{\pi}\left(s_{t}\right)=\sum_{\tau} \pi\left(\boldsymbol{a}_{t} | \boldsymbol{s}_{t}\right) p\left(\boldsymbol{s}_{t+1} | \boldsymbol{s}_{t}, \boldsymbol{a}_{t}\right) \ldots \sum_{k=0}^{\infty} \gamma^{k} \boldsymbol{r}_{t+k+1}

貝爾曼方程

其實我們可以發現,value function可以通過遞歸的方式表示。假設value function已經穩定,任意一個狀態的價值可以由其他狀態的價值得到,這個公式就被成爲貝爾曼方程。

對於on-policy價值函數,其貝爾曼方程如下

Vπ(s)=Egπ[r(s,a)+γVπ(s)]Qπ(s,a)=EsP[r(s,a)+γEaπ[Qπ(s,a)]] \begin{aligned} V^{\pi}(s) &=\underset{g \sim \pi}{\mathrm{E}}\left[r(s, a)+\gamma V^{\pi}\left(s^{\prime}\right)\right] \\ Q^{\pi}(s, a) &=\underset{s^{\prime} \sim P}{\mathrm{E}}\left[r(s, a)+\gamma \underset{a^{\prime} \sim \pi}{\mathrm{E}}\left[Q^{\pi}\left(s^{\prime}, a^{\prime}\right)\right]\right] \end{aligned}

其中 ss^{\prime}rSP(s,a)\mathbf{r}_{S}^{\prime} \sim P(\cdot | s, a) 的簡寫,表明下一個狀態 ss^{\prime} 是根據環境轉移規則隨機出來的。 aπa \sim \piaπ(s)a \sim \pi(\cdot | s) 的簡寫,aπa^{\prime} \sim \piaπ(s)a^{\prime} \sim \pi(\cdot | s) 的簡寫,

對於optimal價值函數的貝爾曼方程如下
V(s)=maxaEsP[r(s,a)+γV(s)]Q(s,a)=EsP[r(s,a)+γmaxaQ(s,a)] \begin{aligned} V^{*}(s) &=\max _{a} \underset{s^{\prime} P}{\mathrm{E}}\left[r(s, a)+\gamma V^{*}\left(s^{\prime}\right)\right] \\ Q^{*}(s, a) &=\underset{s^{*} \sim P}{\mathrm{E}}\left[r(s, a)+\gamma \max _{a^{\prime}} Q^{*}\left(s^{\prime}, a^{\prime}\right)\right] \end{aligned}

8. Advantage Functions

不需要是最好的action,比其他的action好就行了。Aπ(s,a)A^{\pi}(s, a) 表示,假定你一直使用一種策略 π\pi, 那麼在一種狀態下,使用這種策略下采用的行動,比隨機選的行動 π(s)\pi(\cdot | s) 要好多少。數學公式表示如下:

Aπ(s,a)=Qπ(s,a)Vπ(s) A^{\pi}(s, a)=Q^{\pi}(s, a)-V^{\pi}(s)

這個函數對 policy gradient方法特別重要!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章