Transfer Learning
転移学習では、あるタスクで学習したモデルを別のタスクの出発点として再利用するため、新しいタスクに必要なラベル付きデータと学習時間を大幅に削減できます。
転移学習は、あるタスクで学習したモデルを、関連する別のタスクの出発点として再利用する機械学習の手法です。ニューラルネットワークをランダムな重みから学習するには、大規模なラベル付きデータセットと多くの計算リソースが必要ですが、数百万枚の画像で事前学習されたモデルは、ほとんどの新しいタスクで必要となる視覚特徴をすでに学習しています。学習済みのモデル重みを出発点にすれば、新しいモデルははるかに少ないラベル付き画像と短い学習時間で高い精度を達成できます。そのため、カスタムタスク向けのコンピュータービジョンモデルを構築する際には、転移学習が標準的な方法となっています。
転移学習の仕組み#
転移学習が機能するのは、ディープネットワークが階層的に特徴を学習するためです。バックボーンの最初の層は、ほぼあらゆる画像に現れるエッジ、色、テクスチャに反応します。一方、より深い層はそれらを組み合わせて、物体の部分やタスク固有の概念を表現します。Yosinskiらの研究では、畳み込みネットワークにおけるこの進行が測定されました。その結果、最初の層の特徴は汎用的であり、特徴が元のタスクに特化するにつれて高層での転移可能性は低下する一方、新しいデータセットでファインチューニングした後も、転移された特徴が汎化性能を向上させることが示されました。
このプロセスは2つの段階で構成されます。
- 事前学習: モデルはImageNet、COCO、Objects365などの大規模なベンチマークデータセットで汎用的な表現を学習し、事前学習済みの重みを生成します。
- 適応: 分類器や検出ヘッドなどの出力層を、新しいクラスに合わせて置き換えるかサイズ変更し、ターゲットデータセットで学習します。特徴抽出では、事前学習済みの層を凍結し、新しい層のみを学習させます。ファインチューニングでは、通常、より低い学習率で、事前学習済みの層の一部またはすべてのパラメーターも更新します。
ネットワークのどの程度を再学習するかは、2つの問いによって決まります。新しいタスクにどれだけのラベル付きデータがあるか、そしてそのデータが事前学習データにどれほど似ているかです。StanfordのCS231nノートでは、これらの組み合わせから生じる4つのケースが説明されています。
物体検出の転移学習#
検出モデルは、ほぼ常に転移学習でトレーニングされます。公式のYOLO26チェックポイントはObjects365で150エポック事前学習してから、COCOでファインチューニングされます。YOLO26のトレーニングレシピに詳細が記載されています。読み込んだチェックポイントに対して新しいデータセットでtrain()を呼び出すと、互換性のある重みをすべて転移し、クラス数が変わる場合はクラス別出力行をリセットしつつ、クラス名が一致する行を維持します。また、初期層を固定するfreeze引数も指定でき、小規模なデータセットで特に役立ちます。
from ultralytics import YOLO
# COCOの80クラスで事前学習されたYOLO26nの重みを読み込みます
model = YOLO("yolo26n.pt")
# 単一クラスの新しいデータセットに適応します。freeze=10は最初の10層を固定します
results = model.train(data="medical-pills.yaml", epochs=20, freeze=10)事前学習済みのバックボーンはすでに形状、エッジ、テクスチャを検出できるため、Medical Pillsデータセットのラベル付きトレーニング画像92枚を使って、錠剤の見た目を学習するだけで済みます。
転移学習と関連用語#
- ファインチューニング: 転移学習を実施する方法の1つで、新しいデータを使って事前学習済みの重みを引き続き更新します。バックボーンを凍結する特徴抽出も、もう1つの主要な方法です。
- ドメイン適応: タスクは同じままデータ分布が変化する場合の転移学習の一種です。たとえば、昼間の画像から夜間の画像への変化が該当し、ターゲットラベルがほとんどない、またはまったくない場合もよくあります。
- ゼロショット学習と少数ショット学習: ラベル付きの例がない、またはごく少数しかない新しいクラスに対応します。完全な適応段階を設けず、事前学習済みモデルの汎用的な知識を活用します。
- パラメーター効率の高いファインチューニング(PEFT): 元の重みを凍結したまま、LoRA行列など、追加または選択した少数のパラメーターを学習させることで、非常に大規模な事前学習済みモデルを適応させます。
- 破滅的忘却: 新しいデータでモデルをファインチューニングした際に、元のタスクの能力が失われることです。新しいトレーニングセットに元のクラスの画像を一部混ぜるか、より多くの層を凍結すると、破滅的忘却を抑えられます。










