One-Shot Learning
AIにおけるワンショット学習を探求します。効率的なコンピュータビジョンのために、Ultralytics YOLO26とSiameseネットワークを使用して単一の画像からオブジェクトを分類する方法を学びましょう。
One-Shot Learningは、1つのトレーニング例からオブジェクトカテゴリに関する情報を学習するように設計された、machine learning (ML)における特殊な分類手法です。効果的に汎化するために数千ものアノテーション済み画像を含む膨大なdatasetsを必要とする従来のdeep learning (DL)アルゴリズムとは異なり、One-Shot Learningは新しい概念を瞬時に把握する人間の認知能力を模倣します。例えば、人間は一度見ただけで特定の珍しい鳥を認識できることが多く、この方法論はその効率性をartificial intelligence (AI)システムで再現しようとするものです。これは、data labelingにコストがかかる場合や、データが不足している場合、あるいはモデル全体を再トレーニングすることなく新しいカテゴリを動的に追加する必要があるシナリオで特に価値があります。
概念の背後にあるメカニズム#
One-Shot Learningの核心的な原則は、目的を標準的な分類から類似度評価へと移行することにあります。neural network (NN)に特定のクラスラベル(例:「犬」や「猫」)を出力するようにトレーニングする代わりに、モデルは距離関数を学習します。このために採用される一般的なアーキテクチャはSiamese neural networkであり、これは同じmodel weightsを共有する2つの同一のサブネットワークで構成されています。
動作中、ネットワークはfeature extractionを実行して入力画像をembeddingsと呼ばれるコンパクトな数値ベクトルに変換します。次に、システムは新しいクエリ画像の埋め込みと、1つのリファレンスである「ショット」の埋め込みを比較します。Euclidean distanceまたはcosine similarityを使用して計算されることが多い数学的距離が特定のしきい値を下回る場合、それらの画像は同じクラスに属すると判断されます。これにより、モデルは学習された特徴空間における近接性に基づいて、身元の確認やオブジェクトの分類を行うことができます。
次のPythonコードは、ultralyticsパッケージのYOLO26分類モデルを使用して埋め込みを抽出し、類似度を計算する方法を示しています。
import numpy as np
from ultralytics import YOLO
# Load a pre-trained YOLO26 classification model for feature extraction
model = YOLO("yolo26n-cls.pt")
# Extract embeddings for a reference 'shot' and a query image
# The embed() method returns the feature vector directly
shot_vec = model.embed("reference_img.jpg")[0]
query_vec = model.embed("query_img.jpg")[0]
# Calculate similarity (higher dot product implies greater similarity)
similarity = np.dot(shot_vec, query_vec) / (np.linalg.norm(shot_vec) * np.linalg.norm(query_vec))
print(f"Similarity Score: {similarity:.4f}")関連パラダイムの区別#
ワンショット学習は他のデータ効率の高い学習技術とは区別することが重要です。これらは同様の問題を異なる制約を通じて解決するためです。
- Few-Shot Learning (FSL): これはOne-Shot Learningを含むより広いカテゴリです。FSLでは、クラスあたり通常2〜5枚の画像に及ぶ小さな「サポートセット」の例がモデルに提供されます。One-Shot Learningは、サポートセットのサイズが正確に1である極端なケースにすぎません。
- Zero-Shot Learning (ZSL): ZSLは、モデルが視覚的に一度も見たことのないカテゴリを認識することを扱います。参照画像の代わりに、ZSLはnatural language processing (NLP)を介して、セマンティック属性やテキスト説明(例:「しま模様の馬」というテキスト説明に視覚的特徴を関連付けて「シマウマ」を識別すること)に依存しています。
- Transfer Learning: これには、ImageNetのような大規模なデータベースで事前トレーニングされたモデルを取り入れ、新しいタスクでそれを微調整(ファインチューニング)することが含まれます。転移学習はOne-Shot Learningで使用される特徴抽出器の原動力となりますが、標準的な転移学習では、overfittingを起こさずに重みを効果的に更新するために通常複数の例が必要になります。
実社会での応用#
One-Shot Learningは、膨大な量のtraining dataを収集することが現実的ではない分野で機能を実現してきました。
顔認証とセキュリティ#
One-Shot Learningの最も普遍的なアプリケーションは、生体認証セキュリティです。スマートフォンのFace IDを設定するときや従業員アクセスシステムに登録するとき、デバイスはユーザーの顔の単一の数学的表現をキャプチャします。日常的な使用中、facial recognitionシステムは、ライブカメラフィードとこの保存された「ワンショット」を比較して身元を確認します。これは、照明や角度の変化によって類似度マッチが損なわれないようにするために、基礎となるFaceNet researchで議論されているような堅牢な埋め込み技術に依存しています。
産業品質管理#
AI in manufacturingにおいて、「不良品」のバランスの取れたデータセットを作成することは、欠陥が稀であり一貫性がないため困難です。One-Shot Learningを使用すると、computer vision (CV)システムは1つの「完璧な」基準部品の表現を学習できます。この基準から大幅に離れた埋め込みを生成する組立ライン上のアイテムは、anomaly detectionの対象としてフラグが立てられます。これにより、破損した部品の何千もの画像を必要とすることなく即座の品質保証が可能になり、Ultralytics Platformを介して管理およびデプロイすることができます。
課題と将来の展望#
強力ではあるものの、One-Shot Learningはノイズの影響を受けやすくなっています。単一の基準画像がぼやけている、遮られている、または代表的でない場合、そのクラスを認識するモデルの能力は大幅に低下します。研究者は、モデルの安定性と汎化を改善するために、meta-learning(または「学習する方法の学習」)を頻繁に採用しています。アーキテクチャが進化するにつれて、YOLO26のような新しいモデルは、ワンショット推論をより高速かつ正確にする、より堅牢な特徴抽出器を組み込んでおり、より適応的でインテリジェントなedge AIデバイスへの道を開いています。






