https://ieeexplore.ieee.org/abstract/document/10032409
会議はIEEEのData Science and Advanced Analytics(DSAA)
Introduction
Domain Adaptationの中には、
- Target Domainに一切ラベルがない状態で行うUnlabeled Domain Adaptation(UDA)
- Target Domainに一部ラベルがついているSemi-Supervised Domain Adaptation(SSDA)
の両方がある。
この論文の貢献は以下の通り。
- PU Learningに初めてDomain Adaptationを導入した。
- 既存のDomain Adaptationの手法を調査した。
- 2stepの学習手法を提案し、それでDomain Adaptationを含むPU Learningの問題設定を考えた。
Related Works
先行研究でPU LearningにおけるCovariance Shiftを考慮した研究はあるが、TrainとTestのDistribution Shiftのみを考えていた。種類はCovariance Shiftとか。
PU LearningのRelated Workは略。
Domain Adaptation
📄2021-Survey-A Comprehensive Survey on Transfer Learning (Part1) Instance Weighting Strategy ここら辺を見ると参考になるかも。
異なるドメインのデータを、共通の特徴空間にマッピングすることで、データが少ない分野などでも転用できるようにする。そのためには分布のマッチングが必要。
やり方としては直接マッピングさせたり、敵対的識別器を学習させたりとか。
提案手法
問題設定
- ソースドメインはで、合計個。
- ターゲットドメインはとPUのデータである。それぞれ個存在している。
- と比べて、は十分に大きい。
- は同じ特徴空間の上にマッピングすると当然違う分布になる。
手法としては2ステップのものを提案している。
Step1: Pseudo Target Labelの作成
Domain Alignment
流れとしては、まずデータをどのドメインから来ているかを問わずにうまく特徴空間にマッピングするがあり、そこから識別器に入れて最終的に確率にcalibrationする。
この論文では、特徴空間の中で2つの分布を合わせるのは、以下の論文を用いている。
Wang, Jing, et al. "Discriminative feature alignment: Improving transferability of unsupervised domain adaptation by Gaussian-guided latent alignment." Pattern Recognition 116 (2021): 107943.
https://www.sciencedirect.com/science/article/pii/S0031320321001308
具体的には、Encoder, Decoderモデルを使う。
まず、と基準となるベクトルをランダムに生成。
次に、以下のように、
- Source DomainのデータはのEncoderによって得られた特徴はの分布と似るようにする。
- Target DomainのデータはとEncoder→Decoderを通して復元したものと、の分布が似るようにしたい。
ここでは、Source, Target両方は特徴空間の上では目標としては同じ表現を獲得することを目指し、それがDomain Alignmentである。
そのうえで、毎回の更新でパラメタの変化が大きく変わらないようにする。が識別器であるが、このの層目の最後の出力の1つ前の内部表現をとする。この内部表現を毎回の遷移で急激に変わってほしくないというインセンティブをつける。
はハイパラであり、は1つ前と今のそれぞれのパラメタである。これにより、以下の効果がある。
- 徐々に変わっていく。
- Source, Targetのデータを混合して与えていく場合ならば、Source, Target間で識別器の適合が急激に変わらないようにすることで同じような表現を抽出しやすくする。
全体の損失のはこれの和である。
Source DomainのClassification
ここまではDomainを合わせることだけを考えていたが、ここから先としては、ちゃんとから得た埋め込み表現は識別に使えるということが必要。
これはクロスエントロピー損失で、Source Domainについてのデータで計算する。
Target DomainのClassification
今回はTarget DomainがPUデータになっている。なので、Target DomainでPU Learningをしていい。📄2017-NIPS-[nnPU] Positive-Unlabeled Learning with Non-Negative Risk Estimator を使う。
ここでのPU Learningがうまくできるように、Source Domainの知識を転移させるのが目的ともいえるし、そのためにAlignなどをしてきた。
Step1の全体の損失の式
ハイパラのを用いる。
信頼できるデータを選び出す
以上の損失関数を使って訓練を行い、ある程度のイテレーションごとにTarget DomainのUnlabeledの中の信頼できるデータに、識別器の予測結果のSoft Labelを付与して信頼できるというMulti-setに入れる。
閾値としては、を超えるものと以下のものを信頼できるとしてMulti-setに追加。
はTarget DomainにNegativeデータが一切ないので、Source Domainから計算している。
Multi-Setなのは、早期から信頼度が高いデータはあえて複数回カウントさせることで、Step2の訓練でより重きをなしてもらうため。
全体のアルゴリズムの流れ

Step2: Obtaining the final Classifier
結局やりたかったのは、cost-sensitiveなども含んだPUの式から、信頼できるデータを選び出しそれで訓練を行うというSample Selectionの手法。
なので、Step1から得たしr内で切るMulti-setにあるデータを、重みに従って訓練して、クロスエントロピー損失で計算して終わり。
Experiments
Office-Home
Office-Homeのデータセットを使用。6ドメイン、65クラスを含むデータセット。視覚的に類似したクラスでPとNに分けて、それ以外は削除した。
この手法は基本的に良いが、1-shotの学習ではうまくいかない(あまりにもデータが偏る場合1つだけというのはまずい)
やはりというべきか、PUは選んだデータにかなり依存するのでデータが少ないと厳しいものがある。
Office-Caltech
これがOffice31。今回はAmazonをTarget Domainとして、DSLR, WebcamをそれぞれSourceとしての学習を試みる。
ここでは、Computer MonitorとLaptopで分類する(視覚的なわかりやすさを重視しそれ以外のクラスを削除)。
この手法は十分に良い。また、PU特有の少数の選んだPデータに強く依存することはないらしい。どの写真もよくDomainを代表するものであるということ。
Digit Task
MNISTとUSPSという数字だが、Domain Shiftを持つデータの間の転送である。同様に、視覚的に類似している3と5の分類を考え、それ以外のクラスは削除している。
Ablation Study
SAFN正則化が非常に重要である。次にPUの項である。
