Learning Semantic Representations
for Unsupervised Domain Adaptation
@__t2kasa__ 髙木 士 (Tsukasa Takagi)
2018/07/28 ICML2018読み会
自己紹介
 髙木 士 (Tsukasa Takagi)
 経歴
 ~2016/03 大阪大学 大学院電気電子情報工学専攻 修士課程
 2016/04~ キヤノン株式会社
 画像認識・物体検出・Windows デスクトップアプリ
 Twitter: @__t2kasa__
 Blog: http://t2kasa.sub.jp/
 GitHub: https://t2kasa.github.io/ 最近はブログよりもこちらで書いてます
背景:Domain Adaptation (DA)
 学習データとテストデータの分布が
異なる場合がある
 学習データのドメイン:ソース𝒮
 テストデータのドメイン:ターゲット𝒯
 ドメインの違いは性能低下の要因になる
 ドメインが異なる要因
 天候の違い:晴れ・曇り・雨・霧
 照明条件:屋内・屋外
 シミュレーションとリアル
 カメラの種類
Office-31 Dataset
Domain Adaptationの問題設定 (1/2)
𝑝 𝒮 𝑥, 𝑦 = 𝑝 𝒯 𝑥, 𝑦
学習データ テストデータ
一般的な機械学習の問題設定
学習データとテストデータのサンプルが
独立同分布の同じ確率分布から得られる
𝑝 𝒮 𝑥, 𝑦
学習データ テストデータ
𝑝 𝒯 𝑥, 𝑦≠
Domain Adaptationの問題設定
学習データとテストデータのサンプルが
独立同分布の異なる確率分布から得られる
Domain Adaptationの問題設定 (2/2)
 今回のタスク:Unsupervised DA (UDA)
ソース𝒮:アノテーションあり
ターゲット𝒯:アノテーションなし
 Supervised DA (SDA)
ソース𝒮:アノテーションあり
ターゲット𝒯:アノテーションあり
𝑝 𝒮 𝑥, 𝑦
学習データ テストデータ
𝑝 𝒯 𝑥, 𝑦≠
Domain Adaptationの問題設定
学習データとテストデータのサンプルが
独立同分布の異なる確率分布から得られる
共変量シフト (covariate shift)の仮定
 DAでよく利用される仮定:共変量シフト
 入出力規則は不変: 𝑝 𝒮 𝑦|𝑥 = 𝑝 𝒯 𝑦|𝑥
 入力の分布が異なる: 𝑝 𝒮 𝑥 ≠ 𝑝 𝒯 𝑥
𝑥 𝒮 𝑥 𝒯
 DAでよく用いられるアプローチ
 Domain alignment (Domain confusion)
 𝒮と𝒯のサンプルの特徴表現が
近づくようにする
Classifier
(𝒮で学習)
Feature
Extractor
ここから本題
論文概要:Learning Semantic Representations
for Unsupervised Domain Adaptation
 Domain alignmentではなく、クラスレベルのalignmentをUDAで行う
Moving Semantic Transfer Network (MSTN)を提案
 Pseudo labeling + moving average + centroid alignmentを組み合わせる
 Domain alignmentを用いる従来手法よりも性能が向上
 GitHubに実装が公開
 https://github.com/Mid-Push/Moving-Semantic-Transfer-Network
 Python 2 + TensorFlow
関連研究: [Tzeng+ 2017]
Adversarial Discriminative Domain Adaptation (ADDA)
 Pre-training, Adversarial Adaptation, Testingの3ステップで構成
Fix
Fix
Fix
𝒮のサンプルでSource CNN と
Classifierを学習
Discriminatorが𝒮, 𝒯どちらのサンプルか
見分けられないようにTarget CNNと
Discriminatorを敵対的学習
Target CNNとClassifierを接続して
𝒯のサンプルで評価
[Tzeng+ 2017] E. Tzeng, J. Hoffman, T. Darrell, K. Saenko. Adversarial Discriminative Domain Adaptation. CVPR2017
関連研究: [Ganin+ 2014]
Unsupervised Domain Adaptation by Backpropagation (RevGrad)
 DiscriminatorとFeature Extractorをbackpropで同時に学習する
Gradient Reversal Layer (GRL)を提案
[Ganin+ 2014] Y. Ganin, V. Lempitsky. Unsupervised Domain Adaptation by Backpropagation. ICML2015
• Forward:恒等写像
• Backward:勾配の符号を反転
提案手法のアイデア
 従来手法の欠点
 ドメイン不変の特徴量が識別性能を意味するわけではない
 e.g. 𝒯のbackpackと𝒮のcarの特徴量が近くなる写像でもドメイン不変
は満たしている
 Supervised DA (SDA)では異なるドメイン・同じクラスの特徴量が
近くなるように学習する手法が提案済み [Motiian+ 2017]
⇒ UDAでも同様のアプローチが可能ならば精度が向上するのでは?
[Motiian+ 2017] S. Motiian, M. Piccirilli, D. A. Adjeroh, G. Doretto; Unified Deep Supervised Domain Adaptation and Generalization. ICCV2017.
関連研究:[Motiian+ 2017]
Unified Deep Supervised Domain Adaptation and Generalization
[Motiian+ 2017] S. Motiian, M. Piccirilli, D. A. Adjeroh, G. Doretto; Unified Deep Supervised Domain Adaptation and Generalization. ICCV2017.
異なるドメイン・異なるクラス:遠ざけたい異なるドメイン・同じクラス:近づけたい
 (1) 𝒮のサンプルでclassifier 𝑓を学習
 (2) 𝑓で𝒯のサンプルにpseudo-labeling
➢ 𝒯のサンプルにラベルを付与したい
➢ ラベルを付与できれば前スライドのSDAの手法が適用できる
…pseudo-labelは誤りも含まれるのでは?
 (3) 異なるドメイン・同じクラスのcentroid間の距離を損失関数に組み込んで学習
➢ centroidに各クラスを代表させることで誤ったpseudo-labelの影響を抑える
Moving Semantic Transfer Network (MSTN)
誤った
pseudo-label
centroid
反復
アーキテクチャと損失関数
Classification loss
Classification Loss:
Adversarial Loss:
Semantic Loss:
ℒ 𝑆𝑀 𝒳𝒮, 𝒴 𝒮, 𝒳 𝒯 = ෍
𝑘=1
𝐾
Φ 𝐶 𝒮
𝑘
, 𝐶 𝒯
𝑘
ℒ 𝐷𝐶 𝒳𝒮, 𝒳 𝒯 = 𝔼 𝑥~𝐷 𝒮
log 1 − 𝐷 ∘ 𝐺 𝑥
+ 𝔼 𝑥~𝐷 𝒯
log 𝐷 ∘ 𝐺 𝑥
ℒ 𝐶 𝒳𝒮, 𝒴 𝒮 = 𝔼 𝑥,𝑦 ~𝐷 𝒮
𝐽 𝑓 𝑥 , 𝑦
𝐽 … :cross entropy loss
クラス毎にcentroid間の距離を算出
ℒ = ℒ 𝐶 + 𝜆ℒ 𝐷𝐶 + 𝛾ℒ 𝑆𝑀
centroidの計算
 各iterationでのcentroidの計算:2つの問題点
① ターゲットのミニバッチ内に含まれないクラスが
あるかもしれない
② バッチサイズが小さい場合は誤ったpseudo-labelに
影響されて真のcentroidからの偏差が大きくなるかもしれない
各iterationでは指数移動平均でcentroidを更新
実験:性能比較 (1/2)
 著者ら:moving averageはDAが困難なケース(A→D・D→A)で有効だった
 DAが容易 or バッチサイズが大きい場合は各iterationで適切なcentroidの算出が可能
 DAが困難 or バッチサイズが小さい場合はnoisyなのでmoving averageが有効
実験:性能比較 (2/2)
 他の2つのベンチマークでもMSTNが
他の手法を上回る性能を発揮
実験:t-SNE 可視化
〇 𝒮と𝒯のサンプルがうまく混ざっている
× クラス間の境界が曖昧
〇 𝒮と𝒯のサンプルがうまく混ざっている
〇 クラス間の境界についても考慮
まとめ
 Domain alignmentではなく、クラスレベルのalignmentをUDAで行う
Moving Semantic Transfer Network (MSTN)を提案
 Pseudo labeling + moving average + centroid alignmentを組み合わせる
 Domain alignmentを用いる従来手法よりも性能が向上
 DAが困難 or バッチサイズが小さい場合にmoving averageが有効
 クラス間の境界を考慮しているような特徴表現が得られていた
【参考】
実験設定:データセット
3種類のデータセットでDAの性能比較
Office-31
Amazon, Webcam, DSLRで収集・撮影した31クラスのデータセット
ImageCLEF-DA
ImageCLEF 2014 DA challengeで使用された12クラスのデータセット
MNIST-USPS-SVHN
数字10クラスの3種類のデータセット
【参考】
実験設定:ハイパーパラメータ・Optimizer等
 ハイパーパラメータ
 𝜃 = 0.7
 𝛾 = 10
 𝜆 = Τ2 1 + exp −𝛾 ⋅ 𝑝 − 1
 Optimizer:SGD with momentum 0.9
 Fine-tuneのレイヤーではlearning rateを0.1倍
 Learning rateは𝜇 𝑝 = Τ0.01 1 + 10 ⋅ 𝑝 0.75
でannealing(数字のデータセットでは未使用)
 Adversarial lossは0.1倍
 バッチサイズ:128
𝑝 ∈ 0, 1 :学習が進むにつれて0から1に変化
【参考】
実験設定:その他実装から
 その他実装から(誤りがあるかもしれません)
 実際の損失関数は𝐿 = 𝐿 𝐶 + 𝜆𝐿 𝐷𝐶 + 𝜆𝐿 𝑆𝑀
 バイアス𝑏は重み𝑤に対して2倍のlearning rateを設定
 Weight Decayあり
【参考】
実験結果:𝒜 -distanceの比較
 𝒜-distance:ドメインの不一致度を測る指標
 Empirical 𝒜-distance
 Standard CNN, RevGrad, MSTNを比較
2クラス分類はkernel SVMで学習
RevGradとMSTNはあまり違いがない
⇒ にもかかわらずMSTNの方が良い性能を発揮した
⇒ ドメインの不一致度を小さくするだけでは十分ではなかったことを示唆
𝑑 𝒜 = 2 1 − 𝜖
𝜖:𝒮と𝒯の2クラス分類の識別誤差

Learning Semantic Representations for Unsupervised Domain Adaptation 論文紹介

  • 1.
    Learning Semantic Representations forUnsupervised Domain Adaptation @__t2kasa__ 髙木 士 (Tsukasa Takagi) 2018/07/28 ICML2018読み会
  • 2.
    自己紹介  髙木 士(Tsukasa Takagi)  経歴  ~2016/03 大阪大学 大学院電気電子情報工学専攻 修士課程  2016/04~ キヤノン株式会社  画像認識・物体検出・Windows デスクトップアプリ  Twitter: @__t2kasa__  Blog: http://t2kasa.sub.jp/  GitHub: https://t2kasa.github.io/ 最近はブログよりもこちらで書いてます
  • 3.
    背景:Domain Adaptation (DA) 学習データとテストデータの分布が 異なる場合がある  学習データのドメイン:ソース𝒮  テストデータのドメイン:ターゲット𝒯  ドメインの違いは性能低下の要因になる  ドメインが異なる要因  天候の違い:晴れ・曇り・雨・霧  照明条件:屋内・屋外  シミュレーションとリアル  カメラの種類 Office-31 Dataset
  • 4.
    Domain Adaptationの問題設定 (1/2) 𝑝𝒮 𝑥, 𝑦 = 𝑝 𝒯 𝑥, 𝑦 学習データ テストデータ 一般的な機械学習の問題設定 学習データとテストデータのサンプルが 独立同分布の同じ確率分布から得られる 𝑝 𝒮 𝑥, 𝑦 学習データ テストデータ 𝑝 𝒯 𝑥, 𝑦≠ Domain Adaptationの問題設定 学習データとテストデータのサンプルが 独立同分布の異なる確率分布から得られる
  • 5.
    Domain Adaptationの問題設定 (2/2) 今回のタスク:Unsupervised DA (UDA) ソース𝒮:アノテーションあり ターゲット𝒯:アノテーションなし  Supervised DA (SDA) ソース𝒮:アノテーションあり ターゲット𝒯:アノテーションあり 𝑝 𝒮 𝑥, 𝑦 学習データ テストデータ 𝑝 𝒯 𝑥, 𝑦≠ Domain Adaptationの問題設定 学習データとテストデータのサンプルが 独立同分布の異なる確率分布から得られる
  • 6.
    共変量シフト (covariate shift)の仮定 DAでよく利用される仮定:共変量シフト  入出力規則は不変: 𝑝 𝒮 𝑦|𝑥 = 𝑝 𝒯 𝑦|𝑥  入力の分布が異なる: 𝑝 𝒮 𝑥 ≠ 𝑝 𝒯 𝑥 𝑥 𝒮 𝑥 𝒯  DAでよく用いられるアプローチ  Domain alignment (Domain confusion)  𝒮と𝒯のサンプルの特徴表現が 近づくようにする Classifier (𝒮で学習) Feature Extractor
  • 7.
  • 8.
    論文概要:Learning Semantic Representations forUnsupervised Domain Adaptation  Domain alignmentではなく、クラスレベルのalignmentをUDAで行う Moving Semantic Transfer Network (MSTN)を提案  Pseudo labeling + moving average + centroid alignmentを組み合わせる  Domain alignmentを用いる従来手法よりも性能が向上  GitHubに実装が公開  https://github.com/Mid-Push/Moving-Semantic-Transfer-Network  Python 2 + TensorFlow
  • 9.
    関連研究: [Tzeng+ 2017] AdversarialDiscriminative Domain Adaptation (ADDA)  Pre-training, Adversarial Adaptation, Testingの3ステップで構成 Fix Fix Fix 𝒮のサンプルでSource CNN と Classifierを学習 Discriminatorが𝒮, 𝒯どちらのサンプルか 見分けられないようにTarget CNNと Discriminatorを敵対的学習 Target CNNとClassifierを接続して 𝒯のサンプルで評価 [Tzeng+ 2017] E. Tzeng, J. Hoffman, T. Darrell, K. Saenko. Adversarial Discriminative Domain Adaptation. CVPR2017
  • 10.
    関連研究: [Ganin+ 2014] UnsupervisedDomain Adaptation by Backpropagation (RevGrad)  DiscriminatorとFeature Extractorをbackpropで同時に学習する Gradient Reversal Layer (GRL)を提案 [Ganin+ 2014] Y. Ganin, V. Lempitsky. Unsupervised Domain Adaptation by Backpropagation. ICML2015 • Forward:恒等写像 • Backward:勾配の符号を反転
  • 11.
    提案手法のアイデア  従来手法の欠点  ドメイン不変の特徴量が識別性能を意味するわけではない e.g. 𝒯のbackpackと𝒮のcarの特徴量が近くなる写像でもドメイン不変 は満たしている  Supervised DA (SDA)では異なるドメイン・同じクラスの特徴量が 近くなるように学習する手法が提案済み [Motiian+ 2017] ⇒ UDAでも同様のアプローチが可能ならば精度が向上するのでは? [Motiian+ 2017] S. Motiian, M. Piccirilli, D. A. Adjeroh, G. Doretto; Unified Deep Supervised Domain Adaptation and Generalization. ICCV2017.
  • 12.
    関連研究:[Motiian+ 2017] Unified DeepSupervised Domain Adaptation and Generalization [Motiian+ 2017] S. Motiian, M. Piccirilli, D. A. Adjeroh, G. Doretto; Unified Deep Supervised Domain Adaptation and Generalization. ICCV2017. 異なるドメイン・異なるクラス:遠ざけたい異なるドメイン・同じクラス:近づけたい
  • 13.
     (1) 𝒮のサンプルでclassifier𝑓を学習  (2) 𝑓で𝒯のサンプルにpseudo-labeling ➢ 𝒯のサンプルにラベルを付与したい ➢ ラベルを付与できれば前スライドのSDAの手法が適用できる …pseudo-labelは誤りも含まれるのでは?  (3) 異なるドメイン・同じクラスのcentroid間の距離を損失関数に組み込んで学習 ➢ centroidに各クラスを代表させることで誤ったpseudo-labelの影響を抑える Moving Semantic Transfer Network (MSTN) 誤った pseudo-label centroid 反復
  • 14.
    アーキテクチャと損失関数 Classification loss Classification Loss: AdversarialLoss: Semantic Loss: ℒ 𝑆𝑀 𝒳𝒮, 𝒴 𝒮, 𝒳 𝒯 = ෍ 𝑘=1 𝐾 Φ 𝐶 𝒮 𝑘 , 𝐶 𝒯 𝑘 ℒ 𝐷𝐶 𝒳𝒮, 𝒳 𝒯 = 𝔼 𝑥~𝐷 𝒮 log 1 − 𝐷 ∘ 𝐺 𝑥 + 𝔼 𝑥~𝐷 𝒯 log 𝐷 ∘ 𝐺 𝑥 ℒ 𝐶 𝒳𝒮, 𝒴 𝒮 = 𝔼 𝑥,𝑦 ~𝐷 𝒮 𝐽 𝑓 𝑥 , 𝑦 𝐽 … :cross entropy loss クラス毎にcentroid間の距離を算出 ℒ = ℒ 𝐶 + 𝜆ℒ 𝐷𝐶 + 𝛾ℒ 𝑆𝑀
  • 15.
    centroidの計算  各iterationでのcentroidの計算:2つの問題点 ① ターゲットのミニバッチ内に含まれないクラスが あるかもしれない ②バッチサイズが小さい場合は誤ったpseudo-labelに 影響されて真のcentroidからの偏差が大きくなるかもしれない 各iterationでは指数移動平均でcentroidを更新
  • 16.
    実験:性能比較 (1/2)  著者ら:movingaverageはDAが困難なケース(A→D・D→A)で有効だった  DAが容易 or バッチサイズが大きい場合は各iterationで適切なcentroidの算出が可能  DAが困難 or バッチサイズが小さい場合はnoisyなのでmoving averageが有効
  • 17.
  • 18.
    実験:t-SNE 可視化 〇 𝒮と𝒯のサンプルがうまく混ざっている ×クラス間の境界が曖昧 〇 𝒮と𝒯のサンプルがうまく混ざっている 〇 クラス間の境界についても考慮
  • 19.
    まとめ  Domain alignmentではなく、クラスレベルのalignmentをUDAで行う MovingSemantic Transfer Network (MSTN)を提案  Pseudo labeling + moving average + centroid alignmentを組み合わせる  Domain alignmentを用いる従来手法よりも性能が向上  DAが困難 or バッチサイズが小さい場合にmoving averageが有効  クラス間の境界を考慮しているような特徴表現が得られていた
  • 20.
  • 21.
    【参考】 実験設定:ハイパーパラメータ・Optimizer等  ハイパーパラメータ  𝜃= 0.7  𝛾 = 10  𝜆 = Τ2 1 + exp −𝛾 ⋅ 𝑝 − 1  Optimizer:SGD with momentum 0.9  Fine-tuneのレイヤーではlearning rateを0.1倍  Learning rateは𝜇 𝑝 = Τ0.01 1 + 10 ⋅ 𝑝 0.75 でannealing(数字のデータセットでは未使用)  Adversarial lossは0.1倍  バッチサイズ:128 𝑝 ∈ 0, 1 :学習が進むにつれて0から1に変化
  • 22.
    【参考】 実験設定:その他実装から  その他実装から(誤りがあるかもしれません)  実際の損失関数は𝐿= 𝐿 𝐶 + 𝜆𝐿 𝐷𝐶 + 𝜆𝐿 𝑆𝑀  バイアス𝑏は重み𝑤に対して2倍のlearning rateを設定  Weight Decayあり
  • 23.
    【参考】 実験結果:𝒜 -distanceの比較  𝒜-distance:ドメインの不一致度を測る指標 Empirical 𝒜-distance  Standard CNN, RevGrad, MSTNを比較 2クラス分類はkernel SVMで学習 RevGradとMSTNはあまり違いがない ⇒ にもかかわらずMSTNの方が良い性能を発揮した ⇒ ドメインの不一致度を小さくするだけでは十分ではなかったことを示唆 𝑑 𝒜 = 2 1 − 𝜖 𝜖:𝒮と𝒯の2クラス分類の識別誤差