Yolo 深圳
深セン
今すぐ参加
用語集

One-Shot Learning

AIにおけるワンショット学習を探求する。Ultralytics とSiameseネットワークを用いた効率的なコンピュータビジョンで、単一画像からclassify 方法を学びましょう。

ワンショット学習は、機械学習(ML)における特殊な分類技術であり、単一の学習例から物体のカテゴリに関する情報を学習するように設計されている。効果的な一般化のために数千もの注釈付き画像を含む大規模なデータセットを必要とする従来の深層学習(DL)アルゴリズムとは異なり、ワンショット学習は新しい概念を瞬時に把握する人間の認知能力を模倣する。 例えば、人は通常、特定の珍しい鳥を一度見ただけで認識できます。この手法は、その効率性を人工知能(AI)システムで再現しようと試みます。データラベリングが高コストな場合データが不足している場合、またはモデル全体を再学習せずに動的に新しいカテゴリを追加する必要があるシナリオにおいて、特に価値があります。

概念の背後にあるメカニズム

ワンショット学習の中核原理は、目的を標準的な分類から類似性評価へ移行させることにある。ニューラルネットワーク(NN)を特定のクラスラベル(例:「犬」や「猫」)を出力するよう訓練する代わりに、モデルは距離関数を学習する。 この目的で一般的に採用されるアーキテクチャが シャムニューラルネットワークである。これは同一の モデル重みを共有する2つの同一サブネットワークで構成される。

動作中、ネットワークは特徴抽出を行い、入力画像を埋め込みと呼ばれるコンパクトな数値ベクトルに変換する。その後、システムは新規クエリ画像の埋め込みを単一参照画像の埋め込みと比較する。 「ショット」の埋め込みと比較する。 数学的距離(ユークリッド距離 やコサイン類似度で計算されることが多い)が 特定の閾値を下回ると、 両画像は同一クラスに属すると判定される。 これによりモデルは、学習済み特徴空間における近接度に基づき classify 同一性確認やclassify が可能となる。

以下のPython 、埋め込みを抽出し類似度を計算する方法を示しています。 YOLO26 の分類モデルである。 ultralytics パッケージで提供される。

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}")

関連するパラダイムの区別

ワンショット学習を他のデータ効率的な学習手法と区別することが重要です。これらは異なる制約を通じて類似の問題を解決するためです:

  • 少例学習(FSL)これはワンショット学習を含むより広範なカテゴリーである。FSLでは、モデルには各クラスあたり通常2~5枚の画像からなる小さな「サポートセット」が与えられる。ワンショット学習とは、サポートセットのサイズがちょうど1である極端なケースに過ぎない。
  • ゼロショット学習(ZSL)ZSLは、モデルが視覚的に見たことのないカテゴリの認識を扱う。参照画像の代わりに、ZSLは自然言語処理(NLP)を介して、意味的属性やテキスト記述(例:視覚的特徴を「縞模様の馬」というテキスト記述と関連付けることで「シマウマ」を識別する)に依存する。
  • 転移学習これは ImageNet で事前学習されたモデルを新たなタスク向けに微調整する手法である。転移学習はワンショット学習で用いられる特徴抽出器を支えるが、標準的な転移学習では過学習を回避しつつ重みを効果的に更新するために通常複数の例が必要となる。

実際のアプリケーション

ワンショット学習は、膨大な量の学習データを収集することが現実的でない分野において、新たな可能性を切り開いた。

顔認証とセキュリティ

ワンショット学習の最も一般的な応用例は生体認証セキュリティである。スマートフォンでFace IDを設定する際や従業員アクセスシステムに登録する際、デバイスはユーザーの顔の単一の数学的表現をキャプチャする。日常使用時、顔認識システムはライブカメラ映像をこの保存された「ワンショット」と比較し、本人確認を行う。 これは、基礎研究FaceNetで議論されたような堅牢な埋め込み技術に依存しており、 照明や角度の変化によって類似性マッチングが破綻しないことを保証する。

工業品質管理

製造業におけるAIでは、欠陥部品のバランスが取れたデータセットの作成が困難である。欠陥は稀で不規則なためだ。ワンショット学習により、コンピュータビジョン(CV)システムは単一の「完璧な」基準部品の表現を学習できる。 組立ライン上のあらゆるアイテムが、この基準部品から 著しく離れた埋め込み値を生成した場合、異常検出の フラグが立てられます。これにより、欠陥部品の何千枚もの画像が不要な即時品質保証が実現され、 Ultralytics 管理・展開が可能です。

課題と今後の展望

ワンショット学習は強力である一方、ノイズの影響を受けやすい。参照画像がぼやけていたり、遮られていたり、 代表性に欠ける場合、そのクラスを認識するモデルの能力は著しく低下する。 研究者はモデルの安定性と汎化能力を向上させるため、メタ学習(学習方法を学習する手法)頻繁に採用する。アーキテクチャが進化する中、YOLO26のような新世代モデルはより頑健な特徴抽出器を組み込み、ワンショット推論を高速かつ高精度化。これにより、より適応的で知的なエッジAIデバイスの実現が近づいている。

Ultralytics コミュニティに参加する

AIの未来を共に切り開きましょう。グローバルなイノベーターと繋がり、協力し、成長を。

今すぐ参加