【転移学習】ドメイン適応について理解する試み
この記事は CA Tech Lounge Advent Calendar 2024 18日目の記事です🎅🌲
前日17日目の記事は、@Shakkuさんによるラウンジ唯一の現役高専生が語る"CA Tech Lounge" でした!
私は大学生ですが、CA Tech Loungeは大学生に限らず、高校生、高専生、社会人など、様々なバックグラウンドの方が集まった素敵なコミュニティです😌
私はML/DS会員としてCA Tech Loungeに所属しているので、今回は機械学習の、中でも転移学習に関連する記事を書いてみました。
はじめに
転移学習の文脈で登場する、ドメイン適応について理解する試みです。
アドベントカレンダーということで、機械学習をちょっと知っているだけだよという人でも読める記事にすることを心がけます。
何か不明点・ご指摘点などございましたら、お気軽に記事へコメントお願いいたします🙏
🙆♀️この記事で扱うことのまとめ
- 転移学習は、少量のデータで効率的に学習できる手法全般を指すということ
- 中でもドメイン適応は、元データと目標データの分布差を適応させる手法
- さらにドメイン適応に関する研究の潮流や枠組みについて述べます
🙅♀️この記事で扱わないこと
- 数式を利用した説明
- アルゴリズムに対する詳しい説明と性能評価
もっと踏み込んだ話が気になる方は、以下書籍『転移学習』の4章 "データに基づくドメイン適応の基礎"や、参考文献内の元論文をご確認ください。
事前知識
そもそも、転移学習ってなに?
機械学習の膨大な教師ラベルを集めるのにはコストがかかります。
そのため、機械学習モデルを少ないラベルで学習させたり他データのラベルを流用する方法を探したい、というモチベーションがあります。
このように、あるタスクで学習された知識を別の領域の学習に適用するような学習手法のことを、転移学習と呼びます。
転移学習の手法は、大きく以下のように二つに分けることができます。[1]
1. データの転移(Data-Based Transfer)
2. モデルの転移(Model-Based Transfer)
転移学習には、扱う問題に応じて様々な提案手法があります。ドメイン適応とは、その学習手法の一種です。
ドメインってなに?
ドメイン適応の説明をする前に、そもそもドメインとは、そのデータが属する標本空間とデータ分布を指します。
より厳密に定義すると、「入力空間
以下に画像を用いてふんわりした例も示しておきます。緑線下側の画像は椅子、テレビ、マグの画像がイラスト風の画像であるのに対し、上側の画像は実写真になっています。この場合だと、イラスト風の画像、実写真、が各ドメインに対応します。
ドメイン適応とは
目的
"ドメイン" について述べた後で、ドメイン適応のモチベーションを表すとするなら
「あるドメインで得た知識を利用して、目標とする異なるドメインのタスクをより効率的に解決させる手法」
とまとめることができます。
ドメイン適応において、この元のドメインのことをソースドメイン、目標のドメインのことをターゲットドメインと呼びます。
[2]ソースドメイン(元ドメイン),ターゲットドメイン(目標ドメイン)のイメージ図
ソースドメインとターゲットドメインでは分布が異なる場合が多いため、ここを解決しなければならないという課題があります。分布間の違いを乗り越える技術に関して、後ほど詳しく説明していきたいと思います。
転移学習との違い
転移学習はあるタスクまたはドメインで学習したタスクを、別のダスクまたはドメインに適用する手法の全般を指します。一方、ドメイン適応は通常、タスクが同一で、ドメインが異なるケースを指しています。
(ただし近年、ドメイン適応の手法は多岐にわたっているため、ほぼ転移学習と同義とするケースもあるらしいです。)[3]
実用例
サーベイ論文[1]で紹介されていた適用例についていくつか紹介します。
1.医療画像の解析
医療画像の解析の現場では、限られた量の症例データから病気の治療や治療効果の予測を行う必要があります。ソースドメインとして大規模なデータセット(ImageNetなど)で深層学習モデルの事前学習を行い、その後ターゲットドメインとして実際の医療画像データを使用して微調整を行うことで、精度の高い診断システムを作ることができます。
2. ゲノム配列
ゲノム解析を行って、病気の診断や治療法の開発を行うことができます。
この時、ドメイン適応を利用すると、異なる生物種や異なる実験条件で取得されたゲノムデータ間で知識の転移を行うことができます。例えば、ソースドメインとしてヒトゲノムデータを用いて学習させたモデルを、ターゲットドメインのマウスのゲノムデータに適応させることでマウス遺伝子機能の予測精度を上げることができます。
3. 推薦システム
ユーザの好みや行動履歴に基づいて商品やサービスを推薦するシステムにおいて、異なる商品カテゴリや異なるユーザグループの間で知識を転移させるのに利用できます。例えば、ソースドメインとして書籍の購入履歴データを用いて学習したモデルを、ターゲットドメインの映画の視聴履歴データに適用することで映画の好みを正確に予測することができます。
ドメイン適応の技術
先ほど、適応させるドメイン間では、分布が異なるという課題について説明しました。
このような状況のことをドメインシフトと呼びます。
ドメインシフトによる精度の低下が課題であり、これを解決したいというモチベーションが存在します。
このドメインシフトの問題設定には、ソースドメインの個数とターゲットドメインへの仮定から複数の設定があります[4]が、今回は狭義にソース分布が一つの場合でのドメインシフトで、かつ教師のない「教師なしドメイン適応」についての手法をまとめたいと思います。
教師なしドメイン適応の状況下では、ターゲットドメインにラベル付けされたインスタンスが無いことでターゲットドメインの分布推定が困難になるので、ドメイン適応がより難しくなります。
[4]Deep Learning JP, "[DL輪読会]ドメイン転移と不変表現に関するサーベイ", p6図
ドメイン適応の研究の潮流
初期の研究では、主に特徴量変換やインスタンス重み付けなどの手法が用いられていました。これらの手法の目的は、ソースドメインとターゲットドメインのデータ分布の違いを小さくすることです。これらに対して、深層学習や敵対的学習を組み合わせてより洗練されたアプローチが開発されてきた、という流れがあります。
手法ごとの分類
手法ごとに分類しながら、これらの流れを見ていきたいと思います。
ドメイン適応には大きく分けて事例ベース、特徴ベースの二つに分けられますが、これらは共通するアイディアのアプローチです。どちらもソースドメインとターゲットドメインで共通の特徴空間を見つけ、その特徴空間上で特徴量の確率分布のマッチングを行うものです。[5]
特徴ベースの手法(特徴量変換)
特徴量変換の目的は、ソースドメインとターゲットドメインの特徴量を、共通の潜在的な特徴空間に写像することでドメイン間の違いを軽減することです。
特徴量変換のアルゴリズムは大きく分けて特徴量拡張, 特徴量写像の二つがあります。
-
特徴量拡張:元の特徴量を複製またはスタックすることで新しい特徴量表現を獲得する方法。
- (例)Feature Augmentation Method(2007):元のfeature spaceを3倍のサイズに拡張するもので、新しい特徴量表現は、一般的な特徴量、ソース固有の特徴量、ターゲット固有の特徴量から構成される。[6]
-
特徴量写像:ソース・ターゲット間のデータ分布を近づけるような写像関数を学習する手法。
- (例)Transfer Component Analysis(2011):最大平均差を利用して写像関数を学習。[7]
-
近年では、深層学習の発展により、線型写像だけでなく非線型写像での特徴変換を行うアプローチが開発されています。
- (例)Deep Adaptation Networks(2015):深層ニューラルネットを用いて複数の層で最大平均差を最小化することで、ドメイン普変特徴量を学習。[8]
- (例)Domain-Adversarial Neural Network(DANN)(2016):敵対的学習を用いて、ドメイン識別情報を最小限に抑えながら判別的な特徴表現を学習。DANNは、特徴抽出器、ラベル予測器、ドメイン分類器の3つの部分から構成され、特徴抽出器はドメイン分類器を騙そうとすることでドメイン不変特徴表現を学習する。[9]
-
さらにこれらに加えて、特徴量変換手法には自己符号化器を用いたものも存在します。
- (例)Stacked Denoising Autoencoder(SDA)(2011):ノイズ除去オートエンコーダを積み重ねて構築した深層学習アーキテクチャで、入力にノイズを加えてそれを再構成することでよりロバスト性の高い特徴量を学習する。[10]
- (例)Marginalized Stacked Linear Denoising Autoencoder(mSLDA)(2012):上記SDAアルゴリズムを高速化させたもので、線形オートエンコーダを採用しランダムな破損ステップを閉じた形式で周辺化している。高次元データの場合、線形オートエンコーダで十分な性能を達成できることが報告されている。[11]
事例ベースの手法
事例ベースの手法の目的は、元ドメインの事例から目標ドメインで有用なものを選択することです。以下の二つの例を紹介します。
-
重要度重み付き学習:ソースドメインのインスタンスに重みを割り当てて、ターゲットドメインのデータ分布に類似するように重要度を調整する。具体的には、損失関数にソースドメインのインスタンスの重みを組み込むことで実現する。
- (例)Kernel Mean Matchincg(KMM):ソースドメインとターゲットドメインのデータ分布間の最大平均差を最小化するように、ソースドメインのデータの重みを学習する。
-
学習アルゴリズムの拡張
- (例)TrAdaBoost:既存の学習アルゴリズムをドメイン適応用に修正し、ソースドメインとターゲットドメインの両方で後分類されたインスタンスの重みを調整することで、ターゲットドメインに適応した分類器を学習。[12] 深層学習ベースの手法と比較して比較的簡単なアルゴリズムで実装できるが、複雑なデータ分布には対応できないという課題がある。
ドメイン適応の課題
以上ではアルゴリズムを多岐にわたって紹介しましたが、ドメイン適応の課題は様々な部分に残されています。
例えば、ドメイン分類器の限界として、ソースドメインとターゲットドメインの特徴を区別するだけだと、タスク固有の識別境界を考慮することができないことなどが挙げられます。[2]
[2]松井孝太, "転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法", p33
このような課題に関連する発展的なアプローチとして、完全なる教師なしのドメイン適応を行うのでは無く、目標ドメインで少量の教師ラベルを取得して利用することが考えられています。(半教師ありドメイン適応・能動的ドメイン適応)
まとめ
ドメイン適応の潮流を攫うことばかりを考えていたら、引用手法があまり新しいものでは無くなってしまいました。
ドメイン適応の手法は多岐に渡り、特に近年のものに対しては分類できるまでにキャッチアップできていないため、そちらはいずれ別途ほかの場所にアウトプットすることができればと思っています。
閲覧していただきありがとうございます。
参考文献
- [1]Zhuang, p, et al. "A Comprehensive Survey on Transfer Learning." IEEE Transactions on Knowledge and Data Engineering, 2020, https://doi.org/10.48550/arXiv.1911.02685.
- [2]松井孝太, "転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法", https://www.slideshare.net/slideshow/ssii2021-os201-249294630/249294630#33
- [3]nnabla by sony "【Deep Learning 研修(発展)】少ないデータやラベルを効率的に活用するための機械学習技術 第3回「転移学習・ドメイン適応」後編"
https://www.youtube.com/watch?v=j1nyAhuvlgE&ab_channel=nnablaディープラーニングチャンネル - [4]Deep Learning JP "[DL輪読会]ドメイン転移と不変表現に関するサーベイ(ICML2019が中心)", Yusuke Iwasawa, Matsuo Lab, https://www.slideshare.net/slideshow/dl-149549473/149549473
- [5]松井孝太, 熊谷亘, "機械学習プロフェッショナルシリーズ 転移学習",4章 p84
- [6]"Biographies, bollywood, boom-boxes and blenders: Domain adaptation for sentiment classification", John Blitzer, Mark Dredze, Fernando Pereira (2007) https://aclanthology.org/P07-1056/
- [7]"Domain adaptation via transfer component analysis", Sinno Jialin Pan, Ivor W. Tsang, James T. Kwok, Qiang Yang (2011) https://ieeexplore.ieee.org/document/5640675
- [8]"Learning Transferable Features with Deep Adaptation Networks", Mingsheng Long, Yue Cao, Jianmin Wang, Michael I. Jordan (2015) https://dl.acm.org/doi/10.5555/3045118.3045130
- [9]"Domain-Adversarial Training of Neural Networks", Yaroslav Ganin, Evgeniya Ustinova, Hana Ajakan, Pascal Germain, Hugo Larochelle, François Laviolette, Mario Marchand, Victor Lempitsky (2016) https://dl.acm.org/doi/10.5555/2946645.2946704
- [10]"Domain adaptation for large-scale sentiment classification: A deep learning approach", Xavier Glorot, Antoine Bordes, Yoshua Bengio (2011) https://dl.acm.org/doi/10.5555/3104482.3104547
- [11]"Marginalized denoising autoencoders for domain adaptation", Minmin Chen, Kilian Q. Weinberger, John Blitzer, Fei Sha, Lawrence K. Saul (2012) https://dl.acm.org/doi/10.5555/3042573.3042781
- [12]"Boosting for transfer learning", Wenyuan Dai, Qiang Yang,Gui-Rong Xue, Yong Yu (2007) https://dl.acm.org/doi/10.1145/1273496.1273521
Discussion