Linear Probing
Linear Probingがロジスティック回帰、特徴抽出、転移学習向けのUltralytics YOLO26埋め込みを用いて、凍結されたAI表現を評価する方法を学びます。
線形プロービングは、凍結した特徴の上に単純な線形予測器を学習させることで、モデルが学習した表現がどの程度有用かを測定する評価および適応の手法です。事前学習済みのエンコーダーは変更せず、ラベル付きデータに対して線形層のみを適合させます。分類ではロジスティック回帰がよく使用されます。プローブの性能が高い場合、エンコーダーの埋め込みがすでに関連する概念を整理しており、単純な決定境界で分離できることを示唆します。
機械学習において、この用語はハッシュテーブルにおける線形プロービングとは関係ありません。ハッシュの衝突後に、隣接する記憶領域を確認する手法とは別のものです。AIおよびディープラーニングでは、線形モデルを用いて表現をプロービングすることを指します。
線形プロービングの仕組み#
一般的なニューラルネットワークには、生の入力を特徴ベクトルに変換するエンコーダーまたはバックボーンと、それに続くタスク固有の予測ヘッドが含まれます。線形プロービングは、次の4つの手順で実行します。
- エンコーダーを事前学習するか、読み込みます。
- 学習によってパラメーターが更新されないように、パラメーターを凍結します。
- ラベル付きサンプルに対して特徴抽出を実行します。
- 固定された特徴を使用して線形分類器を学習させます。
マルチクラス分類では、プローブとしてsoftmax出力を持つ単一の全結合層、またはscikit-learnのロジスティック回帰分類器が一般的に使用されます。ロジスティック回帰には非線形な確率変換が含まれますが、そのクラススコアと決定境界は入力特徴の線形関数です。
線形プロービングは、エンコーダーがラベルなしデータから学習する自己教師あり学習で特によく使用されます。Keras NNCLRの例では、凍結したエンコーダーの特徴に対して全結合分類器を学習させることで、この手法を示しています。プローブの容量は限られているため、複雑な非線形変換を学習して弱い表現を補うことは容易ではありません。
線形プローブの性能から分かること#
線形プローブは、表現内に情報が存在し、かつ容易に利用できる状態かどうかを検証します。猫と犬の画像が埋め込み空間内で分離可能なグループを形成している場合、線形分類器は少数の学習可能なパラメーターでそれらを識別できます。情報がより複雑な配置によって符号化されている場合は、線形プローブの性能が低くても、非線形分類器が機能する可能性があります。
したがって、プローブの精度はモデル品質の完全な指標ではなく、診断指標として扱う必要があります。精度は次の要因の影響を受ける可能性があります。
- 選択したエンコーダー層と埋め込み次元。
- 入力解像度と前処理。
- ラベル付き学習データの量とバランス。
- 線形モデルに適用する正則化。
- 学習セットと評価セット間のデータリーケージ。
ホールドアウトした検証データセットを使用します。できれば、scikit-learnの学習用・テスト用分割ユーティリティのような、再現可能で層化された手順で作成してください。精度だけでなく、分類メトリクスレポートを使用すると、表現によって一貫して分離できないクラスを明らかにできます。
線形プロービングと関連手法の比較#
線形プロービングは、転移学習および表現評価手法の大きなカテゴリに属しますが、いくつか重要な違いがあります。
- 線形プロービングとファインチューニング: プローブでは線形ヘッドのみを更新します。ファインチューニングではエンコーダーの一部またはすべての重みを更新するため、モデルの柔軟性が高まりますが、追加の計算リソースが必要になり、過学習のリスクも高まります。TensorFlowの転移学習ガイドでは、ファインチューニングのために任意で凍結を解除する前に、ベースモデルを凍結する方法を説明しています。
- 線形プロービングと特徴抽出: 特徴抽出は埋め込みを生成し、線形プロービングはそれらの埋め込みに対する予測器を学習および評価します。
- 線形プロービングと線形回帰: 線形回帰は連続値を予測します。分類プローブは通常、ロジスティック回帰またはsoftmax層を使用して離散クラスを予測します。
- 線形プロービングと最近傍評価: 線形プローブはクラス境界を学習します。最近傍手法は、クラス境界を学習せず、保存された近傍の埋め込みに基づいてサンプルを分類します。PyTorchの転移学習チュートリアルでは、これに近い凍結エンコーダーのワークフローを固定特徴抽出器と呼んでいます。
Ultralytics YOLOによる線形プロービング#
事前学習済みのUltralytics YOLO26分類モデルは、ドキュメントに記載されたmodel.embed() APIを使用して画像埋め込みを生成できます。次の例では、あらかじめ特徴を計算することでエンコーダーを暗黙的に凍結し、CIFAR-10の猫と犬を識別する線形プローブを適合させます。
import numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score
from sklearn.model_selection import train_test_split
from torchvision.datasets import CIFAR10
from ultralytics import YOLO
dataset = CIFAR10(root="data", train=False, download=True)
samples = [(image, label) for image, label in dataset if label in (3, 5)][:400]
images, labels = zip(*samples, strict=True)
encoder = YOLO("yolo26n-cls.pt")
embeddings = encoder.embed(list(images), verbose=False)
features = np.stack([embedding.cpu().numpy() for embedding in embeddings])
x_train, x_test, y_train, y_test = train_test_split(features, labels, test_size=0.25, random_state=42, stratify=labels)
probe = LogisticRegression(max_iter=1000)
probe.fit(x_train, y_train)
predictions = probe.predict(x_test)
print(accuracy_score(y_test, predictions))猫と犬のラベルから学習するのはロジスティック回帰モデルのみであり、YOLO26のエンコーダー重みは固定されたままです。これにより、エンドツーエンド学習による適応能力ではなく、その視覚表現の有用性を切り分けて評価できます。
実際の用途と実践的な指針#
-
ラベルなし事前学習の評価: ロボット工学チームは、大量の倉庫動画に対してエンコーダーを事前学習し、その後、フォークリフト、作業員、パレットを含む少量のラベル付きデータセットを使用して特徴をプロービングできます。プローブの精度が高い場合、限られたアノテーションで下流の画像分類または検出に利用できる表現である可能性を示します。
-
ドメインへの適合性の比較: 医用画像チームは、複数の候補エンコーダーを凍結し、組織カテゴリ用に同一の線形プローブを学習させることができます。同じ分割と前処理の条件で、あるエンコーダーの性能が大幅に優れている場合、その表現は後のファインチューニングに向けたより良い出発点となります。
公平に比較するには、データセットの分割、特徴層、前処理、分類器、最適化設定を一定に保ちます。可能であれば、線形プロービングと完全なファインチューニングの両方を評価してください。プローブは固定された特徴から利用可能な情報を測定し、ファインチューニングは完全なモデルがどの程度効果的に適応できるかを測定します。









