転移学習は、あるタスクやデータで学習した知識を別のタスク・データに再利用する学習方法です。大規模データで事前学習したモデルを少量データのタスクに活かす実務上きわめて重要な技術であり、この項目ではファインチューニング、ドメインシフト、ドメイン適応という中心概念を学びます。

📖 概要

深層学習モデルを高い性能で学習させるには大量のラベル付きデータが必要ですが、実際のタスクでは十分なデータを集められないことが少なくありません。転移学習は、ImageNetのような大規模データセットで学習済みのモデル(あるいはBERTなどの事前学習済み言語モデル)が獲得した汎用的な特徴表現を、目的のタスク(ターゲットタスク)に持ち込むことで、少ないデータでも高い性能を実現するアプローチです。CNNの下位層が獲得するエッジや色などの低レベル特徴は多くの画像タスクに共通して有効である、というのが転移が機能する直感的な理由です。

転移の典型的なやり方には、学習済みモデルを特徴抽出器として固定し出力層のみを新たに学習する方法と、モデル全体(または一部の層)を再学習するファインチューニングがあります。一方、転移がうまくいかない主因となるのが、学習時と適用時でデータの分布が異なるドメインシフトであり、これに対処する技術がドメイン適応です。

🔍 キーワード解説

転移学習の基本形

事前学習(pre-training)済みモデルの重みを初期値として利用し、ターゲットタスクに合わせて出力層(分類ヘッド)を付け替えるのが基本形です。ターゲットのデータが少ない場合は、事前学習済みの層を凍結(重みを固定)して特徴抽出器として使い、新しい出力層だけを学習する方法がよく採られます。これにより過剰適合のリスクを抑えつつ、事前学習で得た表現力を活用できます。

ファインチューニング

ファインチューニングは、事前学習済みモデルの重みを初期値として、ターゲットタスクのデータでモデルの全体または一部の層を再学習(微調整)する方法です。凍結して使う場合と比べて、ターゲットタスクに合わせて特徴表現自体を適応させられるため、データが十分にあればより高い性能が期待できます。一般に、事前学習で得た知識を壊さないよう小さめの学習率が用いられ、「下位層は凍結し上位層のみ再学習する」といった段階的な調整も行われます。ただしターゲットデータが少なすぎると過剰適合や、事前学習の知識を失う破滅的忘却のリスクがあります。BERTなどの言語モデルにおける「事前学習+ファインチューニング」のパラダイムも同じ考え方です。

ドメインシフト

ドメインシフトは、モデルを学習したときのデータ分布(ソースドメイン)と、実際に適用するときのデータ分布(ターゲットドメイン)がずれている状況を指します。例えば、晴天の昼間の画像で学習した認識モデルを夜間や雨天の画像に適用する、シミュレーション画像で学習して実写に適用する、といったケースです。機械学習の基本前提である「訓練データとテストデータが同じ分布に従う」が崩れるため、ソースで高精度なモデルでもターゲットでは性能が大きく劣化することがあります。入力分布の変化(共変量シフト)はドメインシフトの代表的な形態です。

ドメイン適応 (domain adaptation)

ドメイン適応 (domain adaptation) は、ドメインシフトがある状況で、ソースドメインの知識(多くはラベル付きデータ)を活かしてターゲットドメインでの性能を高める転移学習の一分野です。特にターゲットのラベルが得られない設定は教師なしドメイン適応と呼ばれます。代表的なアプローチとして、ソースとターゲットの特徴分布を近づける「特徴分布の整合」があり、ドメインを見分ける識別器を欺くように特徴抽出器を敵対的に学習する方法(ドメイン敵対的学習)などが知られています。タスク(何を予測するか)は同じままデータ分布の違いを埋める点が、タスク自体を変える一般の転移学習との違いとして整理されます。

📝 試験でのポイント

💡 ポイント
  • 「出力層のみ学習(特徴抽出器として凍結)」と「ファインチューニング(全体・一部を再学習)」の違い、およびターゲットデータ量に応じた使い分けの考え方が問われます
  • ファインチューニングでは「事前学習済み重みを初期値に、小さめの学習率で再学習する」という設定の妥当性を選ばせる問題が典型です
  • ドメインシフト=「ソースとターゲットの分布のずれ」、ドメイン適応=「そのずれを埋める手法」という用語の対応を正確に押さえましょう
  • ターゲットのラベルがない教師なしドメイン適応という設定の存在と、特徴分布を近づけるアプローチの発想を理解しておきましょう
  • 転移学習が有効な理由(下位層の汎用的特徴の再利用)と、有効でない場合(ドメインが大きく異なる場合の負の転移)の両面を意識しましょう

📚 まとめ

転移学習は、事前学習で得た表現を別タスクに再利用してデータ不足を補う枠組みで、代表的な実現方法がファインチューニングです。一方、学習時と適用時の分布のずれであるドメインシフトは性能劣化の主因であり、これを埋める手法群がドメイン適応です。「何を固定し何を再学習するか」「分布のずれをどう扱うか」という2つの軸で整理しておきましょう。