1. 程式人生 > >NOTE:Deep Reinforcement Learning with a Natural Language Action Space

NOTE:Deep Reinforcement Learning with a Natural Language Action Space

標題:Deep Reinforcement Learning with a Natural Language Action Space

來源:ACL 2016

問題

實驗任務:文字遊戲,實驗目標—-提出一種效果更好的DQN網路結構
(1)本文屬於探索深度增強學習在nlp領域的應用,實驗任務採用了nlp中較方便建立馬爾可夫過程的文字遊戲任務。文字遊戲任務本質還是遊戲,只是將當前遊戲的環境和現狀用文字描述出來,然後玩家根據閱讀後的理解輸入相應文字來作為操作方案。例如遊戲顯示“當前有兩條岔路,請問選擇左還是右?”,那麼玩家則相應輸入“左”或者“右”來作為操作。
(2)作者認為傳統的DQN網路在解決上述問題時實驗結果尚存不足,因而提出一種分開學習state和action向量表示的網路結構,並進行相應實驗

主要方法

本文采用的方法本質是深度增強學習,下面簡單介紹一下

深度增強學習即增強學習在深度學習上基礎的實現,本質是用深度神經網路來擬合增強學習中的Q函式,帶來的優勢是更強的擬合效果以及引入端到端的解決能力。增強學習的建模過程是基於馬爾可夫過程建模,因而訓練目標有別於傳統機器學習任務,傳統任務的訓練目標是減小期望輸出和目標輸出的絕對誤差,擬合過程是在單個時間點,而增強學習是尋求一個長期增益最大,且長期獎勵結果只存在相對最優,擬合過程也是建立在一段時間上。

增強學習有三個重要引數,狀態state,動作action,獎勵reward。整個任務的行進是基於馬爾可夫過程的時間序列,即某個state下,採取某個action,獲得相應的reward。增強學習時間序列如下

優化目標是使採取當前動作後,未來的累積獎勵最大,並引入λ作為折扣因子進行時間衰減。將長期獎勵引入狀態價值函式後經過等價變換後可以得到一個服從迭代過程的bellman方程,以下是累積獎勵等式狀態價值函式等價變換為bellman方程形式

等式中狀態價值函式v(s)可等價替換為動作價值函式Q(s,a),當Q(s,a)表示的是最優策略的價值時即為如下等式

優化目標即讓當前策略的動作價值函式無限逼近最優策略的價值函式,所以loss函式如下

至此,整個深度增強學習網路的優化目標就出來了,在這裡講解的比較簡略,後文的理解大家只需要套用深度學習的訓練,然後誤差函式如上設定即可,其中的w即為網路權重。如果還有什麼疑問歡迎自己查閱資料無果後諮詢。

本文具體工作

1、運用mlp分別構建兩個network,並各自將文字描述的狀態和動作encode為一個向量然後用一種逐元素操作方法得到Q值,比如對兩個向量作內積。內積就是相似度的一種表徵,也就是本文模型中的relevant。

2、然後執行值更新策略,更新策略網路Q,這裡的Q網路即上一步由兩個mlp網路merge出來的模型結構。以下是樣本k的差值,本文並未提到獎勵r如何得來,也許由遊戲本身反饋

3、探索與利用機制,本文並未採用傳統的e-greedy,而是採用softmax selection

上式的α稱為溫度,當它趨於0時傾向“僅利用”策略,當它趨於無窮時傾向“僅探索”,在訓練過程中該引數會逐漸由大變小。

4、演算法流程圖
首先初始化replay池,用於儲存產生的樣本,即(s[k],a[k],s[k+1],A[k+1],r[k]),當儲存樣本個數達到一定閾值隨機取出batch_size個樣本用作訓練。該機制的目的是打破樣本之間的時序關聯,避免樣本分佈受時間序列影響。
訓練的流程如下:

  • (1)將當前遊戲文字描述送入狀態網路生成狀態向量V(s),將候選action依次送入動作網路生成動作向量V(a),V(s)點積V(a)結果即為Q值,如此便得到候選action的Q值分佈
  • (2)再對應action的Q值分佈採取softmax selection策略選擇出一個action反饋給遊戲,得到當前獎勵r[k], 以及下一狀態s[k+1],關於s[k+1]重複(a)操作得到action的Q值分佈,選取Q值最高的action作為A[k+1],將(s[k],a[k],s[k+1],A[k+1],r[k])送入replay池。
  • (3)重複(a)(b)操作,直到replay池樣本個數達到一定閾值,取出batch_size個樣本用作訓練,對應更新狀態網路和動作網路,同時softmax selection的溫度根據迭代次數逐漸變小

相關工作:

舉出另外兩種baseline模型與本文模型比較
1、Max-action DQN

該模型適用於每一個transition中actions的最大數量是已知的情況,將每個transition中state和actions拼接成一個向量作為輸入,通過一個Deep Network得到每個action的Q值。論文Generating Text with Deep Reinforcement Learning採用的就是這種網路結構

Per-action DQN該模型將每一對(state,action)拼接成一個向量作為輸入,通過network得到每個action的Q值。

2、 在Saving John和Machine of Death兩個文字遊戲上的實驗結果

簡評

本文的核心是將深度增強學習應用到廣義上的nlp領域,但它的亮點則在於提出的DRRN模型。(我覺得text-game嚴格意義上來說不能算nlp任務)

首先需要指出率先將DQN應用到廣義nlp領域的文章是Language Understanding for Text-based Games using Deep Reinforcement Learning,採用的模型是簡化版的Max-action DQN,即沒有輸入候選action。率先將DQN應用到嚴格意義上nlp領域的文章是Generating Text with Deep Reinforcement Learning。兩者的模型都是MA DQN,action也都是詞,action-size也就是詞表的大小,那麼必然面臨一個nlp任務中常面臨的大詞表問題。詞表越大,難收斂問題也就越嚴重。

而本文的DRRN模型相比其他模型的優勢就在於單獨用兩個網路分別對映state和action.不僅解決了大詞表問題,而且降低了網路規模,並增加了網路資訊容量。又因為state往往是一個比較長的文字,可能是幾句話,而action一般來說是一個動詞短語,如果將state和action拼接送入單個網路結構後會降低action的影響,所以將state和action通過不同的網路結構進行學習,得到相同維度的表示再結合計算Q值可能效果更好。這也在實驗結果中得到了體現。

然而DRRN模型雖然名字很新,但它其實依舊是一個傳統的retrieval模型,只不過在DQN領域搖身一變穿了新衣,這種retrieval模型在QA領域極其常見,即將問題和答案分別用RNN encode出一個向量然後計算相似度,然後根據相似度打分rank出最優結果。

增強學習和nlp

在迭代過程中有兩個重要引數是r和Q,前者是獎勵,後者是動作價值函式,它的值反映的是長期的獎勵累積。本文並沒有指出r的由來,應該是由遊戲直接反饋結果,然而實際任務可能不存在這個反饋,所以就需要我們自己去生成對應的r值。例如,著名的alphaGo裡有兩個主要的網路結構,值網路和策略網路,前者就是對應的r。在nlp中,例如seq2seq任務,r值就可以是BLEU,QA中,r值就可以是NDCG。增強學習的優化目標是Q,既追求的是一個長期過程,建模過程也用了馬爾可夫決策建模,並不像傳統的機器學習任務那樣,每個樣本是一個獨立的完整事件。所以當我們在將增強學習運用到nlp領域時,我們需要思考什麼樣的nlp任務是這種滿足長期累積的平穩過程,或者怎麼將nlp任務轉化為這種長期任務來處理。

參考文獻

  1. Narasimhan K, Kulkarni T, Barzilay R. Language Understanding for Text-based Games UsingDeep Reinforcement Learning[J].EMNLP, 2015, 40(4):1-5.
  2. Guo H. Generating Text with Deep Reinforcement Learning[J].NIPS, 2015.
  3. Bahdanau D, Brakel P, Xu K, et al. An Actor-Critic Algorithm for Sequence Prediction[J]. arXivpreprint arXiv:1607.07086, 2016.