CMU 領域自適應最新進展:對齊資料分佈、誤差還不夠,標註函式也需對齊!
領域自適應是遷移學習重點研究的課題之一。以往,基於域不變表徵的領域自適應方法由於對域偏移(domain shift)不敏感、能為目標任務獲取豐富資訊受到了極大關注。然而,在 ICML 2019 上,來自卡內基梅隆大學的研究人員指出,當標籤分佈不同時,對源任務的過度訓練確實會對目標域的泛化起到負作用,並且用嚴謹的數學證明和豐富的實驗說明了:為了提升領域自適應演算法的效能,我們不僅需要對齊源域和目標域的資料分佈、最小化源域中的誤差,還應該對齊源域和目標域的標註函式。
圖 1:無監督領域自適應概述及其與標準的監督學習場景的區別。在領域自適應任務中,源(訓練)域與目標(測試)域相關但有所不同。在訓練過程中,該演算法只能訪問源域的帶標籤樣本以及目標與的無標籤樣本。目的是將演算法泛化到目標域上。
支撐監督學習演算法泛化理論的一個重要假設是,測試資料的分佈應該與訓練資料的分佈相同。然而,在許多現實世界的應用程式中,收集所有我們的學習系統可能被部署的場景下的帶標籤資料通常是十分耗時的,甚至是不可行的。例如,考慮一個典型的車輛計數應用程式,我們希望通過它計算在一張由相機拍下的圖片中有多少輛汽車。我們一共有 200 臺校準、視角、照明條件不同的相機。在這種情況下,獲得所有相機拍攝影像的帶標籤資料的開銷是非常巨大的。理想情況下,我們將收集 200 臺相機的一個子集的帶標籤影像,並且仍然能夠訓練一個可以在所有相機拍攝的影像的資料集上起作用的計數系統。
圖 2:曼哈頓區不同位置的相機
領域自適應任務針對的情況是,只能訪問訓練分佈(又稱源域)的帶標籤資料和測試分佈(又稱目標域)的無標籤資料。由於源域和目標域可能有所不同,因此這種情況十分複雜——正如上面的例子一樣,不同的攝像機拍攝到的不同的影像通常會因為不同的視角、光照、校準等因素而具有不同的畫素分佈。而自適應演算法的目標是在不能看到目標域中的帶標籤樣本的情況下,將演算法泛化到目標域上。
在本文中,我們將首先回顧一種通用的技術,該技術基於尋找一種域不變的表徵的思路來實現這一目標。然後,我們將構造一個簡單的示例說明這種技術本身並不一定能夠在目標域上實現良好的泛化。為了理解失效的模式,我們給出了一個泛化上界,該上界可以分解為度量源域和目標域之間輸入和標籤分佈的差異的各項。並且十分重要的一點是,這個上界讓我們可以為在目標域上良好的泛化提供充分條件。
我們還使用一個基於資訊理論的下界來刻畫學習域不變表徵時的權衡,從而對泛化上界進行了補充。直觀地說,實驗結果表明,當不同域中的邊緣標籤分佈存在差異時,人們不能指望通過學習不變表徵來同時最小化源域和目標域的誤差;這位基於學習不變表徵的方法取得成功提供了必要條件。本文所提供的所有材料都是基於我們最近在 ICML 2019 上發表的工作「On Learning Invariant Representations for Domain Adaptation」:
通過學習不變表徵進行自適應
學習不變表徵背後的核心思想是相當簡單和直觀的:我們希望找到一種對域偏移不敏感、同時仍然為目標任務獲取豐富資訊的表徵方法。這樣的表徵將使我們能夠僅僅通過使用源域的資料進行訓練就可以將演算法泛化到目標域上。學習域不變表徵的流程如圖 3 所示。
圖 3:來源於源域和目標域的影像通過對映 g 被轉換為某種表徵,此時兩個域都有相同的特徵分佈。接著,根據來自源於的帶標籤資料訓練假設 h,並使用 h 為目標域生成「h∘g」
請注意,在上面的框架中,我們可以在源域/目標域上使用不同的轉換函式「g S/g T」對齊特徵分佈。這個強大的框架同時也很靈活:通過使用不同的度量特徵分佈對齊的手段,我們復現了幾種現有的方法,例如,Ganin 等人於 2015 年發表的DANN(相關閱讀: http://jmlr.org/papers/v17/15-239.html ),Long 等人於 2015 年發表的 DAN(相關閱讀: https://dl.acm.org/citation.cfm?id=3045130 ),以及 Shen 等人於 2018 年發表的 WDGRL (相關閱讀: https://arxiv.org/pdf/1707.01217.pdf )。
由 Ben-David 等人於2010 年提出的泛化界(相關閱讀: https://link.springer.com/article/10.1007/s10994-009-5152-4 )是上述框架遵循的一個理論依據:令 H 為一個假設類,D s/D T 分別為源域/目標域的邊緣資料分佈。對於任意的 h∈H,下面的泛化界成立:
其中 是兩個域的最優聯合誤差。通俗的說,上面的泛化界說明目標域的風險基本上可以通過以下三項來約束:
-
源域的風險(泛化界中的第一項)
-
源域和目標域的邊緣資料分佈之間的距離(泛化界中的第二項)
-
源域和目標域的最優聯合誤差(泛化界中的第三項)
這個泛化界可以被解釋為:如果存在一個同時在源域和目標域都有效的假設,那麼為了最小化目標域的風險,應該選擇一個可以最小化源域的風險的假設,同時對齊源域和目標域的資料分佈。
一個反例
上述的領域自適應框架近年來引起了人們極大的興趣,目前已經出現了許多基於學習域不變表徵的通用思想的有趣變體和應用。然而目前在滿足下面的條件時,這些方法是否一定會成功還尚不明確:
-
複合函式「h ∘g」在源域上能夠完美地完成分類/迴歸的預測。
-
轉換函式「g:X→Z」在特徵空間 Z 中能夠完美地對齊源域和目標域。
由於我們只能使用源域中的帶標籤資料進行訓練,理想狀態下,我們希望當上述兩個條件得以滿足時,複合函式「h ∘g」同樣也能在目標域上擁有較小的風險,因為這兩個域在特徵空間中非常相近。也許有些令人驚訝的是,這與我們在下面的圖 4 中演示的簡單示例有所不同。
不妨考慮這樣一個自適應問題:我們擁有輸入空間和特徵空間「X=Z=R」,源域為D s=U(-1,0),目標域為D T=U(1,2),我們使用U(a,b)來代表一個(a,b)區間內的均勻分佈。在本例中,源域和目標域相距太遠,以致於它們的支撐集並不相連!現在讓我們將源域和目標域對齊,使它們相距地更近一些。我們可以通過將源域向右移動一個單位,並且將目標域向左移動一個單位實現這一點。
圖 4:特徵轉換函式 g 完美地在特徵空間中將源域和目標域對齊。然而,在自適應操作之後,任何在源域上獲得較小的風險的假設都必然會在目標域上得到較大的風險。事實上,在這兩個域中,沒有哪一個函式可以同時具有較小的風險。
如圖 4 所示,在自適應操作之後,源域和目標域的資料分佈都遵循 U(0,1),也就是說,我們通過簡單的變換將它們完美地對齊了。然而,由於我們的構造方式,源域和目標域的標籤反轉了過來:對於每個 x∈(0,1),源域和目標域恰好一個標籤為 1,另一個的標籤為 0。這意味著,如果一個假設在源域上獲得了完美的分類效果,那麼它在目標域上也會得到最大為 1 的風險。事實上,在本例中,在對於任何分類器h 進行自適應後,我們令「ε S(h)+ε T(h) = 1」。作為對比,在進行自適應前,我們規定一個簡單的區間假設:h*(x)=1 當且僅當 x ∈(-1/2,3/2)同時在源域和目標域上實現完美的分類。
目標域誤差的泛化上界
那麼,我們能從上面的反例中獲得什麼啟示呢?為什麼儘管我們完美地對齊了兩個域的邊緣分佈並且最小化了源域的誤差,我們還是會得到很大的目標域誤差呢?這是否與 Ben-David 等人的泛化界理論相矛盾?
這裡需要注意的是,當經過自適應操作後,兩個域之間的距離變為 0 時,兩個域上的最優聯合誤差會變得很大。在上面的返利中,這意味著在經過了自適應後有 λ *=1,同時還意味著如果 ε S(h) =0,我們有 ε T(h) = 1。我們可以直觀地在圖 4 中看到,在自適應之後,兩個域的標註函式取得了「最大程度上的不同」,但是在自適應的過程中,我們僅僅在特徵空間中將它們的邊緣分佈進行了對齊。由於最優聯合誤差 λ* 往往是未知且難以計算的,我們是否能構造一個與 λ * 無關的泛化上界,並考慮到條件偏移問題呢?
下面是我們在論文中展示的方法的非正式描述:零 fs 和 fT 分別為源域和目標域的標註函式,那麼對於任意的假設類 H 和 任意的 h∈H,下面的不等式都成立:
粗略地說,上面的泛化誤上界給出了源域和目標域之間誤差差異的分解形式。同樣的,不等號右側的第二項度量了邊緣資料分佈之間的差異。然而,第三項現在度量的是源域和目標域的標註函式之間的差異。因此,這個泛化上界說明。對於自適應任務來說,僅僅將邊緣資料分佈對齊是不夠的,我們還要確保標註函式(條件分佈)在自適應之後彼此接近。
基於資訊理論的聯合誤差下界
在上面的反例中,我們說明了僅僅將邊緣分佈對齊並獲得一個小的源域誤差,不足以保證得到一個小的目標域誤差。但是在本例中,實際上可以找到另一種特徵轉換方式,同時將邊緣資料分佈和標註函式對齊。具體而言,令特徵轉換為 。接著,可以直接驗證源域和目標域在自適應之後是否完全對齊。此外,當 ε S(h) =0,我們還保證 ε T(h) = 0。
這樣一來,我們自然而然地會想知道是否總是可能找到一種特徵變換和一個假設,來對齊邊緣資料分佈並最小化源域誤差,從而使這兩者的複合函式也得到一個較小的目標域誤差呢?令人驚奇的是,我們證明了這並不一定成立。事實上,發現一個用來對齊邊緣分佈的特徵變換確實會增加源域和目標域的聯合誤差。通過這種變換,最小化源域誤差智慧導致目標域誤差增大!
更加形式化的說法是,令 D Y S/D Y T 為源域/目標域的邊緣標籤分佈。對於任意的特徵變換 g:X->Z 來說,令 D Z S/D Z T 為將g(·)分別應用到 D S/D T 上得到的特徵分佈。此外,我們將 d JS(·,·)定義為一對分佈之間的Jensen-Shannon 距離。接著,對於任意的假設 h:Z->{0,1},如果有 dJS(D Y S,D Y T)≥ dJS(D Z S,D Z T),下面的不等式成立:
接下來,讓我們一步一步解析上面的下界。左邊的部分對應的是通過在源域和目標域同時使用複合函式「h ∘g」得到的聯合誤差。右邊的部分包含邊緣標籤分佈之間的距離和特徵分佈之間的距離、因此,當兩個域中的邊緣標籤分佈 D Y S/DY T 不同(即 dJS(D Y S,D Y T)>0)時,通過學習 g(·)對齊邊緣資料分佈只會增大下界。特別是,對於 d JS(D Z S,D Z T)= 0 時的域不變表徵來說,該下界將得到其最大值
。
由於在領域自適應任務中,我們只能使用源域中的帶標籤資料,最小化源域的誤差將只能導致目標域誤差的增大。簡而言之,我們可以從不確定性原理的角度來理解這個下界:若兩個域的邊緣標籤分佈不同,當使用域不變表徵時,一定會在源域或目標域中產生較大的誤差。
實證驗證
由我們的下界得出的一個結論是,當兩個域具有不同的邊緣標籤分佈時,在對齊兩個域時最小化源域誤差可能導致目標誤差增大。為了驗證這一點,讓我們考慮對 MNIST,SVHN 和 USPS 資料集的數字分類任務。為了驗證這一點,我們不妨考慮 MNIST 、SVHN 和 USPS 資料集上的數字分類任務。這三個資料集的標籤分佈如圖 5 所示。
圖 5:MNIST 、SVHN 和 USPS 資料集上的標籤(數字)分佈
從圖 5 中可以清楚地看到,這三個資料集具有完全不同的標籤分佈。現在讓我們使用 Ganin 等人於 2015 年提出的 DANN 通過在訓練中學習域不變表徵來對目標域進行分類,從而最小化源域的誤差。
圖 6:MNIST、USPS 和 SVHN 資料集上的數字分類任務。水平實現代表不使用自適應時目標域的測試準確率。綠色的實線是使用 DANN 領域自適應後的目標域測試準確率。我們還繪製了 DANN 自適應的結果的最小二成擬合(黑色虛線),用來強調負的斜率。
我們在圖 6 中為 DANN 繪製了四個自適應的軌跡。通過四個自適應任務,我們可以觀察到以下模式:儘管源域中訓練的準確率一直在增加,測試域的準確率在前 10 輪迭代中迅速增長,然後逐漸從峰值下降。這些相變可以通過自適應曲線的最小二乘擬合的負斜率(圖 6 中的虛線)來驗證。上述實驗結果與我們的理論發現是一致的: 當標籤分佈不同時,對源任務的過度訓練確實會對目標域的泛化造成負作用。
未來的工作
請注意,上述反例中的失敗模式是由於自適應過程中標註函式之間距離的增加引起的。為了減少標註函式之間的偏移,確定特徵變換函式應該具有哪些屬性是今後的一個有趣的工作方向。當然,如果沒有對底層的源域/目標域的合理假設,實現領域自適應是不可能的。建立一些符合實際情況的假設是一個不錯的選擇,在這些假設下,我們可以開發出有效的自適應演算法,同時對齊邊緣分佈和標註函式。
via https://blog.ml.cmu.edu/2019/09/13/on-learning-invariant-representations-for-domain-adaptation/
https://www.leiphone.com/news/201909/FNFv8sGvmPaJVQmR.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946223/viewspace-2658450/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- word中怎麼解決英文對不齊 word英文對不齊的方法
- vxe-table 設定單元格對齊方式,左對齊、右對齊
- 人類自身都對不齊,怎麼對齊AI?新研究全面審視偏好在AI對齊中的作用AI
- SwiftUI 佈局之元件對齊實現上下對齊和水平居中 (教程含原始碼)SwiftUI元件原始碼
- c/c++資料對齊問題C++
- 自適應辛普森積分與誤差證明
- linux對齊文字Linux
- element ui表單el-form的label自適應寬度並右對齊UIORM
- Markodwn 標題對齊的同步滾動Markodwn
- css 表單標籤兩端對齊CSS
- CSS 小結筆記之解決flex佈局邊框對不齊CSS筆記Flex
- 記憶體對齊記憶體
- canvas textAlign 文字對齊Canvas
- css居中對齊大全CSS
- golang 位元組對齊Golang
- 如何讓文字居右對齊,換行後又居左對齊
- CSS自適應佈局實現子元素專案整體居中/內部專案左對齊示例程式碼CSS
- C++ 位元組對齊C++
- CAD表格文字對齊方式
- css使用transform垂直對齊CSSORM
- GO 記憶體對齊Go記憶體
- 理解記憶體對齊記憶體
- 1218 圖片對齊模式模式
- css文字兩端對齊CSS
- 「Photoshop2021入門教程」對齊與分佈製作波點圖案
- WPS/Word中公式與文字不對齊的問題公式
- Flutter/佈局:徹底搞懂 Align 是怎麼對齊的Flutter
- C# 記憶體對齊C#記憶體
- CSS居中對齊終極指南CSS
- Android ImageView對齊方式設定AndroidView
- c/c++ 位元組對齊C++
- CSS文字水平居中對齊CSS
- 徹底摒棄人工標註,AutoAlign方法基於大模型讓知識圖譜對齊全自動化大模型
- 對doccano自動標註使用的預設UIE模型進行微調以提高特定領域的實體識別能力,提高標註速度UI模型
- [PHPStorm] 格式化程式碼時自動對齊陣列的鍵值對PHPORM陣列
- 全自動化資料洞察!資料分佈對比視覺化!⛵視覺化
- C語言記憶體對齊C語言記憶體
- AUTOCAD——圖紙歪瞭如何對齊