0
本文作者: AI研習社-譯站 | 2018-10-29 14:22 |
本文為 AI 研習社編譯的技術博客,原標題 :
A Little Review of Domain Adaptation in 2017
翻譯 | 小豬咪 校對 | Lamaric 整理 | 志豪
原文鏈接:
https://artix41.github.io/static/domain-adaptation-in-2017/index.html
注:本文的相關鏈接請點擊http://ai.yanxishe.com/page/TextTranslation/1093進行訪問
這篇文章原為 quora 中2017年機器學習領域最杰出的成就是什么?問題下的答案。
2017是領域自適應形式大好的一年:產(chǎn)生了一些優(yōu)秀的圖對圖、文對文轉(zhuǎn)換的成果,對抗方法的應用水平顯著提高,一些卓越的創(chuàng)新算法被提出以解決兩領域間適應時的巨大問題。
通過領域適應,我是指任何想要對兩個領域(通常叫做源和目標,如繪畫作品和真實圖片)間進行轉(zhuǎn)換的算法,都想把它們映射到一個公共的領域。為了達到這一效果,你可以選擇把一個領域轉(zhuǎn)換成另一個(如把繪畫轉(zhuǎn)換成照片),也可以找到兩個領域間一個公共的映射。當只有源域有標簽而我們想要給目標域預測標簽時,這就被稱為無監(jiān)督的領域適應,也是這些成果最杰出的地方。有很多評估 DA 算法的基準,一個最常用的就是通過 MNIST 集(一個最常見的手寫數(shù)據(jù)集)和它的標簽來預測 SVHN(一個門牌號碼數(shù)據(jù)集)的標簽。在一年的時間里,準確度從90%(這是 DTN 的結果,相比于之前算法如 DRCN 等的82%已經(jīng)有了很大提高),進一步提升到了99.2%(self-ensembling DA 的結果)。除了準確度上的量化分析,今年的一些算法結果在質(zhì)量上也十分驚人,尤其是在視覺領域自適應和自然語言處理方面。
圖1 利用2017年5月發(fā)表的 SBADA-GAN[4] 完成從 SVHN 到 MNIST 的轉(zhuǎn)化。為了測試 DA 算法,你可以只利用 MNIST 的標簽,采用二者間無監(jiān)督轉(zhuǎn)化的方法預測 SVHN 的標簽。
讓我們來總結一下這一年領域自適應方向的卓越成果吧。
如果說2015年是對抗域適應出現(xiàn)的一年( 由 DANN[5]為代表),而2016年是基于 GAN 的域適應出現(xiàn)的一年(由 CoGAN[6] 和 DTN[2:1]),那么2017年就是這些方法大幅長進并產(chǎn)生驚人成果的一年。
對抗域適應背后的思想是訓練兩個神經(jīng)網(wǎng)絡:一個辨別網(wǎng)絡試圖分辨變換后的源域與目標域,而生成網(wǎng)絡則試圖使源域變得盡可能逼近目標域以迷惑辨別網(wǎng)絡。它的思想主體還是 GAN ,只不過輸入的是源域的分布而不是均勻分布(通常被稱為條件 GAN )。我做了一個小動畫來更直觀地解釋這個概念(代碼在這里):
圖2 基于 GAN 的兩個高斯分布域的對抗域適應。判別器(背景)嘗試將綠色和橘色的分布分離開,生成器則修正綠色的分布來迷惑判別器。代碼在這兒。
所以,2017年的“重大進展”是什么呢?
首先在2月份,ADDA[7]發(fā)布了一個泛化對抗域適應理論模型框架并在一個簡單的 SVHN → MNIST 的 GAN 損失上達到了76.0%的分數(shù)(他們認為這是對抗網(wǎng)絡在這個任務上最好的分數(shù),但他們可能在提交論文時還沒有聽說過 DTN 這個模型)。
一個月之后,對抗域適應領域的一個最重要的成果出現(xiàn)了: CycleGAN[8] 提出的的循環(huán)一致?lián)p失。這篇文章真的稱得上是一場革命式創(chuàng)新。他們的思想是訓練兩個條件 GAN ,一個完成從源到目標的轉(zhuǎn)化,一個正相反,之后他們考慮了一種稱作循環(huán)一致?lián)p失的新的損失函數(shù),它保證了如果你將兩個網(wǎng)絡連接到一起,將會得到一個恒等映射(源 → 目標 → 源)。他們的從馬到斑馬以及從畫到照片的轉(zhuǎn)換結果十分出名,我覺得這真是這一年最酷炫的東西之一了!和其它如 pix2pix[9], 等方法不同的是,他們沒有用成對的圖片訓練網(wǎng)絡(比如 pix2pix 用到的貓的照片和同樣一只貓的素描),而僅僅用到了兩個獨立的分布,這也使得他們的工作更加引人注目。
圖3 CycleGAN 的圖-圖轉(zhuǎn)換示例
有意思的是很多其它文章在三到五月幾乎同時發(fā)現(xiàn)了循環(huán)一致?lián)p失,有些時候還叫不同的名字(如重建損失)。以 DiscoGAN[10] 為例,它提出的損失就略有不同(比如對 GAN loss 使用了交叉熵代替了均方誤差),但他們也達到了很棒的效果,實現(xiàn)了同時對質(zhì)地屬性(比如將金發(fā)變成棕色頭發(fā)的人,將女人變成男人,或?qū)⒋餮坨R的人變成不戴眼鏡的人)和幾何屬性(椅子變成汽車,臉變成汽車)進行轉(zhuǎn)換。
圖4 DiscoGAN 的圖-圖轉(zhuǎn)換示例
DualGAN[11] 也是一樣,它用到了 WGAN 以及其它一些近期出現(xiàn)的用于更好地訓練GAN 模型的技巧 。它將模型用于做白天←→黑夜或素描←→照片的轉(zhuǎn)換,下面是他們的結果:
圖5 DualGAN 的圖-圖轉(zhuǎn)換示例
但上面提到的三篇文章都沒有考慮到任何帶有任務的數(shù)據(jù)集(如分類任務),所以不能給出他們方法的量化評價。 SBADA-GAN[4:1] 做到了這一點,他們在網(wǎng)絡的最后加入了一個分類器來預測源域和轉(zhuǎn)換之后的目標域圖片的標簽。在訓練過程中,將偽標簽分配給給目標樣本以生成分類損失。在 SVHN → MNIST 上得到的分數(shù)不是很高(~76%,和 ADDA 相仿),但他們在反變換上(MNIST→SVHN) 以及在 MNIST ←→ USPS 上(另一個和 MNIST很像的手寫數(shù)字數(shù)據(jù)集)都達到了新的 SOTA 成果。
還有一種對抗結構今年在數(shù)字基準模型上可謂是大獲成功,四月份發(fā)表的 GenToAdapt[12] 在 SVHN → MNIST 上達到了92.4%的高分,可以說是這一年第一個可以稱得上 state-of-the-art 的工作。他們的技術簡單說來是使用了 GAN 模型從源域和目標域提取樣本生成源域圖像,并用判別器鑒別真?zhèn)我约按_認源域樣本不同的分類標簽(就像 AC-GAN )。這種機器學習得來的 embedding 方法訓練好之后將被用來訓練第三個網(wǎng)絡,C,來直接預測輸入樣本的標簽。下面的這張圖(來自原論文)肯定比我的解釋清楚多啦。
圖6 GenToAdapt 的結構
一種Nvidia提出的對抗結構, UNIT[13] ,也表現(xiàn)不凡。就像 Nvidia 的其他文章一樣,他們展示出了很多驚艷的實驗結構(比如基于不同外部條件的圖-圖轉(zhuǎn)換, GTA 和現(xiàn)實的切換,不同品種的狗變換等)。他們也在 SVHN → MNIST 上測試了他們的算法并達到了90.53%的分數(shù),和 DTN 的得分十分接近,但他們的圖像分辨率要高得多。他們的技術基于一種含有兩個 GAN 模型的 CoGAN[6:1] ,一個生成源域圖像,一個生成目標域圖像,一些層之間權值共享。Nvidia 的主要貢獻是把生成器用VAE 實現(xiàn)了,他們的確成功展示出了 VAE 損失和前述文章中的循環(huán)一致?lián)p失的等價性。
圖7 UNIT 的圖-圖變換部分結果
然而這些結構只適用于在一次變換中從一個源域變換到一個目標域。如果你有多個域,就應該有一種網(wǎng)絡訓練的方法在所有的域間做變換。9月份 StarGAN[14] 把 CycleGAN應用到了所謂的多域適應問題中。他們對于同一個體的發(fā)色和情緒變換的結果的確很驚人,正如你們所看到的這樣:
圖8 StarGAN 的多域圖像變換示例
從上述例子中可以看到域適應領域的研究基本聚焦在計算機視覺領域(CV),但去年最重要的且共享的文章之一出自自然語言處理領域(NLP):Word Translation Without Parallel Data[15]。他們主要采用了對抗域適應的方法,找到了一個兩種語言(源和目標)樣本間的 embedding,而且在不依賴任何翻譯樣例的情況下達到了很高的準確率!如果你讀過這篇文章,你會注意到“域適應”的字樣一次也沒有出現(xiàn)……因為大多數(shù) DA 的研究猿都在計算機視覺領域,看起來那些 NLP 領域?qū)懗鲞@篇文章的家伙自己都沒有意識到他們的工作實際上進入了域適應的范疇。所以我覺得,如果 NLP 的研究員們嘗試著在今年 CV 社群中涌現(xiàn)出的大量而優(yōu)秀的 DA 新方法上測試他們的數(shù)據(jù)的話,可能會收獲滿滿呢。
圖9 源域(英語)和目標域(意大利語)的嵌入詞空間的校準
最后,我剛剛只提到了未配對的域適應(就是說你在訓練的時候不使用任何配對的源/目標樣例),但配對的 DA 也由 pix2pixHD[16] 帶來了一場小革新。它可以說是 pix2pix (一個基于配對樣本訓練的條件對抗生成網(wǎng)絡)的升級版本,用了許多小技巧來使它可以適用于更大的圖像。他們把網(wǎng)絡訓練得可以將區(qū)域分割后的圖片轉(zhuǎn)換為真實的街景照片,正如你在下面的動畫演示中看到的那樣:
圖10 利用pix2pix HD生成的從區(qū)域分割圖向真實街景的轉(zhuǎn)化效果
除了對抗域適應,今年也有人嘗試了許多其它方法,它們中的一些還是很成功的。近期有兩個方法試圖找到源和目標域間的通用嵌入法,最后達到了利用一個神經(jīng)網(wǎng)絡就能對兩個域的樣本進行分類的效果。
第一個是 Associative DA (\( DA_{assoc} \))[17] ,它在 SVHN→MNIST 任務中達到了97.6%的分數(shù)。為了找到最佳 embedding 方式,他們使用了2017年的新趨勢…循環(huán)一致?lián)p失!是的,這個方法再一次的出現(xiàn)了,只不過這次沒有任何 GAN 和對抗網(wǎng)絡的痕跡:它們只是嘗試學習出一種 embedding 方法(前年這是用神經(jīng)網(wǎng)絡實現(xiàn)的),以使得當來自兩個域的樣本屬于同一類別時,從源域樣本向目標域轉(zhuǎn)換(基于 embedding 空間里兩點間的距離),再轉(zhuǎn)換回另一個源域樣本的可能性會更高。
第二個是Self-Ensembling DA[3:1] ,它的99.2%的極高的準確率可真是把我們的 SVHN→MNIST 測試基準模型按在地上摩擦!看來明年我們要尋找新的測試基準了!這樣的效果是通過引入 Mean Teacher 達到的,這是一個來自半監(jiān)督學習領域并達到了最近 SOTA 成果的工作。它的思想是,有兩個網(wǎng)絡分別叫做 student 和 teacher,而 teacher 的權重是整個訓練過程中 student 網(wǎng)絡權重的動態(tài)平均值。之后,有標簽的源域樣本被用作訓練 student 網(wǎng)絡以使之成為一個更好的分類器,而無標簽的目標域樣本被用作訓練 student 網(wǎng)絡來使之接近 teacher 網(wǎng)絡(利用一致性損失)。你可以在這里看到一個更直觀的可視化解釋。
還有一種方法也是今年的產(chǎn)物:基于最優(yōu)傳輸?shù)念I域自適應。最優(yōu)傳輸是應用數(shù)學中一個巨大的領域,其中就包含如何找到從一個分布到另一個的最優(yōu)傳輸方案:通過最小化從源集到目標集的傳輸?shù)南目偤?。比如說,如果你考慮兩個點集(含有相同數(shù)目的點),分別是源集和目標集,簡單的將歐拉距離作為消耗函數(shù),那么最優(yōu)傳輸就要求你把每個源點和目標點相關聯(lián)從而使總距離最小化。下面是對于兩個高斯分布域的解:
圖11 兩個高斯分布域間的最優(yōu)傳輸方案,每個源點被傳輸?shù)揭粋€目標點,總距離被最小化了。這個圖是通過 POT 庫生成的。
如果你想了解更多有關 OT 的內(nèi)容,這篇博文是一個絕佳的綜述。
如果你已經(jīng)開始對域適應有所涉獵,我覺得現(xiàn)在你可以清楚地看到 OT 和DA 間的聯(lián)系。這兩個領域間的關系在 2016[18]年被理論化出來,但一個非常有趣的算法在2017年才出現(xiàn):聯(lián)合分布最優(yōu)傳輸(JDOT)[19]。他們的方案是一個迭代的過程:在一次迭代過程中,偽標簽被賦給每一個目標點(最開始是使用一個在源樣本上訓練出來的分類器)。之后的目標是從每一個源點傳輸?shù)侥繕它c,但最小化的不止是總距離,還有傳輸過程中變化了的標簽的總數(shù)(源點標簽和目標點的偽標簽)。我在這里做了一個可視化的說明:一個 JDOT 算法的可視化說明,在下面的 GIF 里可以了解一個大概(我不能確定如果不在每一步停頓的話是否還方便大家理解):
圖12 展示 JDOT 算法中不同步驟的動畫。你可以在這里找到單獨的每一張圖片和附加說明。
總結來說呢,2017年不僅用絕佳的分數(shù)碾壓了一些域適應的標準評測方法,而且還創(chuàng)造出了第一個從一個域到另一個的高質(zhì)量圖片轉(zhuǎn)化(就像你在上面看到的這些圖片)。但我們還可以在許多更加復雜的評測機制上做到更好,并且把 DA 方法運用到機器學習的其他領域中去(比如強化學習和 NLP)。所以2018很有機會變得和2017年同樣優(yōu)秀,我很期待這一年能看到哪些新的成果!
如果你想學習更多和領域自適應相關的內(nèi)容,我在維護一個關于 DA 和遷移學習的資源列表(包含文章,數(shù)據(jù)集和成果等),在這里可以找到它們。
免責聲明:這些文章的描述僅限于我個人目前對它們的理解,所以抱著懷疑的態(tài)度來審視它們吧,如果你發(fā)現(xiàn)我有表述上的錯誤或不精確之處請毫不猶豫地告訴我。再來看我給出的這些結果,它們只是原文中說明的,因此事實上,為了給出一個更加真實可靠的比對結果可能還需要運用一些更加嚴謹?shù)姆椒ā?/span>
戳鏈接 http://ai.yanxishe.com/page/TextTranslation/1093
AI研習社每日更新精彩內(nèi)容,觀看更多精彩內(nèi)容:
等你來譯:
深度網(wǎng)絡揭秘之深度網(wǎng)絡背后的數(shù)學
如何開發(fā)多步空氣污染時間序列預測的自回歸預測模型
(Python)可解釋的機器學習模型
很有啟發(fā)性的25個開源機器學習項目
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。