這篇論文是一篇綜述性質(zhì)的文章吧揩魂,研究了現(xiàn)有的Seq2Seq模型的應(yīng)用和不足炮温,以及如何通過不同的強(qiáng)化學(xué)習(xí)方法解決不足,寫的深入具體忘分,mark一下。
本文的順序是對文章的一個總結(jié)白修,并不是文章真實(shí)的組織順序妒峦。
論文鏈接:https://www.paperweekly.site/papers/1973
代碼鏈接:https://github.com/yaserkl/RLSeq2Seq
1、Seq2Seq模型
1. Seq2Seq模型簡單回顧
Seq2Seq是解決序列問題的一種通用算法框架兵睛,在文章摘要肯骇、標(biāo)題生成、對話系統(tǒng)祖很、語音識別笛丙、圖像轉(zhuǎn)文本等領(lǐng)域都有廣泛的應(yīng)用,模型結(jié)構(gòu)如下圖所示:
訓(xùn)練時假颇,Encoder的輸入是訓(xùn)練數(shù)據(jù)中的真實(shí)序列形耗,Decoder也是訓(xùn)練數(shù)據(jù)中的真實(shí)序列,Decoder階段每個時刻t的輸出經(jīng)過softmax之后得到選擇每個單詞的概率,并選擇交叉熵?fù)p失函數(shù)作為模型損失指導(dǎo)模型的訓(xùn)練愧哟,交叉熵?fù)p失函數(shù)如下圖所示:
預(yù)測階段,Decoder時刻t的輸入是t-1時刻輸出的概率最大的單詞灭抑。這一階段可以通過beam-search的方法選擇一條最合適的序列作為輸出案腺。同時拷姿,選擇ROUGE , BLEU, METEOR, CIDEr等方法抵乓,對模型的預(yù)測結(jié)果進(jìn)行評價田弥。
1.2 Seq2Seq模型的應(yīng)用
文章總結(jié)了Seq2Seq的在各個領(lǐng)域的應(yīng)用:
1.3 Seq2Seq模型存在的問題
文章中指出Seq2Seq模型存在以下兩個問題:
exposure bias:這個可以簡單理解為只泼,一步錯步步錯,只要Decoder某個時刻的輸出是錯誤的鸥印,那會導(dǎo)致后面整個序列都是錯誤的骚揍。
mismatch in training and evaluating:在訓(xùn)練階段選擇的是交叉熵?fù)p失進(jìn)行模型的訓(xùn)練,在預(yù)測階段丁逝,選擇ROUGE等方法來評估模型罪既,這就導(dǎo)致了mismatch的問題探熔,即交叉熵?fù)p失最小的模型并不一定在ROUGE評估中效果最好涡驮,通過ROUGE等方法評估的最好的模型,并不一定能使交叉熵?fù)p失最小忱辅。
2橡卤、強(qiáng)化學(xué)習(xí)算法對于改進(jìn)Seq2Seq模型的一些思路
2.1 Seq2Seq中的強(qiáng)化學(xué)習(xí)
在Seq2Seq方法中強(qiáng)化學(xué)習(xí)的幾個關(guān)鍵要素是如下定義的:
State:強(qiáng)化學(xué)習(xí)發(fā)生在Decoder階段碧库,時刻t的State定義為前面已經(jīng)選擇的t-1個單詞和當(dāng)前模型的輸入
Action:Action是根據(jù)某種策略選擇一個單詞作為時刻t的輸出
Reward:獎勵考慮立即的獎勵和未來的獎勵,這里的獎勵可以理解為當(dāng)生成完整個句子之后吠架,通過ROUGE等評估方法得到的反饋菠劝。
強(qiáng)化學(xué)習(xí)中的幾個重要的公式如下:
Q函數(shù)和狀態(tài)價值函數(shù)
優(yōu)勢函數(shù)
為什么要引入優(yōu)勢函數(shù),這里主要是淡化state的影響鸠珠,我們不再去關(guān)心state本身的好壞巍耗,而只關(guān)心在當(dāng)前state下選取的action的好壞。優(yōu)勢函數(shù)計算如下:
優(yōu)勢函數(shù)刻畫了當(dāng)前狀態(tài)下渐排,每個動作對這個特定狀態(tài)的好壞炬太。V(s)是所有動作的獎勵的期望值,因此優(yōu)勢函數(shù)大于0的動作所能獲得的獎勵高于期望值驯耻,而優(yōu)勢函數(shù)小于0的動作所能獲得的獎勵值小于期望值亲族。
強(qiáng)化學(xué)習(xí)的目標(biāo)
強(qiáng)化學(xué)習(xí)的目標(biāo)可以是下面三個中的任意一個:
即最大化期望獎勵炒考,最大化每個時刻的優(yōu)勢函數(shù),最大化每個時刻的Q值霎迫。
2.2 Policy Gradient
策略梯度的方法的優(yōu)化目標(biāo)是我們剛才提到的第一個斋枢,即最大化期望獎勵,那么結(jié)合Seq2Seq是怎么做的呢知给?將文中提到的一下碎片化的東西整理一下瓤帚,可以得到以下的過程:
Pre-train模型
為了提高模型的收斂速度,我們需要首先預(yù)訓(xùn)練模型涩赢,預(yù)訓(xùn)練模型使用交叉熵?fù)p失函數(shù)戈次。
每次訓(xùn)練采樣N個序列
在每次訓(xùn)練的時候,基于當(dāng)前的模型采樣得到N個完整的序列筒扒。采樣基于Decoder每個時刻t的輸出經(jīng)softmax后的結(jié)果怯邪,并作為下一時刻的輸入。原文中一開始說每次訓(xùn)練指采樣一個序列花墩,但是這對模型來說Variance非常大悬秉,因?yàn)椴煌男蛄械玫降腞eward差別很大,模型的方差自然也很大冰蘑。
通過ROUGE等方法得到reward并訓(xùn)練
為了保證訓(xùn)練和預(yù)測時模型的一致性搂捧,我們通過ROUGE等方法得到這批序列的reward,并使用如下的損失函數(shù)進(jìn)行模型的訓(xùn)練:
上面的損失函數(shù)的意思即懂缕,我們希望加大能夠得到更大reward的詞出現(xiàn)的概率,減小得到較低reward的詞出現(xiàn)的概率王凑。
另一個需要注意的點(diǎn)搪柑,文章中提到,減去一個rb(rb一般通過這一批Sample的平均reward得到)可以減小模型的方差Variance索烹,是否減去這個rb是不會影響期望的損失的工碾。為什么會減小Variance呢?這就好比優(yōu)勢函數(shù)的概念百姓,我們忽略state本身好壞的影響渊额,而只關(guān)注在這個state下,action的好壞垒拢。
Policy Gradient算法缺點(diǎn)
使用該方法可以得到一個無偏的反饋旬迹,但是需要采樣完整的序列才可以得到獎勵,因此收斂速度可能非常慢求类,因此考慮時間差分的方法奔垦,即在每一步采樣之后都能夠得到一個反饋,可以考慮Actor-Critic方法和DQN等方法尸疆。
2.3 Actor-Critic Model
使用Actor-Critic的最大化目標(biāo)是優(yōu)勢函數(shù)最大化椿猎,即:
使用AC方法無需進(jìn)行一個完整序列的采樣惶岭,可以在每一步通過Critic來估計我們可能得到的獎勵。上面的式子中犯眠,我們期望的是優(yōu)勢函數(shù)最大化按灶,優(yōu)勢函數(shù)計算如下:
可以近似的認(rèn)為是下面的式子:
因此,我們的Critic估計的其實(shí)是一個狀態(tài)的價值筐咧,即V(s)鸯旁。Critic對狀態(tài)價值V(s)的估計通過監(jiān)督學(xué)習(xí)的方式進(jìn)行訓(xùn)練:
vi是通過采樣以及ROGUE評估的到的當(dāng)前狀態(tài)的真實(shí)價值,即:
因此嗜浮,Actor-Critic的過程如下所示:
使用AC的方法羡亩,我們可以減小模型的方差,因?yàn)槲覀兪窃诿恳徊蕉加幸粋€獎勵的反饋危融,但是這個反饋是有偏畏铆,因?yàn)槲覀儧]有觀測一個完整的序列而得到獎勵。
當(dāng)模型收斂后吉殃,我們認(rèn)為我們的Actor已經(jīng)是最優(yōu)的策略了辞居。那么在預(yù)測階段,我們就可以采用beam-search或者是greedy的方法蛋勺,根據(jù)Encoder的輸入來得到Decoder的輸出瓦灶。
2.4 Actor-Critic with Q-Learning
使用該方法的最優(yōu)化目標(biāo)是Q值最大化,通過Q值的反饋來更新Actor的策略抱完,即:
此時Critic預(yù)估的是Q值贼陶,其通過下面的式子進(jìn)行訓(xùn)練:
式子中第一項(xiàng)是q-eval值,即預(yù)估的Q值巧娱,第二項(xiàng)是q-target碉怔,即真實(shí)的Q值,我們希望二者越相近越好禁添。真實(shí)的Q值如何計算呢撮胧,在上圖式子中的第二行給出了答案,即立即獲得的獎勵老翘,加上下一個狀態(tài)所能獲得的最大獎勵的折現(xiàn)芹啥。
可以看到,基于Q函數(shù)和上面的AC方法有兩點(diǎn)的不同铺峭。首先墓怀,基于Q函數(shù)只需要得到當(dāng)前的立即獎勵,而另一種方法需要完整的采樣卫键,然后計算多輪獎勵的折現(xiàn)和捺疼,作為狀態(tài)價值V(s)。另外永罚,基于Q函數(shù)的Critic估計的是狀態(tài)-動作對的Q值啤呼,而另一種方法估計的是狀態(tài)價值V(s)
Deep-Q-learning的具體過程如下:
3卧秘、其他注意的點(diǎn)
3.1 Deep-Q-learning的改進(jìn)
文中主要提到了雙網(wǎng)絡(luò)結(jié)構(gòu)Double-DQN,加入優(yōu)勢函數(shù)的Dueling-DQN官扣,以及通過經(jīng)驗(yàn)池來減少數(shù)據(jù)中相關(guān)性等等翅敌。
不同的強(qiáng)化學(xué)習(xí)方法有缺點(diǎn)如下:
3.2 RL+Seq2Seq的應(yīng)用
文中總結(jié)了不同應(yīng)用的Seq2Seq和RL的結(jié)合,其狀態(tài)惕蹄,動作以及價值分別是什么蚯涮。如下表所示:
本文只是對文章內(nèi)容的一個簡單理解,大家如果感興趣的話卖陵,可以閱讀原文遭顶,也歡迎大家與我討論!