本文へ移動

G検定(ジェネラリスト検定)

わんしょっと

ワンショット

One-shot

ワンショット(One-shot)とは、新しいクラスについてラベル付きの例をたった1つだけ与えられ、そこから学習してそのクラスを見分けられるようにする課題設定です。少ないデータで新しい概念をすばやく学ぶ研究の中で使われる考え方で、クラス数N・1クラスあたりの例の数kで課題を表すN-way k-shotの枠組みでは、kが1のときにあたります。

詳しい説明

1枚の絵からキリンを覚える

人間は、ほんのわずかな手がかりから新しい概念を身につけます。ヴィニヤルス(Vinyals)らの論文 Matching Networks for One Shot Learning(2016年)は、その例として、子どもが本に載ったキリンの絵を1枚見ただけでキリンという概念を一般化できることを挙げています。これに対して、当時の優れた深層学習のシステムは、1つの概念を学ぶのに数百から数千の例を必要としていました。

この差を出発点として論文が取り上げた課題設定が、ワンショット学習(one-shot learning)です。論文はこれを、ラベル付きの例がただ1つだけある状態からクラスを学習すること、と定義しています。ここでいうラベル付きの例とは、たとえばこの画像はキリンである、というように正解の名前が付いたデータのことです。

論文は、視覚や言語などの分野で進歩があったにもかかわらず、標準的な教師あり深層学習のやり方では、少ないデータから新しい概念をすばやく学ぶことに満足な解決を与えられていない、と問題を整理しています。ワンショットは、この少数の例からの学習という難題を、最も切り詰めた形で表した設定です。

N-way k-shotという物差し

論文の実験は、すべてN-way k-shot学習という共通の課題で組み立てられています。この言い方は2つの数で課題の条件を表します。

  • N(way): 見分ける候補となるクラスの数です。5-wayなら5クラスの中から答えを選びます
  • k(shot): 1つのクラスについて与えられるラベル付きの例の数です

課題の流れは次のとおりです。まず、それまでの学習で一度も扱っていないN個のクラスについて、それぞれk個ずつラベル付きの例が渡されます。次に、それとは別のラベルの付いていない例の束が渡され、それぞれをN個のクラスのどれかに分類します。当てずっぽうで答えた場合の正解率は1/Nです。5-wayなら20%、20-wayなら5%が、でたらめに答えたときの水準になります。

この枠組みで、kが1の場合、つまり各クラスに例が1つずつしか無い場合がワンショットです。kが2以上になり、各クラスに数個程度の例がある設定はフューショット(Few-shot)と呼ばれます。ワンショットは、フューショットの中でも例がいちばん少ない、k=1の特殊なケースに当たります。

学習に使ったクラスとテストのクラスを分ける

ワンショットの評価では、テストに使うクラスを学習から切り離しておくことが要になります。論文は、ワンショットの評価にだけ使うラベルの集合を取り分けておき、特に断りのない限り、学習はそれ以外のラベルで行い、取り分けたラベルについてワンショットの形でテストする、と説明しています。

つまり、モデルはテストのクラスそのものを事前にたくさん見て覚えるのではありません。別のクラスで学習しておき、初めて見るクラスについて1つだけ示された例を手がかりに分類します。この点が、同じクラスの大量のデータで学習してから同じクラスを分類する、通常の教師あり学習との違いです。

数字で見る、例が1つしかないことの難しさ

論文は手書き文字のデータセットOmniglotで、1-shotと5-shot、5-wayと20-wayを組み合わせた4つの条件の分類精度を比べています。そのうち2つの手法の結果を抜き出すと次のとおりです(いずれもファインチューニング無しの条件)。

手法5-way 1-shot5-way 5-shot20-way 1-shot20-way 5-shot
畳み込みシャムネットワーク(Convolutional Siamese Net)96.7%98.4%88.0%96.5%
マッチングネットワーク(Matching Nets、Cosine)98.1%98.9%93.8%98.5%

この表から読み取れることは3つあります。

1つ目は、どちらの手法でも1-shotの精度が5-shotより低いことです。論文自身も、k-shot分類でより多くの例を使えばすべてのモデルの助けになる、と述べています。言い換えると、例が1つしかないワンショットは、例を複数使える設定より難しい課題です。

2つ目は、候補のクラスが多いほど差が広がることです。5-wayでは1-shotと5-shotの差はシャムネットワークで1.7ポイント、マッチングネットワークで0.8ポイントですが、20-wayではそれぞれ8.5ポイント、4.7ポイントに開きます。論文も5-wayは20-wayより易しいと述べています。

3つ目は、ワンショットでは手法の違いが目立ちやすいことです。論文は、シャムネットワークは1クラスあたり5例を使う場合にはマッチングネットワークに対してよく健闘するが、ワンショットでは性能が急速に落ちる、と指摘しています。表でも20-way 5-shotでは両者の差は2.0ポイントですが、20-way 1-shotでは5.8ポイントの差があります。

シラバスでの位置づけ

G検定シラバス2024では、ワンショットは中項目の転移学習・ファインチューニングの対象キーワードとして挙げられています。すでに学習したモデルを、データの少ない新しい課題へどう生かすかという話題の中に置かれている語だと押さえておくと、周辺の用語と結び付けやすくなります。

試験で問われること

G検定

  • ワンショット学習が、ラベル付きの例がただ1つだけある状態から新しいクラスを学習する課題設定であることを、自分の言葉で説明できますか。
  • N-way k-shotのNとkがそれぞれ何を表すか、そしてワンショットがkが1の場合にあたることを確認しておきましょう。あわせて、当てずっぽうの正解率が1/Nになる理由も説明できますか。
  • ワンショットの評価では、学習に使うクラスとテストに使うクラスを分け、初めて見るクラスで分類させることを確認しておきましょう。
  • Omniglotの実験で、1-shotの精度が5-shotより低く、20-wayでその差が広がったことから、例が1つしかない設定が複数の例を使える設定より難しいことを説明できますか。

最終更新日: 2026/09/23