人間の子どもは、キリンの絵を1回見せてもらえば、動物園で本物のキリンを見分けられます。この「たった1つの例から学ぶ」能力をAIで実現しようとするのがOne-shot学習です。この記事では、その考え方と成立条件を、Few-shotとの境界とあわせて解説します。
📖 ひと言でいうと
One-shot(One-shot学習)とは、各クラスにつきラベル付きサンプルが1つしかない状況で、モデルにそのクラスを認識させる学習手法です。少数の例から学べる人間の能力の模倣を目指しています。
例えるなら、初対面の人と名刺交換をする場面です。私たちは相手の顔を1回見ただけで、次に会ったときに見分けられます。これは「顔の見分け方」自体を人生経験で習得済みだからです。One-shot学習も同じで、「見分け方の土台」を事前に築いておくことで、新しいクラスは1例で覚えられるようにします。
🖼 1枚でわかるOne-shot
📘 公式テキストの説明
One-shot学習は、各クラスに対して1つのラベル付きサンプルしか存在しない状況でモデルを学習させる手法である。例えば、ある画像分類タスクで新しいカテゴリの画像が1枚しかない場合、その1枚の画像からモデルがそのカテゴリを正しく認識できるようにすることが求められる。この手法は、少数のサンプルから学習する人間の能力を模倣することを目的としている。One-shot学習は、従来の大量のデータを必要とする学習方法とは異なり、限られたデータから高い性能を引き出すことを目指している。これを実現するためには、事前に大規模なデータセットで学習されたモデルを活用することが一般的である。例えば、自然言語処理の分野では、事前に大量のテキストデータで学習された大規模言語モデルに対して、1つの例示を与えるだけで新しいタスクに適応させることが可能である。
押さえるべきは「①サンプルは各クラス1つだけ、②人間の学習能力の模倣が目的、③実現には事前学習済みモデルの活用が一般的」の3点です。Few-shot(数枚〜数十枚)との違いはサンプル数の一点なので、この数の対応を確実に覚えましょう。
🔍 しっかり理解する
1枚で覚えるための発想——「分類」ではなく「照合」
通常の画像分類は、クラスごとに大量の画像を見せて「このクラスはこういう見た目」と覚えさせます。しかしサンプルが1枚では、通常の方法で学習してもそのクラスの多様な見え方(角度、照明、個体差)をカバーできません。
そこでOne-shot学習では発想を変えます。個別のクラスを覚え込むのではなく、「2つのものが同じクラスかどうかを見分ける力」そのものを、事前に大量のデータで鍛えておくのです。この「似ている・似ていない」の判断力(距離や類似度の物差し)さえあれば、新クラスは手元の1枚と照合するだけで認識できます。
つまりOne-shotの「1枚」が成立する裏には、必ず事前学習という膨大な下準備があります。公式テキストの「事前に大規模なデータセットで学習されたモデルを活用することが一般的」という一文が、この手法の生命線です。
人間の学習能力の模倣という目的
従来のディープラーニングは、人間なら一目で覚えられるものにも数千枚の画像を要求してきました。One-shot学習は「少数のサンプルから学習する人間の能力を模倣する」ことを明確な目的に掲げ、限られたデータから高い性能を引き出すことを目指します。この「人間の能力の模倣」というキーワードは、One-shotの説明文を特定する手がかりとして試験でも有効です。
大規模言語モデルでのOne-shot——例示は1つだけ
自然言語処理の分野では、事前に大量のテキストで学習された大規模言語モデルに対して、プロンプトに例示を1つだけ与えて新しいタスクに適応させる使い方がOne-shotと呼ばれます。
例示の数によって呼び方が変わる、と整理すると見通しがよくなります。
| 呼び方 | 与える例示の数 |
|---|---|
| Zero-shot | 0個(指示のみ) |
| One-shot | 1個 |
| Few-shot | 少数(2個以上の数個〜) |
この3つはLLMの利用文脈でセットで問われやすいので、数との対応を確認しておきましょう(Few-shotの詳しい仕組みと活用場面はFew-shotの記事で解説しています)。
💡 具体例で考える
例1: 顔認証システム。 スマホの顔認証は、登録時に本人の顔データをわずかに取り込むだけで、その後何度でも本人を見分けます。「顔の照合能力」を事前に大量の顔データで学習しておき、新しい人物は少数の登録データとの照合で認識する——One-shot学習の考え方が活きている代表的な応用です。
例2: LLMに翻訳フォーマットを1例だけ見せる。 大規模言語モデルに「英文: Hello → 和文: こんにちは」という例を1つだけ示してから新しい英文を与えると、モデルは形式と意図を汲んで和訳を返します。例示1つでの適応、すなわちOne-shotプロンプティングです。
⚠️ よくある誤解・紛らわしい用語
- Few-shotとの違い — サンプル数が判別点です。1つだけならOne-shot、数枚〜数十枚ならFew-shot。One-shotはFew-shotの極端なケースと位置づけられます。
- Zero-shotとの違い — 例示を1つも与えないのがZero-shot。One-shotは「1つは与える」点で異なります。
- 「1枚だけで何の下準備もなく学習できる」は誤り — 成立の前提は事前学習済みモデルです。ゼロからの1枚学習ではありません。
- 転移学習との関係 — One-shotは転移学習・ファインチューニングの節のキーワードで、事前学習の知識を新クラスに活かすという点で転移学習の発想と地続きです。
📝 試験でのポイント
- 「各クラスに対して1つのラベル付きサンプルしか存在しない状況で学習させる手法」という定義文でOne-shotを選ばせる問題が典型です。
- One-shot/Few-shot/Zero-shotの例示数(1/少数/0)の対応を入れ替えるひっかけに注意しましょう。
- 「少数のサンプルから学習する人間の能力の模倣」という目的の記述はOne-shotを示すサインです。
- 「実現には事前学習済みモデルの活用が一般的」という成立条件の正誤判定にも備えましょう。
📚 まとめ
- One-shot学習は、各クラスにサンプルが1つしかない状況でそのクラスを認識できるようにする手法です。
- 少数の例から学ぶ人間の能力の模倣を目的とし、限られたデータから高い性能を引き出すことを目指します。
- 成立の鍵は事前学習済みモデルで、「見分ける力」を先に築いておくことで1例での認識が可能になります。
- LLMでは例示を1つだけ与えて適応させる使い方を指し、Zero-shot(0個)・Few-shot(少数)と例示数で区別されます。
