《Playing hard exploration games by watching YouTube》論文解讀
- 論文鏈接
- 油管鏈接
一、摘要
??當環境獎勵特別稀疏的時候,強化學習方法通常很難訓練(traditionally struggle)。一個有效的方式是通過人類示範者(human demonstrator)提供模仿軌跡(imitate trajectories)來指導強化學習的探索方向,通常的做法是觀看人類高手玩遊戲的視頻。
??這裏的問題是演示的素材(demonstrations),即人類高手的視頻,通常不能直接使用。
??因為不同的視頻來源通常有細微的差異(domain gap),只有在完全相同的環境中(尺寸、分辨率、橫縱比、顏色等等)獲得狀態信息\(S\),同時獲得對應需要模仿的動作信息\(a\)
??比如,人類在觀察一段遊戲視頻後,不管遊戲是否存在色差、顯示大小是否一樣,都可以大致知道自己該如何操作(上下左右等),但是把這段視頻提供給智能體(agent),微小的色差等顯示變化都會讓智能體誤解成不同的狀態,同時智能體也無法直接從視頻中悟出該采取什麽動作。歸結起來就是兩點:1. 遊戲鏡頭不匹配(unaligned gameplay footage); 2. 沒有動作標簽(unlabeled)。
??文章提出了一種分兩步解決該問題的方法。1.通過自監督(self-supervised)的學習方式構造視頻到狀態抽象特征的映射,消除不同視頻來源的細微差異造成的影響。2.用輸出的抽象特征作為狀態\(S\)
??該方法在Montezuma‘s Revenge、Pitfall、Private Eye三個遊戲中取得了超越人類水平的效果。
二、效果展示
- Montezuma‘s Revenge
- Pitfall
- Private Eye
三、具體問題和解決方法
?1. Closing the domain gap
- 問題分析
??這個問題(domain gap)就如摘要中所說,由於遊戲存在不同版本,尺寸、分辨率、橫縱比、顏色等等都有細微差別,所以就算是同一遊戲狀態,不同玩家的視頻也不會完全匹配(unaligned footage)。如下圖所示:
??可以看到,對於同一遊戲狀態,右邊四幅圖在上述方面有明顯的差異。本文提出的方法有效解決了這個問題。用t-SNE將處理後的特征可視化,效果如下圖所示:
??可以看到,通過該方法,不同來源的視頻在特征空間上的表征一致,且可以和遊戲動作序列化對應。 - 具體方法
??對於這個問題,作者的想法是構造一個輔助任務讓神經網絡(embedding network)去學習,希望網絡可以學到關鍵的特征而忽略不必要的差異。又由於沒有任務標簽,於是采用自監督(self-supervision)的方式構造標簽並進行訓練。文章提出了Temporal distance classification(TDC)和Cross-modal temporal distance classification(CMC)兩種方法。- Temporal distance classification
??利用同一視頻中,視頻序列的時間關系構建一個時間標簽的監督學習任務,即讓網絡去預測同一視頻中任意抽取的兩幀圖像之間的時間差分距離\(\Delta t\)。作者解釋說,這個任務需要網絡理解不同幀圖像在時間上的轉移關系,有助於網絡學習到環境和agent交互過程中的環境變化規律(This task requires an understanding of how visual features move
and transform over time, thus encouraging an embedding that learns meaningful abstractions of
environment dynamics conditioned on agent interactions.)。
??具體構造如下:
??按照時間差分距離分成6個區間類別,記為\(d_k \in \{[0],[1],[2],[3-4],[5-20],[21-200]\}\)。其中[1]表示時間上相差1,[3-4]表示時間上相差3或者4,其他同理。考慮兩幀圖像\(v,w \in I\),我們讓網絡學會預測兩幀圖像的時間差區間\(d_k\)。具體的,這裏構造了兩個函數:visual embedding function \(\phi:I \rightarrow R^N\),classifier function \(\tau_{td}:R^N \times R^N \rightarrow R^K\)。其中visual embedding function從圖像中提取出抽象特征(N維),classifier function預測兩幀圖像之間的時間差(K類的分類器)。每個函數都是一個神經網絡,然後將兩個網絡合起來訓練,即訓練\(\tau_{td}(\phi(v),\phi(w))\)預測類別\(d_k\)。
損失函數使用交叉熵損失:\(L_{td}(v^i,w^i,y^i)=-\sum_{j=1}^Ky_j^ilog(\hat{y}_j^i) \ \ \ with \ \ \hat{y}^i=\tau_{td}(\phi(v^i),\phi(w^i))\) ??其中\(y^i\)為真實label,\(\hat{y}^i\)為網絡預測的label。 - Cross-modal temporal distance classification
??這種方法和前一種異曲同工,上述方法是在視頻不同幀之間進行預測。該方法融入聲音信息,將視頻和聲音進行匹配,預測兩者之間的時間差,也就是所謂跨模態(cross-modal)的時間差分距離預測。作者解釋說遊戲的音頻信息通常和動作事件高度相關,比如跳、撿到道具等等,這個任務有助於網絡理解遊戲中的重要事件(As the audio of Atari games tends to correspond with salient
events such as jumping, obtaining items or collecting points, a network that learns to correlate audio
and visual observations should learn an abstraction that emphasizes important game events.)。盡管在強化學習的遊戲環境中沒有聲音信息,但結合音頻信息構建embedding network有助於網絡學習抽象特征。
??具體構造如下:
??視頻數據(video frame)記為\(v \in I\),音頻數據(audio snippet)記為\(a \in A\)。引入另一個音頻特征提取的網絡,audio embedding function \(\psi:A \rightarrow R^N\)。
損失函數同樣為交叉熵損失:\(L_{cm}(v^i,a^i,y^i)=-\sum_{j=1}^Ky_j^ilog(\hat{y}_j^i) \ \ \ with \ \ \ \hat{y}^i=\tau_{cm}(\phi(v^i),\psi(a^i))\)
- Temporal distance classification
- 結構設計
??最終方法結合了TDC和CMC兩種方法,設置權重\(\lambda\)計算綜合損失:\(L=L_{td}+\lambda L_{cm}\)
??具體網絡結構如下圖:
??(a)圖表示需要進行特征提取的原始數據,上面是視頻數據,下面是音頻數據。分別通過(b)圖中的編碼網絡\(\phi(v)\)、\(\psi(a)\)提取主要特征並忽略無關的差異。最後將網絡輸入(c)圖中的分類網絡算出誤差\(\tau_{td}\)和\(\tau_{cm}\),再反向傳播訓練網絡。需要註意的是,這裏\(\phi(v)\)和\(\psi(a)\)是兩個獨立不同的網絡,\(\tau_{td}\)和\(\tau_{cm}\)網絡結構相同,網絡參數不同。
??具體網絡結構和訓練數據生成的細節這裏不是重點,直接粘貼原文:The visual embedding function \(\phi\)
The visual embedding function, \(\phi\), is composed of three spatial, padded, 3x3 convolutional layers
with (32, 64, 64) channels and 2x2 max-pooling, followed by three residual-connected blocks with
64 channels and no down-sampling. Each layer is ReLU-activated and batch-normalized, and the
output fed into a 2-layer 1024-wide MLP. The network input is a 128x128x3x4 tensor constructed
by random spatial cropping of a stack of four consecutive 140x140 RGB images, sampled from our
dataset. The final embedding vector is \(l_2\)-normalized.The audio embedding function \(\psi\)
The audio embedding function, \(\psi\) , is as per \(\phi\) except that it has four, width-8, 1D convolutional layers
with (32, 64, 128, 256) channels and 2x max-pooling, and a single width-1024 linear layer. The input
is a width-137 (6ms) sample of 256 frequency channels, calculated using STFT. ReLU-activation and
batch-normalization are applied throughout and the embedding vector is \(l_2\)-normalized.The classification network \(\tau\)
The same shallow network architecture, \(\tau\) , is used for both temporal and cross-modal classification.
Both input vectors are combined by element-wise multiplication, with the result fed into a 2-layer
MLP with widths (1024, 6) and ReLU non-linearity in between. A visualization of these networks and
their interaction is provided in Figure 3. Note that although \(\tau_{td}\) and \(\tau_{cm}\) share the same architecture,
they are operating on two different problems and therefore maintain separate sets of weights.Generating training data
To generate training data, we sample input pairs \((v_i,w_i)\) (where \(v_i\) and \(w_i\) are sampled from the
same domain) as follows. First, we sample a demonstration sequence from our three training videos.
Next, we sample both an interval, \(d_k \in {[0],[1],[2],[3-4],[5-20],[21-200]}\), and a distance,
\(\Delta t \in d_k\). Finally, we randomly select a pair of frames from the sequence with temporal distance \(\Delta t\).
The model is trained with Adam using a learning rate of \(10^{-4}\) and batch size of 32 for 200,000 steps.agent‘s network
As described in Section 4, our imitation loss is constructed by generating checkpoints every N = 16
frames along the \(\phi\)-embedded observation sequence of a single, held-aside YouTube video. We train
an agent using the sum of imitation and (optionally) environment rewards. We use the distributed
A3C RL agent IMPALA [14] with 100 actors for our experiments. The only modification we make to
the published network is to calculate the distance (as per Equation(2)) between the agent and the next
two checkpoints and concatenate this 2-vector with the flattened output of the last convolutional layer.
We also tried re-starting our agent from checkpoints recorded along its trajectory, similar to Hosu et
al. [23], but found that it provided minimal improvement given even our very long demonstrations.
- 效果評估
??網絡訓練結束後,需要一種方式來評價編碼網絡的特征提取能力。受CycleGAN啟發,作者提出了循環一致(cycle-consistency)評估方法。
??假設有兩段長度為\(N\)的序列片段\(V=\{v_1,v_2,...,v_n\}\)和\(W=\{w_1,w_2,...,w_n\}\)。在提取的特征空間上定義歐氏距離\(d_{\phi}\),\(d_{\phi}(v_i,w_j)=||\phi(v_i)-\phi(w_j)||_2\)。
??評估方式如下:
??? — 先從\(V\)中挑選一幀數據\(v_i\),找出\(W\)中和\(v_i\)距離最近的一幀,\(w_j=\arg\min\limits_{w \in W}d_{\phi}(v_i,w)\)。
??? — 再從\(V\)中找出一幀和\(w_j\)距離最近的一幀,\(v_k=\arg\min\limits_{v \in V}d_{\phi}(v,w_j)\)。
?? ?— 如果\(v_i=v_k\),我們就稱\(v_i\)是循環一致的(cycle-consistency)。
??? — 同時再定義一個一一對應的特征匹配能力的指標,記為\(P_{\phi}\)。\(P_{\phi}\)表示在特征空間\(\phi\)上特征數據\(v \in V\)是循環一致(cycle-consistent)的百分比。
??此外,根據定義也可以在\(\phi\)上定義三重循環一致(3-cycle-consistency)和匹配能力指標\(P_{\phi}^3\)。這要求\(v_i\)在三個序列\(V,W,U\)上滿足\(V \rightarrow W \rightarrow U \rightarrow V\)和\(V \rightarrow U \rightarrow W \rightarrow V\)。
??實驗效果如下:
??可以看到TDC+CMC的效果是最好的。用t-SNE可視化展示如下:
?2. One-shot imitation from YouTube footage
- 問題分析
??domain gap問題已經解決,接下來是如何利用數據進行訓練。目前已經將遊戲視頻和agent的環境狀態對應上,但依然沒有動作和回報信息。作者選擇了其中一個視頻(a single YouTube gameplay video)根據狀態序列讓網絡學習。也就是說前面訓練特征提取的網絡時,使用了多個視頻,這裏模仿學習只用了一個視頻。按照作者的意思,一共有四個視頻,用三個視頻訓練特征提取網絡,用另一個視頻讓agent學習。 - 具體方法
??學習思路是讓agent在環境中探索動作,如果得到的狀態和視頻的狀態匹配,說明模仿到位,給一個大於0的回報,否則不給回報,也不給懲罰。具體學習方法如下:
??對於該視頻,每隔\(N\)幀(\(N=16\))設置一個檢查點(checkpoint),設置模仿回報
\[ r_{imitation}=\left\{\begin{array}{l}0.5 \ \ \ \ \ if \ \ \bar{\phi}(v_{agent})\cdot \bar{\phi}(v_{checkpoint})>\gamma \\0.0\ \ \ \ \ otherwise\end{array}\right.\]
??其中\(\gamma\)是衡量匹配度的閾值,\(\bar{\phi}(v)\)經過均值方差歸一化(zero-centered and \(l_2\)-normalized),所以可以通過向量點乘的方式度量匹配度。
??需要註意的是,模仿的動作不必完全一樣,允許網絡有自己的探索,所以文章把檢查點(checkpoint)設置成軟順序(soft-order)。具體說來,當上一步的checkpoint和\(v^{(n)}\)匹配時,下一個checkpoint不用必須和\(v^{(n+1)}\)匹配,只要下一個checkpoint和\(\Delta t\)時間內的狀態相匹配就給予獎勵,即只需要\(v_{checkpoint} \in \{v^{n+1},..,v^{n+1+\Delta t}\}\)。文中的設置為\(\Delta t =1,\gamma=0.5\),當只有圖像特征沒有音頻時,設置\(\gamma=0.92\)效果更好。
??訓練方法上,直接使用傳統的強化學習算法:分布式的A3C算法(distributed A3C RL agent IMPALA)。一共使用100個actor,reward設置為模仿學習的reward:\(r_{imitation}\),或者模仿學習reward和遊戲reward之和:\(r_{imitation}+r_{game}\)。這樣就得到了開頭視頻的展示效果。
??到此,方法介紹完畢。
四、實驗結果
??作者在文中給出了一些實驗數據,主要有特征提取的效果度量,和模仿學習的曲線以及遊戲得分。
- one-to-one alignment capacity
- meaningful abstraction
- learning curves
- score
五、總結
??這篇文章確實在三個遊戲上做出了效果,這毋庸置疑,但得分超過人類水平的主要原因還是在於模仿了人類高手的玩法。其創新不在於強化學習的算法,主要在於如何直接從視頻源進行模仿學習,避開了匹配狀態動作對\((S,a)\)的數據預處理步驟。關鍵點在於構造輔助任務,訓練特征提取網絡,更多的可以看做是一篇CV的文章。
??不過將模仿學習和強化學習相結合的訓練方式,值得認真思考和研究。
《Playing hard exploration games by watching YouTube》論文解讀