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