1行定義
One-shot学習とは、新しいクラスやタスクについて、1つだけの例を手がかりに、識別や推論ができるようにする方式のことです。
くわしく
One-shot学習は、新しいクラスを、たった1つの例から見分けられるようにする考え方です。「ショット」は与える例の数を表し、例が0個ならZero-shot、少数ならFew-shotと呼びます。
人は、一度会っただけの人の顔でも、次に会ったときに見分けられることがあります。一方、通常の教師あり学習で、1クラスに1枚の画像だけから分類器を学習しても、ほとんど汎化しません。
類似度を学ぶという発想
そこで、「このクラスは何か」を直接学ぶ代わりに、「2つの入力が同じクラスか」を判定する類似度を学習します。2015年に発表された、シャムネットワーク(Siamese Network)を使う研究では、重みを共有する2つのCNNで2枚の画像をそれぞれベクトルにし、その距離から同じ文字かどうかを判定するように学習しました。新しいクラスを見分けるときは、各クラス1枚ずつの例と入力を比べ、最も似ているクラスを選びます。
2016年のMatching Networksは、少数のラベル付きの例と新しい入力から、直接ラベルを予測するよう学習します。新しいクラスにもファインチューニングなしで対応できます。
さかのぼると2006年には、学習済みのクラスの知識を事前分布として使い、1つか少数の例から新しいクラスを学ぶベイズ的な方法が提案されました。
身近な例
入退室管理などの顔認証では、利用者ごとに少ない枚数の顔写真を登録し、カメラに映った顔と照合します。顔どうしの類似度を測る特徴を、Triplet Lossなどで事前に学習しておくため、利用者を追加しても学習し直さずに済みます。
大規模言語モデルでのOne-shot
GPT-3の論文では、タスクの説明に加えて、入力と答えの例を1組だけプロンプトに示す設定をOne-shotと呼びました。
覚え方
「1枚の見本と見比べて、いちばん似たものを選ぶ」と覚えます。
G検定での出題
出題のされ方
例を1つだけ与える点でのZero-shot・Few-shotとの区別、1枚の登録写真で本人かどうかを確かめる顔認証のような活用場面、2つの入力の類似度を学習する方法との関係が問われます。
混同しやすい用語
| 用語 | 意味 |
|---|---|
| One-shot学習このページの用語 | 新しいクラスやタスクについて、1つだけの例を手がかりに、識別や推論ができるようにする方式 |
| Few-shot学習 | 新しいクラスやタスクについて、数個程度の少ない例だけを手がかりに、識別や推論ができるようにする方式 |
| Zero-shot | 解きたいクラスやタスクの例を1つも見せずに、事前に学習した知識と、クラス名や指示などの説明だけを手がかりに推論させる方式 |
◯×チェック
次の文が正しいか、誤りかを選んでください。
-
シャムネットワークを使うOne-shot学習では、2枚の画像が同じクラスかどうかを判定する類似度を学習し、新しい画像を各クラス1枚ずつの例と比べて、最も似ているクラスに分類する。
答えを見る
答え ◯ 正しい
2015年の研究では、手書き文字の画像で類似度を学習しました。学習時に見ていない文字の種類も、各1枚の例との比較で分類できます。
-
One-shot学習では、新しいクラスを追加するたびに、そのクラスの1枚の例を使ってネットワーク全体を学習し直す必要がある。
答えを見る
答え × 誤り
類似度や照合の仕方を学習したネットワークなら、新しいクラスの例を1枚登録して比べるだけで済みます。学習し直さずに済む点が利点です。
-
シャムネットワークでは、比較する2枚の画像を、重みの異なる2つのCNNでそれぞれベクトルに変換する。
答えを見る
答え × 誤り
2つのCNNは重みを共有します。2枚を同じ変換でベクトルにするので、ベクトルどうしの距離を類似度として比べられます。
この用語の練習問題
出典
- G検定 試験出題範囲(シラバス2024)第1.4版 (技術分野 項目31 転移学習・ファインチューニング)
- Li Fei-Fei, Rob Fergus, Pietro Perona, One-Shot Learning of Object Categories, IEEE Transactions on Pattern Analysis and Machine Intelligence 28(4), 594–611 (2006)
- Gregory Koch, Richard Zemel, Ruslan Salakhutdinov, Siamese Neural Networks for One-shot Image Recognition (2015)
- Oriol Vinyals, Charles Blundell, Timothy Lillicrap, Koray Kavukcuoglu, Daan Wierstra, Matching Networks for One Shot Learning (2016)
- Tom B. Brown et al., Language Models are Few-Shot Learners (2020) (2 Approach(One-Shotの定義))