1. 程式人生 > 實用技巧 >通過減小Bootstrapping Error Reduction來進行離線RL學習

通過減小Bootstrapping Error Reduction來進行離線RL學習

最近嘗試了一些offline資料的off-policy演算法,發現value function的overestimation問題非常嚴重,在正常學習估計收斂在400左右的價值函式在離線資料下竟然會一直累積到幾十萬,高的離譜。正好近期offline RL領域就有一篇工作講這件事,所以值得仔細讀一讀。

論文全稱:

Stabilizing Off-Policy Q-Learning via Bootstrapping Error Reduction (Aviral Kumar, Justin Fu, George Tucker, Sergey Levine)

文章發表於nips19.

原文傳送門

https://arxiv.org/abs/1906.00949

簡介

文章說,常用的offpolicy的基於Q學習或者AC的RL演算法,會對資料分佈比較敏感。如果不允許智慧體收集additional on-policy data,就會表現很差。而導致這一現象最主要的原因,作者們分析是bootstrapping error,bootstrapping from 訓練資料以外的動作分佈,然後通過 Bellman backup 運算元累積。

本文分析了該問題,並提出瞭如何限制動作的選擇來減輕此問題,提出演算法bootstrapping error accumulation reduction (BEAR),藉助support-set matching來避免此問題。

回顧

回顧Qlearning的Bellman最優運算元:

Q函式的更新通過:

稱為Q-iteration。

在連續動作空間下無法直接選取max,因此AC方法通過額外學習一個策略網路pi來最大化Q函式。

本文關注offline學習,一個固定的資料集:

由未知的行為策略[公式]取樣,該策略取樣的狀態-動作分佈記為[公式]

Q學習中的資料偏離

在使用固定的資料集學習時,Q學習估計的Q值和實際的return差很遠(這裡還是log Q,取掉log之後會更大),如圖1。此問題並不是過擬合,因為採用更大的樣本數量並不能解決此問題。

通過分析Bellman方程,作者認為誤差主要源自這裡。儘管最小化mean squared Bellman error即是監督學習的迴歸,但這裡的目標是當前策略的Q值對於下一個狀態選取動作的最大的Q值的估計。然而,Q函式的估計只對從同樣的資料分佈的資料可靠,所以如果是對所有的動作取max,其中包括資料分佈以外的動作的話,就會帶來巨大的誤差。這樣的動作稱之為out-of-distribution (OOD) actions

作者給出total error和當前bellman error的關係:

也就是說,total error是每次迭代都在累積的,而且會在OOD state和actions上很大,因為在訓練的時候根本就沒有優化這些地方的誤差

為了減小誤差,可以將策略的動作限制在訓練分佈的support中。注意之前的BCQ的工作,只是將學到的policy的分佈靠近行為策略behavior policy的分佈,類似於BC。作者在後文用實驗說明了這兩者的不同以及BCQ學習方式的限制。

對於將策略的動作限制在訓練分佈的support中,意味著,學到的policy[公式]只在行為策略[公式]的density大於閾值的地方有density([公式]).

而不是使得這兩者的density非常靠近。後文的分析同時指出了一個保持原始資料分佈和在嚴格約束下尋找sub-optimal策略的一個trade-off。

Distribution-Constrained Backups

本文分析的重點,提出了一個受限的backup operator,並且給出了performance bounds。這個bounds給出了前文提到的限制policy support的motivation。

  • 首先給出Distribution-constrained operators的定義

該運算元同樣可以保證收斂到不動點(提供了證明)。

在繼續分析之前,作者提出兩個來源的誤差。第一個是suboptimality bias,即最優策略在策略集合之外;第二是訓練的資料分佈和用於backup的策略的distribution shift(即當前策略和資料中的分佈的差距)。

  • 給出suboptimality constant的定義

  • 定義concentrability coefficient

這個“集中係數”其實給出了策略集合和行為策略的差距,若策略集合的support在行為策略之外,則C會變得非常大。舉例來說如果[公式][公式]都是[公式],那麼,上面的公式的c(1)=1,下面的C也=1。如果[公式]的support都不在[公式]中,此時[公式]小而等式左邊很大,則c(k)就很大。注意當[公式]中包含的策略越多,P(s)和[公式]其實是差的越大的,只有其中只有一個策略就是[公式]時,才是最小的。

  • 給出定理1,

這個bound得到了一個tradeoff:要使得學到的策略儘可能集中在資料分佈中(由C項表徵)以及保證策略集合儘可能地大以覆蓋最優策略(由[公式]項表徵)。但擴大[公式]時,其實是在增加C而減小[公式]。為了解釋清楚,作者使用一個tabular例子來說明。

圖中的任務是要從S走到G,但是行為策略(箭頭)是走到右下角(explore),行為策略的support set如圖所示。經過簡單的Qlearning,可以發現Q函式的估計在行為策略少見的地方差的非常大;而策略評估儘管減小了error propagation,但卻引入了很大的suboptimal bias(即和最優策略的差距)。

而通過support constraint方式迭代得到的Q函式則平衡了這兩者

因此作者提出藉助support來構造策略集合,即

便有如下定理:

因此可以藉助[公式]來平衡前面的tradeoff。[公式]越大則[公式]包含的策略越少,[公式]越小。

因此上面的一大串分析其實intuitively告訴我們可以在估計Q的時候選擇符合條件的action來更新,不符合條件的action就不要用來更新Q了

BEAR演算法

根據前面的推導,基於TD3或者SAC提出一個offline學習的演算法,使用distribution-constrained backups來減少bootstrapping error的累積。

演算法主要包括兩個部分:第一是像BCQ一樣學習K個Q函式,並且使用最小的Q函式進行策略提升;此外,設計了一個約束,用於搜尋符合support要求的policy。

作者同時提到,使用K個Q學習的方式取均值的方式學習效果也很好。

由於通常的行為策略[公式]是未知的,因此需要通過對偶梯度近似求解約束優化問題。本文使用的是一種基於取樣的maximum mean discrepancy (MMD),只需要資料集的資料即可,

作者還發現對於低階和中級的策略取樣出的樣本,估計的MMD和使用一個uniform的P近似。

因此,演算法的總的優化目標如下:

寫成step-by-step演算法形式:

有幾點要注意:

1。 看到最終在更新Q的時候使用的Q的目標是一個min和max的凸組合(第5行)。

2。 更新policy的時候使用的是帶約束的policy gradient(在loss上加了一項mmd的loss)

3。 基於的是AC框架,用PG更新,可以解決連續空間(雖然叫QLearning)

4。 在test的時候,通過在pi中取樣多個動作,選取Q最大的動作來執行(這裡像Q學習)

5。從資料中取樣動作,是藉助一個用BC訓練的vae policy實現的

實驗

正文的實驗分為3部分:

1。medium-quality dataset

2。random & optimal dataset

3。analysis

1。medium-quality dataset

作者提到medium的data在一般application中最常見。作者提到BCQ經常和BC差不多,其實就是做了資料的模仿。

2。 random & optimal dataset

注意到一般的RL在random data上效果還不錯,但是在optimal上效果不好(因為沒有explore)。同時作者專門提到在較難的humanoid上效果也不錯。

3。analysis

這裡主要測試前面的mmd constraint換成KL的效果,不如MMD。以及用於估計MMD的樣本數目。較小的樣本數目效果反而更好。

作者的解釋是:Although the difference is not large, consistently better performance with 4 samples leans in favour of our hypothesis that an intermediate number of samples works well for support matching, and hence is less restrictive.

筆記完。