Deep CORAL: Correlation Alignment for Deep Domain Adaptation(2016)

MataFela發表於2017-06-06

Introduction

  • 作者引進了一個叫做CORAL的方法,通過對source domain和target domain進行線性變換來將他們各自的的二階統計量對齊(對齊均值與協方差矩陣)。
  • 但是作者認為CORAL實際上需要先對影象進行特徵提取,再進行線性轉換,再訓練一個SVM分類器,比較麻煩。
  • 作者對CORAL方法進行了擴充,通過在source domain和target domain之間建立一個最小化source domain和target domain資料之間相關性的損失函式來將它併入deep networks。
  • 作者將CORAL方法改進做非線性變換,並且直接作用於source domain和target domain。

Deep CORAL

  • 假設:target domain上沒有標記的資料。
  • 第一個目標是:平衡一個大的具有很好泛化的資料域(a large generic domain,比如ImageNet)和source domain之間的deep feature(深度網路學到的特徵)。可以通過將神經網路的引數用那個large generic domain預訓練過的網路的引數初始化並微調來達到目的。
  • 第二個目標是:最小化source domain和target domain的deep feature的二階統計量的差別。
  • 網路架構:

    在fc8這一層當中,作者引入了CORAL loss這一損失函式。(AlexNet架構)

CORAL loss

  • source domain:

    • 資料: DS={xi}
      \ D_S = \{ x_i \}
       xRd
      \ x \in R^{d}
    • 標籤: LS={yi}
      \ L_S=\{ y_i \}
       i{1,...,L}
      \ i \in \{ 1,...,L\}
    •  nS
      \ n_S
      個資料,維度為 d
      \ d
      (畫素數什麼的)
  • target domain:

    • 資料: DT={ui}
      \ D_T = \{ u_i \}
       uRd
      \ u \in R^{d}
    •  nT
      \ n_T
      個資料,維度為 d
      \ d
      (畫素數什麼的)
  •  DijS(DijT)

    \ D^{ij}_S ( D^{ij}_T)
    表示第 j
    \ j
    維度下source(target) domain資料中的第 i
    \ i
    個樣本。用 CS(CT)
    \ C_S(C_T)
    表示特徵的協方差矩陣。

  • CORAL loss:

    lCORAL=CSCT2F4d2
    l_{CORAL} = \frac {\lVert C_S - C_T \rVert ^{2}_F} {4d^{2}}
    • 後一個是矩陣的Frobenius範數
  • 協方差矩陣計算:
    •  CS=1nS1(DTSDS(lTDS)T(lTDS)nS)
      \ C_S = \frac{1}{n_S - 1}(D^{T}_S D_S-\frac{(\textbf{l}^{T}D_S )^T(\textbf{l}^T D_S)} {n_S})
    •  CT=1nT1(DTTDT(lTDT)T(lTDT)nT)
      \ C_T = \frac{1}{n_T - 1}(D^{T}_T D_T-\frac{(\textbf{l}^{T}D_T )^T(\textbf{l}^T D_T)} {n_T})
    • 其中 l
      \ \textbf{l}
      是一個所有元素為1的列向量
  • gradient:
    •  lCORALDijS=1d2(nS1)(DTS((lTDS)TlT)T(CSCT)nS)ij
      \ \frac{\partial l_{CORAL}}{\partial D^{ij}_S}=\frac {1}{d^{2}(n_S-1)} (D^{T}_S-\frac{((\textbf{l}^{T}D_S )^T\textbf{l}^{T})^{T}(C_S - C_T)} {n_S})^{ij}
    •  lCORALDijT=1d2(nS1)(DTT((lTDT)TlT)T(CSCT)nS)ij
      \ \frac{\partial l_{CORAL}}{\partial D^{ij}_T}=\frac {1}{d^{2}(n_S-1)} (D^{T}_T-\frac{((\textbf{l}^{T}D_T )^T\textbf{l}^{T})^{T}(C_S - C_T)} {n_S})^{ij}
    • 論文作者提到說這裡使用的是批次協方差(? batch covariances)

End-to-end Domain Adaptation with CORAL Loss

  • 在減少分類損失(classification loss)的同時,引入CORAL loss作為正則項來減少過擬合的可能性(使得訓練出來的結果invariant to the difference between source and target domain)
  • loss function:
    l=lCLASS+i=1tλilCORAL
    l = l_{CLASS} + \sum^{t}_{i=1} {\lambda_i l_{CORAL}}

    •  t
      \ t
      是CORAL loss 層的數目
    •  λ
      \ \lambda
      是用於平衡分類準確度和域適應的一個引數(就是讓 lCLASS
      \ l_{CLASS}
       lCORAL
      \ l_{CORAL}
      都不要太大)
    • 以上兩個引數相互對抗最終達到一個平衡(最終的feature可以在target domain工作的很好)。

結論

  • 利用CORAL loss可以限制source domain和target domain之間資料的距離。(這個和利用核函式的MMD很像)
  • 一種新穎的正則約束項

相關文章