Consistency,中文翻譯為“一致性”。RL中的一致性問題,指的是policy和value之間是否對應。RL建立在不動點理論基礎上,一致性似乎不太能成為問題,近幾年的會議中也不多見。但每出一篇,總能挑戰我們對RL框架的認知程度——“你以為你以為的就是你以為的嗎?”

本文收錄兩篇。

一:

Q^{\pi}(\mathrm{s}_{},\mathrm{a}_{})

代表的是什麼policy[1]?

[Seminar] Consistency in RL

如圖所示的MDP有四個狀態,A為起始狀態,D為終狀態。B有兩個action{jump, stay},選擇stay時,有0。25的機率回到B,0。75的機率到D。已知策略

\pi(s)=jump,s=A,B,C

。discount factor取1,

Q^{\pi}(B, stay)

的值是___________。

先來回顧一下Q值的定義(David Silver,RL lecture2):The action-value function

Q^{\pi}(\mathrm{s}_{},\mathrm{a}_{})

is the expected return starting from state s, taking action a, and then following policy

\pi

Q值的計算代表某種“一步探索”的思路,允許當前state下action的選擇和

\pi

不一致。嚴格按照定義,

Q^{\pi}(B, stay)

代表的執行策略是:首先在B狀態選擇stay;其次,如果後續過程中回到了B狀態,選擇

\pi(B)

即jump。這帶來了一種有趣的不一致性,對於B而言,

Q^{\pi}(B, stay)

計算的並不是一個平穩的策略。這個策略不是determinist不是stochastic,甚至也不是便於引數化表達的策略。

當然,並不是所有的Q值對應的都是不平穩策略,例如

Q^{\pi}(A, run)

就是平穩的。當出現環路,或者function擬閤中存在state-aliasing現象時,策略不平穩的問題就會凸顯。

如果希望

Q^{\pi}(B, stay)

對應的是平穩的策略,也就是每次只要遇到B就選擇stay,我們需要對Bellman operator做修改:

Q^{\pi}(\mathrm{s}_{},\mathrm{a}_{})=r(\mathrm{s}_{},\mathrm{a}_{})+\gamma \mathbb{E}_{\mathrm{s

這樣的改動有什麼好處呢?最優action和次優action之間的Q值差距增加了。改動後,

Q^{\pi}(B, stay)

的值是___________。

二:Function Approximation中的Policy Consistency[2]

[Seminar] Consistency in RL

如圖所示MDP,從

s_{1}

開始,箭頭指向空的表示結束。每個狀態有兩個動作

a_{1},a_{2}

。在

s_{1}

狀態下選擇

a_{1}

,有

q=0.1

的機率到達

s_{4}

R(s_{1},a_{1})=0.3,R(s_{4},a_{2})=2

,其餘獎勵為0。在這個簡單的MDP中,最優策略

\pi^*(s)=a_{2},\forall s

現在考慮用線性函式

f_{\theta}(\phi(s,a))

來擬合Q值,其中

\phi(s,a)

是已知的固定特徵,

\theta

是待擬合引數。已知

\phi(s_{1},a_{1})=\phi(s_{4},a_{1})=(0,1)

\phi(s_{1},a_{2})=\phi(s_{2},a_{2})=(0.8,0)

\phi(s_{3},a_{2})=\phi(s_{4},a_{2})=(-1,0)

\phi(s_{2},a_{1})=\phi(s_{3},a_{1})=(0,0)

[Seminar] Consistency in RL

在我們利用Bellman backup操作來求解之前,我們先來看一個“合法性”的問題:以最優策略

\pi^*(s)=a_{2},\forall s

為例,我們先檢查一系列的線性不等式,在最優策略成立的情況下:

\begin{equation} \begin{aligned} Q(s_{1},a_{2})&>Q(s_{1},a_{1}) \\Q(s_{2},a_{2})&>Q(s_{2},a_{1})\Rightarrow\theta\cdot\phi(s_{2},a_{2})>\theta\cdot\phi(s_{2},a_{1})\Rightarrow\theta_{1}>0\\Q(s_{3},a_{2})&>Q(s_{3},a_{1})\Rightarrow\theta\cdot\phi(s_{3},a_{2})>\theta\cdot\phi(s_{3},a_{1})\Rightarrow\theta_{1}<0\\Q(s_{4},a_{2})&>Q(s_{4},a_{1}) \end{aligned} \end{equation}

我們發現,在引數空間

\theta

內,最優策略

\pi^*(s)=a_{2},\forall s

根本無法表示。注意,此處不是noisy,也不是bootstrap導致的誤差,而是引數空間無法表徵最優策略序列。該MDP在Q-learning收斂時

\hat \theta\approx(-0.235,0,279)

,代表的策略是在

s_{1},s_{4}

狀態選擇

a_{1}

,顯然它不是個好策略。[2]中把這種現象稱之為Delusional Bias:

delusional bias occurs whenever a backed-up value estimate is derived from action

choices that are not realizable in the underlying policy class。

Delusional Bias是一個非常糟糕的事情,它還可能造成其他的現象(具體例子參考[2]):

導致Q-learning不收斂

用一個discount factor

\gamma_{train}

訓練,然後用另一個

\gamma_{eval}

測試,可能效果更佳

Delusional Bias不僅在Q-learning中出現,在approximate動態規劃中也會出現

採用batch Q-learning,replay buffer亦無法避免Delusional Bias

假如我們不採用固定特徵+線性擬合,而用特徵自學習的深度網路,是不是可以避免Delusional Bias呢?作者沒有給出實驗結果,但指出,能表徵策略序列的能力和分類器的VC維有關,深度網路同樣存在Delusional Bias的風險。

[Seminar] Consistency in RL

資訊集刪選後能表徵的策略序列

[Seminar] Consistency in RL

Q(s1,a1)&;gt;Q(s1,a2), Q(s4,a2)&;gt;Q(s4,a1)

如果我們退而求其次,尋找一個引數空間能表徵的最優策略,要怎麼處理呢?作者提出維護一個額外的資訊集,保留從開始到現在所有的動作;當前狀態的任何動作選擇,都需要和之前的動作一起組成策略序列,檢查策略序列能否被引數空間所表徵。在此限制下,找到的最優解是

s_{1}

狀態選擇

a_{1}

s_{4}

狀態選擇

a_{2}

本文是2018年NIPS會議的best paper之一,它提出的現象和分析,某種程度上解釋了不少“強化學習勸退文”裡的吐槽點。不過Delusional Bias對深度網路的影響,實際可用的演算法,以及各種遊戲的benchmark上,尚需驗證。

閱讀材料

兩個例子講到了policy和value不一致帶來違反直覺的現象。反過來說,一致性的特點也可以為我們所利用。比如在某一個執行片段

\tau=\mathrm{s}_{t},\mathrm{a}_{t},\mathrm{s}_{t+1},\mathrm{a}_{t+1},...,\mathrm{s}_{t+n}

上,最優策略的V值或Q值應滿足一定的約束。經典RL框架中,約束為上下界形式,可用來fast credit propagation[3];基於熵的RL框架中,約束為某種等價,可以引出新的學習演算法[4]。

參考文獻

[1] Increasing the action gap= New operators for reinforcement learning, AAAI 2016。

[2] Non-delusional Q-learning and value iteration, NIPS 2018。

[3] Faster Deep Reinforcement Learning by Optimality Tightening, ICLR 2017。

[4] Bridging the Gap Between Value and Policy Based Reinforcement Learning, NIPS 2017。