分布对齐 目标函数 迁移学习_原创 | 清华开源迁移学习算法库
本文長度為1700字,建議閱讀6分鐘
本文為你介紹 Trans-Learn 算法庫。
Trans-Learn是基于PyTorch實現(xiàn)的一個高效、簡潔的遷移學(xué)習(xí)算法庫,目前發(fā)布了第一個子庫——深度域自適應(yīng)算法庫(DALIB),支持的算法包括:
- Domain Adversarial Neural Networks (DANN)
- Deep Adaptation Network (DAN)
- Joint Adaptation Networks (JAN)
- Conditional Adversarial Domain Adaptation (CDAN)
- Maximum Classifier Discrepancy (MCD)
- Margin Disparity Discrepancy (MDD)
項目地址:
https://github.com/thuml/Transfer-Learning-Library
域自適應(yīng)背景介紹
目前深度學(xué)習(xí)模型在部分計算機(jī)視覺、自然語言處理任務(wù)中已經(jīng)超過了人類的表現(xiàn),但是它們的成功依賴于大規(guī)模的數(shù)據(jù)標(biāo)注。但是實際場景中,標(biāo)注數(shù)據(jù)往往是稀缺的。解決標(biāo)注數(shù)據(jù)稀缺問題的一個方法是通過計算機(jī)模擬生成訓(xùn)練數(shù)據(jù),例如用計算機(jī)圖形學(xué)的技術(shù)合成訓(xùn)練數(shù)據(jù)。
圖表 1 VisDA2017競賽任務(wù)但是由于訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)不再服從獨立同分布,訓(xùn)練得到的深度網(wǎng)絡(luò)的準(zhǔn)確率大打折扣。為了解決上述數(shù)據(jù)漂移造成的問題,域自適應(yīng)(Domain Adaptation) 的概念被提出。域自適應(yīng)的目標(biāo)是將模型在源域(Source) 學(xué)到的知識遷移到目標(biāo)域(Target)。例如計算機(jī)模擬生成訓(xùn)練數(shù)據(jù)的例子中,合成數(shù)據(jù)是源域,真實場景的數(shù)據(jù)是目標(biāo)域。域自適應(yīng)有效地緩解了深度學(xué)習(xí)對于人工標(biāo)注數(shù)據(jù)的依賴,受到了學(xué)術(shù)界和工業(yè)界廣泛的關(guān)注。目前已經(jīng)被引入到圖片分類、圖像分割(Segmentation)、目標(biāo)檢測(Object Detection)、機(jī)器翻譯(Machine Translation) 等眾多任務(wù)上。
吳恩達(dá)曾說過:“在監(jiān)督學(xué)習(xí)之后,遷移學(xué)習(xí)將引領(lǐng)下一波機(jī)器學(xué)習(xí)技術(shù)商業(yè)化浪潮。”隨著產(chǎn)品級的機(jī)器學(xué)習(xí)應(yīng)用進(jìn)入數(shù)據(jù)稀缺的領(lǐng)域,監(jiān)督學(xué)習(xí)得到的尖端模型性能大打折扣,域自適應(yīng)變得至關(guān)重要。
研究現(xiàn)狀
深度域自適應(yīng)方法主要包括以下兩大類:
1.矩匹配。通過最小化分布差異來對齊不同域的特征分布。例如深度適配網(wǎng)絡(luò)DAN,聯(lián)合適配網(wǎng)絡(luò)JAN。
2.對抗訓(xùn)練。域?qū)咕W(wǎng)絡(luò)DANN是最早的工作,它引入一個領(lǐng)域判別器,鼓勵特征提取器學(xué)到領(lǐng)域無關(guān)的特征。 在DANN的基礎(chǔ)上,衍生出了一系列方法,例如條件域?qū)咕W(wǎng)絡(luò)CDAN,間隔差異散度MDD等。
圖表 2 DANN網(wǎng)絡(luò)架構(gòu)圖圖表 3 MDD網(wǎng)絡(luò)架構(gòu)圖上述方法在實驗數(shù)據(jù)上體現(xiàn)了良好的性能。然而目前學(xué)術(shù)界域自適應(yīng)方法的開源實現(xiàn)中存在下述問題:
- 復(fù)用性差。域自適應(yīng)方法和模型架構(gòu)、數(shù)據(jù)集耦合在一起,不利于域自適應(yīng)方法在新的模型、數(shù)據(jù)集上復(fù)用。
- 穩(wěn)定性差。部分對抗訓(xùn)練方法隨著訓(xùn)練進(jìn)行,準(zhǔn)確率會大幅度下降。
DALIB設(shè)計的初衷就是讓用戶通過少數(shù)幾行代碼,就可以將域自適應(yīng)算法用在實際項目中,而無需考慮域自適應(yīng)模塊的實現(xiàn)細(xì)節(jié)。
易用性
DALIB將現(xiàn)有域自適應(yīng)訓(xùn)練代碼中的域自適應(yīng)損失函數(shù)分離出來,按照PyTorch交叉熵?fù)p失函數(shù)的形式進(jìn)行封裝,方便用戶的使用。域自適應(yīng)損失函數(shù)也和模型架構(gòu)進(jìn)行了解耦,因此不依賴于具體的分類任務(wù),所以算法庫很容易擴(kuò)展到圖片分類以外的分類任務(wù)。如下,使用兩行代碼即可定義一個與任務(wù)無關(guān)的域?qū)箵p失函數(shù)。
不同域自適應(yīng)損失函數(shù)中有一些公用的模塊,例如所有算法中都用到的分類器模塊,對抗訓(xùn)練中用到的梯度翻轉(zhuǎn)模塊、域判別器模塊,核方法中的核函數(shù)模塊等。這些公用模塊和提供的域自適應(yīng)損失函數(shù)是分離的。因此,在DALIB中,用戶可以像搭積木一樣,重新定制自己需要的域自適應(yīng)損失函數(shù)。例如,核方法中,用戶可以自己定義不同參數(shù)的高斯核或者其他核函數(shù),然后傳入到多核最大均值差異(MK-MMD)的計算中。
目前,所有的模塊和損失函數(shù)均已提供詳細(xì)的API說明文檔。
https://dalib.readthedocs.io/en/latest/
穩(wěn)定性
域自適應(yīng)算法研究領(lǐng)域往往關(guān)注方法的創(chuàng)新程度或者理論層面的價值,而忽視了工程實現(xiàn)中的穩(wěn)定性和可復(fù)現(xiàn)性。在復(fù)現(xiàn)現(xiàn)有的算法的過程中,出現(xiàn)了部分算法準(zhǔn)確率不穩(wěn)定的問題。通過對數(shù)值方面的改進(jìn),這些問題都已經(jīng)得到解決。(具體實現(xiàn)就不在此處展開了。)此外,DALIB幾乎在所有任務(wù)上,準(zhǔn)確率都比原論文匯報準(zhǔn)確率高,部分?jǐn)?shù)據(jù)集上甚至能高14%。下圖分別是Office-31和VisDA-2017上的測試結(jié)果。
圖表 4 Office-31上不同算法的準(zhǔn)確率圖表 5 VisDA2017上不同算法的準(zhǔn)確率算法庫提供了各個算法在Office-31、Office-Home和VisDA-2017上的測試結(jié)果,以及所有的測試腳本。我們認(rèn)為開源該算法庫對于這個領(lǐng)域未來的研究工作是具有巨大價值的。
未來的工作
域自適應(yīng)算法子庫DALIB下一個版本會支持域自適應(yīng)算法的不同設(shè)定,包括部分域自適應(yīng)任務(wù)(Partial Domain Adaptation)、開放集域自適應(yīng)任務(wù)(Open-set Domain Adaptation)、通用域自適應(yīng)任務(wù)(Universal Domain Adaptation)等。遷移學(xué)習(xí)算法庫Trans-Learn目前還處于初期開發(fā)階段,難免有不完善的地方,歡迎其他研究者提意見。同時遷移學(xué)習(xí)這個方向也還在不斷發(fā)展,今后會不斷跟進(jìn)新工作中比較好的算法。
當(dāng)前版本由龍明盛老師課題組的江俊廣和付博同學(xué)開發(fā),如果有任何意見和建議,歡迎聯(lián)系JiangJunguang1123@outlook.com
fb1121@vip.qq.com
作者:清華大數(shù)據(jù)軟件團(tuán)隊機(jī)器學(xué)習(xí)組
總結(jié)
以上是生活随笔為你收集整理的分布对齐 目标函数 迁移学习_原创 | 清华开源迁移学习算法库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小白重装系统教程_重装系统教程,小编教你
- 下一篇: 如何动态修改uri_maven如何动态统