1. 程式人生 > 其它 >筆記-2022.05.26

筆記-2022.05.26

推薦的架構包括一個深度特徵提取器(綠色)和一個深度標籤預測器(藍色),它們共同構成一個標準的前饋架構。無監督的領域適應是通過新增一個領域分類器(紅色)來實現的,該分類器通過一個梯度反轉層與特徵提取器相連,在基於反向傳播的訓練過程中,梯度乘以某個負常數。否則,訓練將以標準方式進行,並使標籤預測損失(對於源例項)和領域分類損失(對於所有樣本)最小化。

核心思路:同時學習分類器 \(G_y\) 、特徵提取器 \(G_f\) 、以及領域判別器 \(G_d\)。通過最小化分類器誤差,最大化判別器誤差,使得學習到的特徵表達具有跨域不變性。

隨著訓練的進行,該方法促進了

  1. 對源域上的主要學習任務具有鑑別性的深層特徵的出現
  2. 關於域之間的遷移具有不變性

目錄

理論保證

介紹

當訓練和測試資料來自同一分佈時,用於分類的判別性學習方法表現良好。然而,我們往往有來自源域的大量標記的訓練資料,但希望學習一個在目標域中表現良好的分類器,而目標域的分佈不同,標記的訓練資料很少或沒有。在這項工作中,主要研究了兩個問題:

  • 在什麼條件下,從源資料中訓練出來的分類器可以預期在目標資料上表現良好
  • 給定少量標記的目標資料,我們應該如何在訓練期間將其與大量標記的源資料相結合,以便在測試時達到最低的目標誤差

\(H \Delta H\)
距離

Ben-David在2010年提出了 \(H \Delta H\) 距離,並基於此給出了一個泛化誤差上界\(^{[3]}\)

  • \(H \Delta H\) 距離:

    \[d_{\cal H \Delta H} ({\cal S, T}) = 2 \sup_{h1,h2∈{\cal H}} |P_{f \sim {\cal S}} [h_1 (f) ≠ h_2 (f)] - P_{f \sim {\cal T}} [h_1 (f) ≠ h_2 (f)]| \]

    \(\sup\) :表示“上確界”,即最小上界。

    • 如果兩個分類器 \(h_1\)\(h_2\) ,利用 \(h_1 、 h_2\)
      \(\cal S、T\) 都進行分類。
    • 如果說對於任意的 \(h_1\)\(h_2\) ,在 \(\cal S\) 上的分類結果在與 \(\cal T\) 上的分類結果都非常相似。
    • 那麼就認為 \(\cal S\)\(\cal T\) 之間是非常相似的,也就認為 \(\cal S\)\(\cal T\) 的距離非常接近。
  • 利用這個概念,我們可以得到一個概率約束,即在目標域上評估T中的某個分類器h的效能 \(\epsilon_{\cal T} (h)\) ,因為它在源域上的效能是 \(\epsilon_{\cal S} (h)\) 。泛化誤差上界:

    \[\epsilon _{\cal T} (h) ≤ \epsilon _{\cal S} (h) + \frac{1}{2} d_{H \Delta H} ({\cal S,T}) + C \]

    其中 \({\cal S}\)\({\cal T}\) 分別是源分佈和目標分佈, \(C\) 不依賴於特定的 \(h\)

    考慮在由特徵提取器 \(G_f\) 和標籤預測器集合 \({\cal H}_p\)產生的表示空間上的固定 \({\cal S}\)\({\cal T}\) 。我們假設領域分類器的集合 \({\cal H}_d\) 足夠豐富,包含 \({\cal H}_p\)的對稱差異假設集。

    \[{\cal H} \Delta {\cal H} = \{ h| h = h_1 \bigoplus h_2 ~ , ~ h_1,h_2 \in {\cal H}_p \} \]

    這並不是一個不現實的假設,因為我們可以自由選擇我們想要的 \({\cal H}_d\) 。例如,我們可以把領域判別器的結構設定為逐層連線兩個標籤預測器的副本,然後是一個旨在學習XOR函式的兩層非線性感知器。鑑於假設成立,我們可以很容易地表明,訓練 \(G_d\)\(d_{{\cal H}_p \Delta {\cal H}_p({\cal S}, {\cal T})}\) 的估計密切相關。

    \[d_{{\cal H}_p \Delta {\cal H}_p({\cal S}, {\cal T})} = 2\sup_{h \in {\cal H} _p \Delta {\cal H} _p} |P_{f \sim {\cal S} }[h(f) = 1] - P_{f \sim {\cal T}}[h(f)=1]| \\ \leq 2 \sup_{h \in {\cal H}_d } |P_{f \sim {\cal S} }[h(f) = 1] - P_{f \sim {\cal T}}[h(f)=1]|\\ = 2 \sup_{h \in {\cal H}_d } |1 - \alpha (h)| = 2 \sup_{h \in {\cal H}_d } [\alpha (h) - 1] \]

    其中, \(\alpha (h) = P_{f \sim {\cal S}} [h(f) = 0] + P_{f \sim {\cal T}} [h(f) =1]\)\(G_d\) 最大化。

    最優判別器給出了 \(d_{{\cal H}_p \Delta {\cal H}_P } ( {\cal S} , {\cal T})\) 的上限,同時,反向梯度的反向傳播改變了表示空間,使 \(\alpha{(G_d)}\)變得更小,有效地減少了 \(d_{{\cal H}_p \Delta {\cal H}_P } ( {\cal S} , {\cal T})\) ,使得 \(ε_{\cal T}(G_y)\)\(ε_{\cal S}(G_y)\) 更好地接近。

深度域適應

模型

假設模型的輸入樣本是 \(x \in X\) ,其中 \(X\) 是一些輸入空間,和來自標籤空間 \(Y\) 的標籤(輸出) \(y\) 。假設分類問題中的 \(Y\) 是一個有限集 \(Y=\{1,2,...L\}\) 。進一步假設,在 \(X \bigotimes Y\) 存在兩個分佈:源分佈(源域) \({\cal S} (x,y)\) 和目標分佈(目標域) \({\cal T}(x,y)\) ,兩種分佈都假定為是複雜和未知的,並且進一步相似但不同( \(\cal S\) 可以通過某種域變換“位移”到 \(\cal T\) ),

最終目標是能夠預測給定目標分佈的輸入 \(x\) 的標籤 \(y\) 。在訓練時,我們可以獲得大量來自源域和目標域的訓練樣本 \(\{ x_1,x_2, x_N \}\) ,根據邊際分佈 \({\cal S}(x)\)\({\cal T}(x)\) 。對於來自源分佈\(d_i=0\)的例子,相應的標籤 \(y_i \in Y\) 在訓練時是已知的。對於來自目標域 \(d_i=1\) 的例子,我們在訓練時不知道這些標籤,我們想在測試時預測這些標籤。

我們現在定義一個深度前饋架構,對於每個輸入x預測其標籤 \(y \in Y\) 和其領域標籤 $ d \in { 0,1 }$ 。網路架構可以分解為三個部分:

  • 特徵提取器 \(G_f\):將輸入對映到一個 \(D\) 維的特徵向量 \(f \in \mathbb{R} ^D\)
    • 權重引數定義為 \(\theta _f\)\(f = G_f (x; \theta _f )\)
  • 標籤預測器 \(G_y\) :將特徵向量 \(f\) 對映到標籤 \(y\)
    • 權重引數定義為 \(\theta _y\)
  • 域分類器 \(G_d\) :將特徵向量 \(f\) 對映到標籤 \(d\)
    • 權重引數定義為 \(\theta _d\)

在學習階段,目標是使訓練集的源域部分的標籤預測損失最小化,因此,特徵提取器和標籤預測器的引數都被優化,以使源域樣本的經驗損失最小化。這就保證了特徵 \(f\) 的鑑別性,以及特徵提取器和標籤預測器組合在源域上的整體良好預測效能。

與此同時,要使特徵 \(f\) 具有領域不變性,即要使分佈 \(S(f) = \{ G_f (x; \theta _f)|x \sim {\cal S}(x) \}\) 和 $ T(f) = { G_f (x; \theta _f )|x \sim {\cal T}(x) }$ 相似。考慮到 \(f\) 是高維的,並且分佈本身隨著學習的進行而不斷變化,測量分佈 \({\cal S}(f)\)\({\cal T}(f)\) 的異同是比較困難的。估計差異性的一種方法是看領域分類器 \(G_d\) 的損失,但前提是領域分類器的引數 \(θ_d\) 已被訓練成可以以最佳方式區分兩個特徵分佈。

在訓練時,為了獲得域不變的特徵,尋求特徵對映的引數 \(θ_f\)使域分類器的損失最大化(通過使兩個特徵分佈儘可能的相似),同時尋求領域分類器的引數 \(θ_d\),使域分類器的損失最小。此外,我們還尋求最小化標籤預測器的損失。

\[E(\theta_f, \theta_y, \theta_d) = \sum_{i=1,...,N;{d_i = 0}} L_y (G_y(G_f(x_i;\theta_f);\theta_y),y_i) - \\ \lambda \sum _{i=1,...,N} L_d(G_d(G_f(x_i;\theta_f);\theta_d),y_i) \\ = \sum_{i = 1,...,N;d_i=0} L_y^i (\theta_f,\theta_y) - \lambda \sum _{i=1,...,N} L^i_d (\theta_f,\theta_d) \tag{1} \]

其中, \(L_y(·,·)\) 是標籤預測的損失, \(L_d(·,·)\) 是領域分類的損失(如Logistic), \(L_y^i(·,·)\)\(L_d^i(·,·)\) 表示第 \(i\) 個訓練例項上評估的相應損失函式。

尋找使公式(1)達到鞍點引數 \(\hat \theta_f ,\hat \theta_y, \hat \theta_d\)

\[(\hat \theta_f,\hat \theta_y) = \arg \min_{\theta_f,\theta_y} E(\theta_f,\theta_y,\hat \theta_d) \tag{2} \] \[\hat \theta_d = \arg \max_{\theta_d} E(\hat \theta_f,\hat \theta_y ,\theta_d) \tag{3} \]

反向優化

鞍點(2)-(3)可以作為以下隨機更新的靜止點被找到:

\[\theta_f \leftarrow \theta_f - \mu ( \frac{\partial L^i_y}{\partial \theta_f} - \lambda \frac{\partial L^i_d}{\partial \theta_f} ) \tag{4} \] \[\theta_y \leftarrow \theta_y - \mu \frac{\partial L^i_y}{ \partial \theta_y } \tag{5} \] \[\theta_d \leftarrow \theta_d - \mu \frac{\partial L^i_d}{\partial \theta_d} \tag{6} \]

其中 \(\mu\) 是學習率。

更新 \((4)-(6)\) 與前饋深度模型的隨機梯度下降(SGD)更新非常相似,該模型包括送入標籤預測器的特徵提取器和送入領域分類器。差異是 \((4)\) 中的 \(\lambda\) 係數(差異很重要,因為如果沒有這個因子,隨機梯度下降法會試圖使不同領域的特徵不相似,以使領域分類損失最小)。雖然直接將 \((4)-(6)\) 實現為SGD是不可能的,但將更新 \((4)-(6)\) 簡化為某種形式的SGD是非常可取的,因為SGD(及其變種)是大多數深度學習軟體包中實現的主要學習演算法。

幸運的是,這種減少可以通過引入一個特殊的梯度反轉層(GRL)來實現,定義如下。梯度反轉層沒有與之相關的引數(除了元引數 \(\lambda\) ,它不被反向傳播所更新)。在前向傳播期間,GRL作為一個特性轉換器。但在反向傳播過程中,GRL從後續層獲取梯度,將其乘以 \(- \lambda\),並將其傳遞給上一層。使用現有的面向物件的深度學習包來實現這樣的層很簡單,因為定義前向傳播(特性轉換)、反向傳播(乘以常數)和引數更新(無)的程式是很簡單的。

上面定義的GRL被插入到特徵提取器和領域分類器之間,形成了圖1中描述的結構。當反向傳播過程通過GRL時,GRL後的損失( \(L_d\) )與GRL前的引數層( \(\theta_f\) )的偏導數被乘以 \(- \lambda\) ,即 \(\frac{\partial{L_d}}{\partial{\theta_f}}\) 實際上被替換為了 $ - \lambda \frac{\partial{L_d}}{\partial{\theta_f}}$ 。因此,在得到的模型中運用SGD實現了更新 \((4)-(6)\) ,並收斂到 \((1)\) 的一個鞍點。在數學上,可以將梯度反轉層正式視為一個“偽函式 \(R_{\lambda} (x)\) ”,由描述其正向和反向傳播的兩個方程定義:

\[R_{\lambda} (x) = x \tag{7} \] \[\frac{\mathrm{d}R_{\lambda}}{\mathrm{d} x} = -\lambda \pmb{ I} \tag{8} \]

其中I是一個特性矩陣。然後我們可以定義\(\theta_f, \theta_y, \theta_d\)的目標 "偽函式",該函式在論文的方法中被隨機梯度下降優化:

\[E(\theta_f, \theta_y, \theta_d) = \sum_{i=1,...,N;{d_i = 0}} L_y (G_y(G_f(x_i;\theta_f);\theta_y),y_i) + \\ \sum _{i=1,...,N} L_d(G_d(G_f(x_i;\theta_f);\theta_d),y_i) \tag{9} \]

執行更新 \((4)-(6)\) 可以實現為 \((9)\) 做SGD,並導致出現同時具有領域不變性和判別性的特徵。學習之後,標籤預測器 \(y(x) = G_y (G_f(x;\theta_f);\theta_y)\) 可以用來預測目標域(以及源域)的樣本的標籤。

參考資料

論文:Unsupervised Domain Adaptation by Backpropagation

[1]DANN:用對抗的方法生成特徵,優化目標域泛化誤差上界

[2]DANN:Unsupervised Domain Adaptation by Backpropagation

[3]A theory of learning from different domains