对偶学习
考慮一個對偶翻譯游戲,里面有兩個玩家小明和愛麗絲,如下圖所示。小明只能講中文,愛麗絲只會講英文,他們兩個人一起希望能夠提高英文到中文的翻譯模型f和中文到英文的翻譯模型g。給定一個英文的句子x,愛麗絲首先通過f把這個句子翻譯成中文句子y1,然后把這個中文的句子發(fā)給小明。因為沒有標注,所以小明不知道正確的翻譯是什么,但是小明可以知道,這個中文的句子是不是語法正確、符不符合中文的語言模型,這些信息都能幫助小明大概判斷翻譯模型f是不是做的好。然后小明再把這個中文的句子y1通過翻譯模型g翻譯成一個新的英文句子x1,并發(fā)給愛麗絲。通過比較x和x1是不是相似,愛麗絲就能夠知道翻譯模型f和g是不是做得好,盡管x只是一個沒有標注的句子。因此,通過這樣一個對偶游戲的過程,我們能夠從沒有標注的數(shù)據(jù)上獲得反饋,從而知道如何提高機器學(xué)習(xí)模型。
實際上這個對偶游戲和強化學(xué)習(xí)的過程比較類似。在強化學(xué)習(xí)中,我們希望提高我們的策略以最大化長遠的回報,但是沒有標注的樣本告訴我們在某個狀態(tài)x哪個動作y是正確的。我們只有通過使用這個策略在不同的狀態(tài)下執(zhí)行不同的動作,觀測該動作帶來的回報,從而改善我們的策略。在以上這個翻譯對偶游戲中,兩個翻譯模型就是我們的策略,因為沒有標注的雙語句對,所以我們不能直接改善它們。這個對偶游戲把一個沒有標注的句子x,先翻譯成另外一種語言的句子y1,再翻譯回來為x1,這里x就是強化學(xué)習(xí)中的狀態(tài),y1和x1就是我們的策略所執(zhí)行的動作,x和x1的相似度就是我們獲得的回報。
我們可以用已有的強化學(xué)習(xí)的算法來訓(xùn)練我們這兩個翻譯模型,比如策略梯度方法。策略梯度方法的基本思想非常簡單:如果我們在執(zhí)行某個動作之后,觀測到了一個很大的回報,我們就通過調(diào)整策略(在當(dāng)前策略函數(shù)的參數(shù)上加上它的梯度)來增加這個狀態(tài)下執(zhí)行這個動作的概率;相反,如果我們在執(zhí)行某個動作之后,觀測到了一個很小的回報,甚至是負的回報,那么我們就需要調(diào)整策略(在當(dāng)前策略函數(shù)的參數(shù)上減去它的梯度),以降低在這個狀態(tài)下執(zhí)行這個動作的概率。
實測與展望
我們在一個英語-法語翻譯的公共數(shù)據(jù)集上測試了對偶學(xué)習(xí)的有效性,并和當(dāng)前最好的算法(NMT,基于深度神經(jīng)網(wǎng)絡(luò)算法)進行了對比。這個數(shù)據(jù)集的訓(xùn)練集有1200萬個英法的雙語句對,NMT用了所有的1200萬個雙語句對訓(xùn)練模型。我們的對偶算法只用了不到10%的雙語句對初始化兩個翻譯模型f和g,再用沒有標注的英法語句進行訓(xùn)練。如下圖所示,我們的對偶學(xué)習(xí)算法只用10%的標注數(shù)據(jù)就達到了和NMT用上所有標注數(shù)據(jù)而取得的相似的甚至更好的翻譯準確度,也就是說我們可以把數(shù)據(jù)標注的代價從2000萬美元降到200萬美元左右。這個結(jié)果說明了我們提出的對偶學(xué)習(xí)方法能夠非常有效地利用未標注的數(shù)據(jù)。
對偶學(xué)習(xí)的基本思想是兩個對偶的任務(wù)能形成一個閉環(huán)反饋系統(tǒng),使我們得以從未標注的數(shù)據(jù)上獲得反饋信息,進而利用該反饋信息提高對偶任務(wù)中的兩個機器學(xué)習(xí)模型。該思想具有普適性,可以擴展到多個相關(guān)任務(wù)上面,前提是只要它們能形成一個閉環(huán)反饋系統(tǒng)。例如,從中文翻譯到英文,然后從英文翻譯到日文,再從日文翻譯到中文。另外一個例子是從圖片轉(zhuǎn)化成文字,然后從文字轉(zhuǎn)成語音,再從語音轉(zhuǎn)化成圖片。
對偶學(xué)習(xí)(dual learning)和已有的學(xué)習(xí)范式有很大的不同。首先,監(jiān)督學(xué)習(xí)(supervised learning)只能從標注的數(shù)據(jù)進行學(xué)習(xí),只涉及一個學(xué)習(xí)任務(wù);而對偶學(xué)習(xí)涉及至少兩個學(xué)習(xí)任務(wù),可以從未標注的數(shù)據(jù)進行學(xué)習(xí)。其次,半監(jiān)督學(xué)習(xí)(semi-supervised learning)盡管可以對未標注的樣本生成偽標簽,但無法知道這些偽標簽的好壞,而對偶學(xué)習(xí)通過對偶游戲生成的反饋(例如對偶翻譯中x和x1的相似性)能知道中間過程產(chǎn)生的偽標簽(y1)的好壞,因而可以更有效地利用未標注的數(shù)據(jù)。我們甚至可以說,對偶學(xué)習(xí)在某種程度上是把未標注的數(shù)據(jù)當(dāng)作帶標簽的數(shù)據(jù)來使用。第三,對偶學(xué)習(xí)和多任務(wù)學(xué)習(xí)(multi-task learning)也不相同。盡管多任務(wù)學(xué)習(xí)也是同時學(xué)習(xí)多個任務(wù)共的模型,但這些任務(wù)必須共享相同的輸入空間,而對偶學(xué)習(xí)對輸入空間沒有要求,只要這些任務(wù)能形成一個閉環(huán)系統(tǒng)即可。第四,對偶學(xué)習(xí)和遷移學(xué)習(xí)(transfer learning)也很不一樣。遷移學(xué)習(xí)用一個或多個相關(guān)的任務(wù)來輔助主要任務(wù)的學(xué)習(xí),而在對偶學(xué)習(xí)中,多個任務(wù)是相互幫助、相互提高,并沒有主次之分。因此,對偶學(xué)習(xí)是一個全新的學(xué)習(xí)范式,我們預(yù)計其會對機器學(xué)習(xí)領(lǐng)域產(chǎn)生很大的影響,特別是考慮到以下兩個點。
第一, 很多深度學(xué)習(xí)的研究人員認為人工智能和深度學(xué)習(xí)的下一個突破是從未標注的數(shù)據(jù)進行學(xué)習(xí)。由于未標注的數(shù)據(jù)沒有標簽信息,無監(jiān)督學(xué)習(xí)主要聚焦在聚類、降維等問題,因此,如何從未標注的數(shù)據(jù)進行端到端的學(xué)習(xí)(把數(shù)據(jù)映射到標簽,如分類、預(yù)測等任務(wù))一直沒有很好方法。我們提出的對偶學(xué)習(xí)提供了一個利用未標注數(shù)據(jù)進行端到端學(xué)習(xí)的有效方式。
第二, 近年來強化學(xué)習(xí)取得了很大的成功,吸引了眾多的研究人員和工業(yè)界人員的關(guān)注。但是到目前為止,強化學(xué)習(xí)的成功主要是在各種游戲上,因為在游戲中規(guī)則定義得非常清楚,并且很容易通過玩大量的游戲獲取回報信息(例如Atari游戲中每一步的得分,圍棋中最后的輸贏),從而改善游戲策略。然而在游戲以外的實際應(yīng)用中并沒有規(guī)范定義的規(guī)則,也很難獲得回報信息(或者獲取的代價很高),因而強化學(xué)習(xí)在復(fù)雜的實際應(yīng)用中的成功還是比較有限。而對偶學(xué)習(xí)提供了一種為強化學(xué)習(xí)獲取獎勵信息的方式,并證實了強化學(xué)習(xí)在復(fù)雜應(yīng)用(如翻譯)中成功的可能。
總結(jié)
- 上一篇: 12岁“乖乖女”出走后割腕欲轻生 警方3
- 下一篇: 疲劳驾驶预警系统