Few-shot Learningとは何なのか【Generalizing from a few examples: A survey on few-shot learning】

# これは何

WangらによるFew-shot learningのサーベイ論文 **"[Generalizing from a few examples: A survey on few-shot learning](https://arxiv.org/abs/1904.05046)"** のまとめです。元論文は34ページに渡りますが、本記事では各章の内容を簡潔に説明します (といっても相当長くなってしまいました……) 。読む順番としては、 **概要 → 序論・結論 → 各章の「ディスカッションとまとめ」→ その他細かい箇所** がオススメです。
本文中の図表は全て元論文からの引用であり、文献番号も元論文に則っています。誤字や不適切な用語があれば編集リクエストやコメントにて教えていただければと思います。


# 0. 概要 (Abstract)

機械学習はデータ集約型の応用先では非常に成功を収めている一方、データセットが小さい場合には多くの場合で学習に支障をきたすことが知られている。近年、この問題に対処するためにFew-shot learning (FSL) という手法が提案されている。FSLは、事前知識を用いて、few-shotのサンプルしか含まない新しいタスクに対して、教師あり情報を用いて一般化することができる。本論文では、FSLの正式な定義から始め、FSLをいくつかの関連する機械学習問題と区別する。次に、FSLの核心的な問題は、経験誤差最小化器が信頼できないものであると指摘する。さらに、この問題を処理するために、事前知識がどのように利用できるかに基づいて、FSLの手法を3つの観点から分類する。

- 事前知識を用いて教師データを補強する「データ」
- 事前知識を用いて仮説空間を縮小する「モデル」
- 事前知識を用いて与えられた仮説空間における最良の仮説の探索を変更する「アルゴリズム」

この分類法を用いて、それぞれの長所と短所を検討し議論する。最後に、FSLの問題設定、技術、応用、理論の観点から、今後の研究に役立つ有望な方向性を提案する。


# 1. 序論 (Introduction)

本調査の貢献は以下のように要約される。

- FSLの正式な定義を与える。
- FSLに関連する学習問題を具体的な例を挙げ、FSLとの関連性と相違点を明らかにする。
- FSLの教師あり学習問題の核心的な問題が、機械学習における誤差分解 [17] に基づいて分析されている信頼性の低い経験誤差最小化器であることを指摘する。
- 本研究では、広範な文献レビューを行い、「データ」「モデル」「アルゴリズム」の観点からFSL手法の統一的な分類を行い、各手法の長所と短所を議論する。
- 現在のFSLに対して、問題設定・技術・応用・理論の観点から、FSLの将来の方向性を提案する。


## 1.1 表記と用語 (Notation and Terminology)

学習タスクTを考えたときに、FSLは訓練用データセット $D_{\rm{train}} = \{ (x_i,y_i) \}^I_{i=1}$ とテスト用データセット $D_{\rm{test}}=\{x^{\rm{test}}\}$ から構成されるデータセット $D=\{ D_{\rm{train}}, D_{\rm{test}} \}$ を扱う。
入力がx、 出力がyであり、 $\hat{h}$ を $x$ から $y$ への最適な仮説として考えた際に、p(x,y)をground-truthの同時確率分布とする。
FSLは $D_{\rm{train}}$ で訓練され $D_{\rm{test}}$ でテストを行うことによって $\hat{h}$ を学習する。
$\hat{h}$ を近似するために、FSLモデルは仮説 $h(\cdot;\theta)$ の仮説空間 $\mathcal{H}$ を決定する。
$\theta$ は $h$ で使用される全てのパラメータを表す。
FSLアルゴリズムは、$\mathcal{H}$ を探索して、最適な $h^* \in \mathcal{H}$ をパラメータ化する $\theta$ を求める最適化戦略である。
FSLの性能は、予測 $\hat{y} = h(x;\theta)$ と観測された出力$y$に対して定義された損失関数$l(\hat{y}, y)$で測定される。


# 2. 概観 (Overview)

## 2.1 Few-shot Learningの定義 (Problem Definition)

FSL は機械学習の広い領域の一部であるため、FSL の定義を述べる前に、機械学習が文献でどのように定義されているかを確認すると、文献 [92], [94] では次のように定義されている。
**「あるコンピュータプログラムは、あるクラスのタスクTと性能測定値Pに関して経験Eから学習すると言われており、Pによって測定されたタスクTの性能が Eによって改善される場合には、そのプログラムは経験Eから学習すると言われている」**
T、E、Pの具体的な例をTable 1に示す。

Table 1. 定義に基づく機械学習の問題例 (Examples of Machine Learning Problems Based on the Definition of [92], [94])

| task T | experience E                     | performance P |
|:--:|:--:|:--:|:--:|
| 画像分類 [73] | ラベル付けされた大規模データセット | 分類精度        |
| 囲碁 [120] | 3,000万手の記録                    | 勝率            |

上述の例のように、典型的な機械学習の応用例では、教師情報を持つ多くのサンプルを必要とする。しかし、冒頭で述べたように、これは困難であるか、あるいは不可能であるかもしれない。FSLは機械学習の特殊なケースであり、入力 $x_i$ とそれに対応する出力 $y_i$ からなる訓練集合 $D_{\rm{train}}$ で提供される限られた教師あり情報を与えられた場合に、良好な学習性能を得ることを目的としている [15] 。以上より、本論文ではFSLを次のように定義する。
**「Few-shot Learning (FSL) は、 E、T、Pで指定される機械学習問題の一種で、Eは対象Tの教師情報を持つ限られた数のサンプルのみを含む」**
既存のFSL問題は主に教師あり学習問題である。具体的には、Few-shot分類は、各クラスのラベル付けされたfew-shotのサンプルのみを与えられた分類器を学習する。応用例としては、画像分類 [138] 、短文からの感情分類 [157] 、物体認識 [35] などがある。形式的には、few-shot分類は、各入力 $x_i$ に対してラベル $y_i$ を予測する分類器 $h$ を学習する。

FSLでは通常は N-way-K-shot分類 [37, 138] を考える。ここで、$D_{\rm{train}}$ はそれぞれ K個のサンプルを持つN個のクラスから I=KNサンプルを含む。few-shot回帰 [37, 156] は、関数からサンプリングされたfew-shotの入出力のサンプル対のみを与えられた回帰関数 $h$ を推定する。出力 $y_i$ は従属変数 $y$ の観測値であり、$x_i$ は独立変数 $x$ の観測値を記録した入力である。 また、FSLの別の例としてfew-shot強化学習 [3, 33] がある。FSLの3つの例をTable 2に示す。

Table 2. 本論文の定義に基づくFSLの例 (Three FSL Examples Based on the Definition of this paper)

|    task T    |           experience E (教師あり情報)            |    experience E (事前情報)     |         performance P          |
|:--:|:--:|:--:|:--:|
|    文字生成 [76]   |           新しい文字のfew-shotのサンプル           | 部分と関係性の事前学習済みの知識 | 視覚的チューリングテストの通過率 |
| 薬物毒性の発見 [4] |             新分子の限定された分析結果             |        類似分子の分析結果        |             分類精度             |
|    画像分類 [70]   | ラベル付けされたターゲットクラスのfew-shotサンプル | 他クラスの画像 or 学習済みモデル |             分類精度             |

Table 1と比較して、Table 2では、**事前知識**と書かれた欄が追加されている。Eには、Tに直接関連する教師あり情報を持ついくつかのサンプルしか含まれていないので、一般的な教師あり学習アプローチがFSL問題でしばしば失敗するのは当然のことである。したがって、FSL法は、Eの利用可能な教師情報を、「学習者が例を見る前に未知の関数について持っている情報」である事前知識と組み合わせることで、目標Tの学習を可能にする [86] 。

FSLの利点は以下のようにまとめられる。

- 人間のように学習するためのテストベッドとしての役割
- レアケースのための学習
- データ収集の労力と計算コストの削減

**※** Eに教師あり情報を持つ例が1つしかない場合、FSLはOne-shot learningと呼ばれる [14, 35, 138] 。Eが対象Tに対して教師あり情報を持つサンプルを含まない場合、 FSLはZero-shot learning問題 (ZSL) になる [78] 。対象クラスには教師あり情報を持つサンプルが含まれていないため、ZSLでは、Eの他のモダリティ (属性、WordNet、稀な物体認識タスクで使用される単語の埋め込みなど) からの情報を含ませ、教師あり情報をある程度転送して学習を可能にすることを要求する。


## 2.2 関連する学習手法 (Relevant Learning Problems)

### 2.2.1 弱教師あり学習 (Weakly supervised learning)

弱教師あり学習 [163] は弱い教師情報 (不完全、不正確、不正確、ノイズのある教師データなど) しか含まない経験Eから学習する。FSLに最も関連する問題は、少量のサンプルしか教師情報を持たない不完全な教師あり弱教師あり学習 (weakly supervised learning with incomplete supervision) である。神託や人間の介入が活用されるかどうかによって、これはさらに以下のように分類される。

- 半教師あり学習 (Semi-supervised learning) [165] 
  半教師あり学習 [165] では、few-shotのラベル付きサンプルと (通常は多数の) ラベルなしサンプルから学習する。応用例としては、テキストやウェブページの分類がある。正・非ラベル学習 [81] は、半教師あり学習の特殊なケースで、正・非ラベルのサンプルのみが与えられる。

- アクティブラーニング (Active learning) [117] 
  アクティブラーニング [117] では、情報量の多いラベル付けされていないデータを選択して神託に問い合わせて出力する。これは通常、歩行者検出のようにラベル付けにコストがかかる応用先で用いられる。

不完全な教師あり弱教師あり学習には分類と回帰のみが含まれるが、FSLには強化学習問題も含まれる。さらに、不完全な教師つき弱教師あり学習では、主にラベル付けされていないデータを追加情報として用いる一方、FSLは、事前に学習されたモデルや、他のドメインやモダリティからの教師データなど、様々な種類の事前知識を利用するため、ラベル付けされていないデータを利用することに限定されるものではない。したがって、FSLは、事前知識がラベルの付いていないデータである場合かつタスクが分類や回帰の場合にのみ、弱教師あり学習問題となる。


### 2.2.2 不均衡データ学習 (Imbalanced learning)

不均衡データ学習 [54] は、$y$ の分布が歪んだ状態の経験Eから学習する。これは、詐欺検出や災害予測アプリケーションのように、ある $y$ の値がめったに取られない場合に起こる。不均衡データ学習は、起こりうるすべての $y$ の中から選択して訓練とテストを行う。対照的に、FSLは、いくつかのサンプルを用いて $y$ のための訓練とテストを行い、他の $y$ の値を学習のための事前知識としている可能性がある。


### 2.2.3 転移学習 (Transfer learning)

転移学習 [101] は、学習データが豊富なソースドメイン/タスクから、学習データが少ないターゲットドメイン/タスクへ知識の転送を行う。ドメイン適応 [11] は転移学習の一種であり、ソースとターゲットのタスクは同じであるがドメインが異なるものである。例えばセンチメント分析では、ソースドメインデータには映画に関する顧客コメントが含まれ、ターゲットドメインデータには日用品に関する顧客コメントが含まれる。FSL [7, 82, 85] では、事前知識をソースタスクからfew-shotタスクに伝達する転移学習法が一般的に用いられている。


### 2.2.4 メタ学習 (Meta-learning)

メタ学習 [59] は、提供されたデータと、タスク間でメタ学習者が抽出したメタ知識を用いることによって、新しいタスクTのパフォーマンスPを改善する。具体的には、メタ学習者はタスクを跨いだ一般的な情報 (メタ知識) を徐々に学習し、学習者はタスク固有の情報を用いることによって新しいタスクTに対してメタ学習者を一般化する。FSL問題にはメタ学習法を用いることができる。第4章と第5章で示すように、メタ学習者はそれぞれの特定のFSLタスクを導くための事前知識として扱われる。


## 2.3 中心的な課題 (Core Isuue)

どのような機械学習問題においても、通常は予測誤差があり、完全な予測を得ることはできない。このセクションでは、教師あり機械学習における誤差分解に基づくFSLの核心的な問題を説明する [17, 18] 。この分析は、分類と回帰を含むFSL教師あり学習に適用され、FSL強化学習を理解するための洞察を提供することができる。


### 2.3.1 経験誤差最小化 (Empirical risk minimization)
ある仮説 $h$ が与えられたときに、$p(x,y)$ に関して測定された損失である期待誤差 $R$  を最小化したい。具体的には以下の式で示される。

$R(h)=\int l(h(x), y) d p(x, y)=\mathbb{E} [\ell(h(x), y)] $

$p(x,y)$ は未知なので、$R_I(h)$ が通常 $R(h)$ の代わりに使用される。

$R_{I}(h)=\frac{1}{I} \sum_{i=1}^{I} l\left(h\left(x_{i}\right), y_{i}\right)$

図示のために、

- $\hat{h}=\rm{arg min_h}R(h)$ を期待誤差を最小化する関数
- $h^*=\rm{arg min}_{h\in\mathcal{H}}R(h)$ を $\mathcal{H}$ 内の期待誤差 $R(h)$ を最小化する関数
- $h_I=\rm{arg min_{h\in\mathcal{H}}}R_I(h)$ を $\mathcal{H}$ 内の 経験誤差 $R_I(h)$ を最小化する関数

としたとき、$\hat{h}$ は未知であるため、$h\in\mathcal{H}$ で近似する必要がある。
$h^*$ は $\mathcal{H}$ 内での $\hat{h}$ の最良の近似である一方、$h_I$は経験誤差最小化によって得られた $\mathcal{H}$ 内の最良の仮説である。

簡単のため、$\hat{h}$、$h^*$、$h_I$ を一意であるとする。全ての誤差の合計は次のように分解できる。

```math
\mathbb{E}\left [R\left(h_{I}\right)-R(\hat{h})\right] =\underbrace{\mathbb{E}\left [R\left(h^{*}\right)-R(\hat{h})\right] }_{E_{\mathrm{app}}(\mathcal{H})}+\underbrace{\mathbb{E}\left [R\left(h_{I}\right)-R\left(h^{*}\right)\right] }_{E_{\mathrm{est}}(\mathcal{H}, I)}
```

ここで、期待値は $D_{\rm{train}}$ のランダム選択に関するものである。近似誤差 $E_{\mathrm{app}}(\mathcal{H})$ は、$\mathcal{H}$ 内の関数が最適な仮説 $\hat{h}$ にどれだけ近いかを測定し、推定誤差 $E_{\mathrm{est}}(\mathcal{H},I)$ は、$\mathcal{H}$ 内の期待誤差 $R(h)$ の代わりに経験誤差 $R_I(h)$ を最小化する効果を測定する。このように、合計の誤差は、$\mathcal{H}$ (仮説空間) と $I$ ($D_{\rm{train}}$ のサンプル数) の影響を受ける。つまり、総誤差を低減する学習は

1. $D_{\rm{train}}$を提供する「データ」
2. $\mathcal{H}$ を決定する「モデル」
3. $D_{\rm{train}}$ に適合する最適な $h_I \in \mathcal{H}_{a}$ を探索する「アルゴリズム」

の観点から考えることができる。


### 2.3.2 信頼性の低い経験誤差最小化 (Unreliable Empirical Risk Minimizer)

一般的に、$E_{\mathrm{est}}(\mathcal{H}, I)$ は、より多くのサンプルを持つことで削減することができる [17, 18, 41] 。したがって、教師情報を含む十分な学習データがある場合 (すなわち $I$ が大きい場合) 、経験誤差最小化器 $h_I$ は、$\mathcal{H}$ 内の $h$ のための最良の $R ( h^∗ )$ への近似 $R ( h_I )$ を提供することができる。しかし、FSLでは、利用可能なサンプル数 $I$ が少ない。その場合、経験誤差 $R_I (h)$ は、期待誤差 $R (h)$ の良い近似値とは程遠いものとなり、結果として経験誤差最小化器 $h_I$ はオーバーフィットしてしまう。これがFSLの教師あり学習の核心的な問題であり、経験誤差最小化器 $h_I$ はもはや信頼できない。十分な訓練サンプルと少ない訓練サンプルでの学習の比較をFig. 1に示す。
![csur5303-63-f01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363619/e2457326-38fa-1f87-5cc7-cfab8b4348bb.jpeg)
Fig. 1.  十分な学習サンプル数と少ない学習サンプル数での学習の比較 (Comparison of learning with sufficient and few training samples.)


## 2.4 分類学 (Taxonomy)

FSLの教師あり学習では、経験誤差最小化器 $h_I$ の信頼性が低いという問題を解決するために、事前知識を利用する必要がある。どのような側面を事前知識を用いて強化するかによって、既存のFSLの研究は以下のような視点に分類される (Fig. 2) 。
![csur5303-63-f02.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363619/49c5afb9-8cb1-ab5d-61ca-e8fed5761859.jpeg)
Fig. 2. FSLがfew-shot問題を解決する方法についての異なる視点 (Different perspectives on how FSL methods solve the few-shot problem.)

- データ (Data)
  この手法では、事前知識を用いて $D_{\rm{train}}$ を拡張し、サンプル数を $I$ から $\tilde{I}$ に増加させている (ここでは $\tilde{I}\gg I$) 。そして、標準的な機械学習モデルとアルゴリズムを、拡張されたデータ上で使用することができ、より正確な経験誤差最小化器 $h_{\tilde{I}}$ を得ることができる (Fig. 2 (a)) 。

- モデル (Model)
  この手法では、事前知識を利用して $\mathcal{H}$ の複雑さを制約しているため、結果的に仮説空間 $\mathcal{\tilde{H}}$ が非常に小さくなる。Fig. 2 (b) に示すように、グレーの部分は、事前知識では最適な $h^∗$ を含む可能性が低いことがわかっているため、最適化のためには考慮されない。このように小さい $\mathcal{\tilde{H}}$ の場合、信頼性の高い $h_I$ を学習するには $D_{\rm{train}}$ で十分である [43, 86, 99] 。

- アルゴリズム (Algorithm)
  この手法では、事前知識を用いて、 $\mathcal{H}$ の中の最適な仮説 $h^∗$ をパラメータ化した $\theta$ を探索する。事前知識は、良好な初期化 (Fig.2 (c) の灰色の三角形) を提供したり、検索ステップをガイドしたり (Fig. 2(b) の灰色の点線) することで、検索戦略を変更する。後者の場合、結果として得られる探索ステップは、事前知識と経験誤差最小化の両方の影響を受ける。

以上から、既存の研究はFig. 3 のように統一的に分類することができる。以降では、各分類について詳述する。

![csur5303-63-f03.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363619/f5757954-1b65-8e57-e2da-39832226d6da.jpeg)
Fig. 3. 各手法の着眼点に基づくFSL手法の分類 (A taxonomy of FSL methods based on the focus of each method.)!!


# 3. データ (Data)

このセクションのFSL法はEの教師あり情報が濃縮されるように、データ $D$ を拡張するために事前知識を使用する。拡張されたサンプルセットでは、データは信頼性の高い $h_I$ を得るのに十分である (Fig. 4) 。
![csur5303-63-f04.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363619/39200f19-8955-cf78-6fe7-c42c168e9ef6.jpeg)
Fig. 4. データ拡張によるFSL問題の解決 (Solving the FSL problem by data augmentation.)

手作業で作成されたルールによるデータ拡張は、通常、FSL手法の前処理として使用される。これらのルールは、キャプチャするモデルに異なる種類の不変性を導入することができる。例えば、画像上では並進や反転を使用することができる。しかし、これらの規則の設計は、ドメイン知識に大きく依存し、コストが大きい。さらに、拡張規則はデータセットに固有のものである可能性があり、他のデータセットに適用することは困難である。したがって、手動のデータ拡張では、FSL問題を完全に解決することはできない [12, 34, 72, 76, 114, 119] 。これらの手作業で作成されたルールの他に、以下のより高度なデータ拡張方法をレビューする。どのようなサンプルを変換して $D$ に追加するかに応じて、Table 3に示すように、これらの方法を分類する。

Table 3. データの観点に着目したFSL手法の特徴 (Characteristics for FSL Methods Focusing on the Data Perspective)

| category                                                     | input $(x,y)$                                            | transformer $t$                                 | output $(\tilde{x}, \tilde{y})$       |
|:--:|:--:|:--:|:--:|
| $D_{\rm{train}}$ からのサンプルの変換                        | オリジナルの $(x,y)$                                     | $x_i$ で学習された変換関数                      | $(t(x_i),y_i)$                        |
| ラベル無しまたは弱ラベル付けされたデータセットからのサンプルの変換 | ラベル無しまたは弱ラベル付けされた $(\bar{x},-)$         | $D_{\rm{train}}$で訓練された予測器              | $(\bar{x},t(\bar{x}))$                |
| 類似データセットからのサンプルの変換                         | 類似データセットからのサンプル $\{\hat{x}_j,\hat{y}_j\}$ | $\{\hat{x}_j,\hat{y}_j\}$を結合するアグリゲータ | $(t(\{\hat{x}_j\}),t(\{\hat{y}_j\}))$ |

$D_{\rm{train}}$ を拡張するために、transformer $t(･)$ は入力 $(x,y)$ を受け取り、拡張されたサンプル $(\tilde{x}, \tilde{y})$ を返す。


## 3.1 D_train からのサンプルの変換 (Transforming Samples from D_train

この戦略は、各 $(x_i,y_i) \in{D_{\rm{train}}}$ を様々な複数のサンプルに変換することにより $D_{\rm{train}}$ を拡張する。この変換手順は追加のサンプルを生成するための事前知識として経験Eに含まれている。


## 3.2 ラベル無しまたは弱ラベル付けされたデータセットからのサンプルの変換 (Transforming Samples from a Weakly Labeled or Unlabeled Data Set)

この戦略は、弱くラベル付けされている、あるいはラベル付けされていない大規模なデータセットの中から、目的のラベルを持つサンプルを選択することで $D_{\rm{train}}$ を拡張する。このようなデータセットは、ラベリングのために人手を必要としないため、データセットの収集が容易であるが、$D_{\rm{train}}$ の拡張の対象となる目標ラベルを持つサンプルをどのように選択するかが大きな課題である。


## 3.3 類似データセットからのサンプルの変換 (Transforming Samples from Similar Data Sets)

この戦略は、類似しているがより大きなデータセットからの入出力ペアを集約して適応させることで $D_{\rm{train}}$ を拡張する。集約の重みは通常、サンプル間の類似性の尺度に基づいている。


## 3.4 ディスカッションとまとめ (Discussion and Summary)

以上のデータを拡張する戦略のうちどれを用いるかはタスクに依存する。目的のタスク (またはクラス) に対して、多数の弱い教師ありサンプルやラベル付けされていないサンプルが存在する場合、アノテーションされたデータを収集するコストが高いためFSLが好まれる。この場合は弱いラベル付けされたデータセットやラベル付けされていないデータセットからサンプルを変換することで拡張を行うことができる。また、大規模なラベル付けされていないデータセットが収集しにくいが、few-shotクラスに類似クラスがある場合、これらの類似クラスからのサンプルを変換することができる。生のサンプルではなく学習済みの変換器しか利用できない場合は、$D_{\rm{train}}$ から元のサンプルを変換することで拡張を行うことができる。
一般的に、FSL問題を解くには $D_{\rm{train}}$ を拡張することが分かりやすい。つまり、対象タスクの事前情報を利用してデータを拡張する手法である。しかし、データ拡張によるFSL問題を解決することの弱点は、拡張方針が各データセットに対して独特に設定されていることが多く、他のデータセット (特に他のドメインのデータセット) では容易に利用できないことである。


# 4. モデル (Model)

真の仮説 $\hat{h}$ を近似するために、モデルは最適な $h^* \in \mathcal{H}$ と $\hat{h}$ の間の距離が小さくなるように、仮説 $h$ 族を含む仮説空間 $\mathcal{H}$ を決定しなければならない。サンプル数が限られたfew-shot $D_{\rm{train}}$ を考えると、単純なモデル (線形分類器など) だけで小さな $\mathcal{H}$ を選択することが可能である [92, 94] 。しかし、実世界の問題は一般的に複雑であり、小さな $\mathcal{H}$ からの仮説 $h$ ではうまく表現できない。したがって、FSLでは十分に大きな $\mathcal{H}$ が好まれる。本章のFSLの手法は、Eの事前知識を介して、$\mathcal{H}$ をより小さな仮説空間 $\tilde{\mathcal{H}}$ に制約することで学習を管理する (Fig. 2(b)) 。これにより、経験誤差最小化器の信頼性が高まり、オーバーフィッティングのリスクが低減される。どのような事前知識を用いるかという点で、このカテゴリーに属する手法はさらに4つのタイプに分類される (Table 4) 。 

Table 4. モデルの観点に着目したFSL手法の特徴 (Characteristics for FSL Methods Focusing on the Model Perspective)

| strategy               | prior knowledge                        | how to constrain $\mathcal{H}$                               |
|:--:|:--:|:--:|:--:|
| マルチタスク学習       | 他タスクのデータ $D$                   | パラメータの共有/固定                                        |
| 埋め込み学習           | 他タスクから/と共に学習した埋め込み    | 似たサンプルと似ていないサンプルを簡単に識別できる、より小さな埋め込み空間へのサンプルを投影する |
| 外部メモリを用いた学習 | 他タスクのメモリとの相互作用を学習した | モリに格納されたキーと値のペアを使用してサンプルを絞り込む   |
| 生成的モデリング       | 他タスクから学習した事前モデル         | 分布の形態を制限する    |


## 4.1 マルチタスク学習 (Multitask Learning)

複数の関連タスクが存在する場合、マルチタスク学習 [23, 161] は、タスクの一般的な情報とタスク固有の情報の両方を利用して、これらのタスクを同時に学習する。したがって、これらの学習は自然にFSLに使用することができる。ここでは、$C$ 個の関連するタスク $T_1,\cdots, T_C$ が与えられ、そのうちのいくつかのタスクはサンプル数が非常に少ないが、いくつかのタスクはサンプル数が多いとする。各タスク $T_c$ はデータセット $D_c=\{ D^c_\rm{train}, D^c_\rm{test} \}$ を持つ。ここで、$D^c_{train}$ は学習集合、$D^c_{test}$ はテスト集合である。これらの $C$ タスクのうち、シfew-shotタスクをターゲットタスク、それ以外をソースタスクとする。多タスク学習は、$D^c_{train}$ から学習して、$T_c$ ごとに $\theta_c$ を求める。これらのタスクは共同学習されるため、タスク $T_c$ で学習した $h_c$ のパラメータ $\theta_c$ は他のタスクによって制約される。タスクのパラメータがどのように制約されるかに応じて、パラメータの共有とパラメータの結合 [45] に細分化される。


### 4.1.1 パラメータの共有 (Parameter Sharing)

この戦略では、いくつかのパラメータをタスク間で直接共有する (Fig. 5) 。例えば文献 [160] では、2つのタスクネットワークが一般的な情報のために最初の数層を共有し、異なる出力を扱うために異なる最終層を学習する。

![csur5303-63-f05.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363619/edabd390-2fe6-1a36-cb86-3c7be142bcad.jpeg)
Fig. 5. パラメータ共有によるFSL問題の解決 (Solving the FSL problem by multitask learning with parameter sharing.)


### 4.1.2 パラメータの結合 (Parameter Tying)

この戦略は、異なるタスクのパラメータ ( $\theta_c$ 's) が類似していることを奨励する (Fig. 6) [45] 。一般的なアプローチは、$\theta_c$ 's を正則化することである。

![csur5303-63-f06.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363619/4120d9ab-6595-5dc7-4798-1d66217061c3.jpeg)
Fig. 6. パラメータの結合によるFSL問題の解決 (Solving the FSL problem by multitask learning with parameter tying.)


## 4.2 埋め込み学習 (Embedding Learning)

埋め込み学習 [63, 122] では、各サンプル $x_{i} \in \mathcal{X} \subseteq \mathbb{R}^{d}$ を低次元 $z_{i} \in \mathcal{Z} \subseteq \mathbb{R}^{m}$ に埋め込むことで、類似のサンプルは近接しているが、非類似のサンプルはより容易に区別できるようにする。この低次元 $\mathcal{Z}$ では、より小さな仮説空間 $\mathcal{\tilde{H}}$ を構築することができ、結果としてより少ない学習サンプル数で済む。埋め込み関数は主に事前知識から学習されるが、$D_{\rm{train}}$ からのタスク固有の情報を利用することもできる。

埋め込み学習には以下のような主要な要素がある。

- テストサンプル $x_\rm{test} \in D_{\rm{test}}$ を $\mathcal{Z}$ に埋め込む関数 $f$ 
- 訓練サンプル $x_i \in D_{\rm{train}}$ を $\mathcal{Z}$ に埋め込む関数 $g$
- $\mathcal{Z}$ における $f ( x_\rm{test} )$ と $g (x_i)$ の類似度を測定する類似度関数 $s(\cdot,\cdot)$

テストサンプル $x_{\rm{test}}$ は、$s$ に応じて $\mathcal{Z}$ の $f(x_ {test})$ と最も類似度が高い埋め込み $g(x_i)$ を持つ $x_i$ のクラスに割り当てられる。 $x_i$ と $x_{\rm{test}}$ に共通の埋め込み関数を使用することもできるが、2 つの別々の埋め込み関数を使用することで、より良い精度が得られる可能性がある [14, 138] 。
埋め込み関数 $f$ と $g$ のパラメータがタスク間で変化するかどうかによって以下のように分類される。

- タスク固有の埋め込みモデル
- タスク不変の埋め込みモデル
- タスク固有の情報とタスク不変の情報の両方をコード化したハイブリッド埋め込みモデル


### 4.2.1 タスク固有の埋め込みモデル (Task-specific Embedding Model)

タスク固有の埋め込み法は、そのタスクの情報のみを利用して、各タスクに合わせた埋め込み関数を学習する。例えば、タスク $T_c$ のfew-shotデータ $D^c_{train}$ を用いて、文献 [130] では、$D^c_{train}$ のサンプル間のすべてのペアワイズ順位をサンプルペアとして列挙している。このように学習サンプル数を増やすことで、タスク固有の情報のみを利用しても埋め込み関数を学習することができる。


### 4.2.2 タスク不変の埋め込みモデル (Task-invariant Embedding Model)

タスク不変埋め込み法は、様々な出力を持つ十分なサンプルを含む大規模データセットから一般的な埋め込み関数を学習し、これを再訓練なしで新しいfew-shot に直接使用する (Fig. 7) 。最初のFSL埋め込みモデル [36] はカーネルを用いてサンプルを埋め込む。最近では、より複雑な埋め込みが、畳み込み型siameseネット [20] によって学習されている [70, 150] 。

![csur5303-63-f07.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363619/42075e18-b5b5-6487-4c02-aaf94de55e64.jpeg)
Fig. 7. タスク不変の埋め込みモデルによるFSL問題の解決 (Solving the FSL problem by task-invariant embedding model.)

タスク不変埋め込みでは、few-shotの $D_{\rm{train}}$ を用いては埋め込みモデルのパラメー タを更新しないが、このカテゴリの多くの手法 [121, 126, 138] は、埋め込みモデルを訓練しながらfew-shotのシナリオをシミュレートしている。それぞれ $N$ 個のクラスを持つ訓練集合 $\{D_c\}$ を仮定する。各 $D_c$ において、その $N$ 個のクラスのうち $U$ 個だけのサンプルが学習に使用される。埋め込みモデルは、残りの $N - U$ クラスの性能を最大化することで最適化される。このようにして学習されたモデルは、few-shotタスクに対して良好な汎用性を持つようになる。


### 4.2.3 混合埋め込みモデル (Hybrid Embedding Model)

タスク不変埋め込み法は低計算コストで新しいタスクに適用できるが、現在のタスクの特定の知識を活用することはできない。タスクの特殊性が理由で$D_{\rm{train}}$の例が少ない場合 (稀なケースの学習など) 、タスク不変埋め込み関数を適用するだけでは適切ではない場合がある。この問題を軽減するために、混合埋め込みモデルでは、事前知識から学習した汎用的なタスク不変埋め込みモデルを、$D_{\rm{train}}$ に含まれるタスク固有の情報に適応させる。これは、$D_{\rm{train}}$ から抽出した情報を入力とし、$f(\cdot,\cdot)$のパラメータとなる埋め込み関数を返す関数を学習することで行われる (Fig. 8) 。
![csur5303-63-f08.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363619/6ba83580-7c00-3f8d-c0c7-f763d48c34aa.jpeg)
Fig. 8. 混合埋め込みモデルによるFSL問題の解決 (Solving the FSL problem by hybrid embedding model.)


## 4.3 外部メモリを用いた学習 (Learning with External Memory)

外部メモリを用いた学習 [49, 89, 124, 145] は、$D_{\rm{train}}$ から知識を抽出し、外部メモリに格納する (Fig. 9) 。各新しいサンプル $x_\rm{test}$ は、メモリから抽出された内容の加重平均で表現される。これにより、$x_\rm{test}$ はメモリ内のコンテンツで表現されることが制限され、$\mathcal{H}$ のサイズが実質的に小さくなる。
![csur5303-63-f09.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363619/bbd0c092-7469-f236-7677-7f21ed4ab4d9.jpeg)
Fig. 9. 外部メモリを用いた学習によるFSL問題の解決  この図では表現学習に埋め込み関数 $f$ を用い、メモリが $f(x_i)$ をキーとして出力 $y_i$ をラベルとした場合の簡略化した例 (Solving the FSL problem by learning with external memory. This figure illustrates a simplified example where the embedding function $f$ is used for representation learning and the memory takes $f(x_i)$ as the key and output $y_i$ as the label.

FSLでは通常、key-valueメモリ [89] が使用される。このメモリは $M \in \mathbb{R}^{b\times m}$ であり、各 $b$ 個のメモリスロット $M(i) \in \mathbb{R}^m$ がkey-valueペア $M(i) = (M_{key}(i), M_{value}(i))$ で構成されているとする。テストサンプル $x_\rm{test}$ は、最初に埋め込み関数 $f$ によって埋め込まれる。しかし、埋め込み法とは異なり、$f(x_\rm{test})$ は $x_\rm{test}$ の表現として直接使用されることはない。代わりに、$f(x_\rm{test})$ と各key $M_{key}(i)$ との間の類似度 $s(f(x_\rm{test}), M_{key}(i))$ に基づいて、最も類似したメモリスロットを検索するためにのみ使用される。最も類似したメモリスロットの値 ($M_{value}(i)$'s ) が抽出され、結合されて $x_\rm{test}$ の表現を形成する。これは、予測を行うための単純な分類器 (ソフトマックス関数など) への入力として使用される。$M$ の操作にはコストがかかるため、通常、$M$ のサイズは小さくなる。$M$ が満杯でない場合、空いているメモリスロットに新しいサンプルを書き込むことができる。$M$ が満杯になったら、どのメモリスロットを交換するかを決定する必要がある。通常、$f$ は事前に学習されたCNN又はLSTM等の埋め込み関数である。各 $x_\rm{test}$ は、メモリから抽出された値の加重平均として表現されるため、メモリ内のkeyとvalueのペアの質が重要である。メモリの機能性に応じて、このカテゴリのFSL手法は2つのタイプに細分化される。


### 4.3.1 表現の精錬 (Refining Representations)

この方法では、記憶されたkeyとvalueのペアが $x_\rm{test}$ をより正確に表現できるように、$D_{\rm{train}}$ を注意深くメモリに入れる。メモリ拡張ニューラルネットワーク (MANN)  [114] は、埋め込み $f$ をメタ学習し、同じクラスのサンプルを同じ値に写像する。次に、同じクラスのサンプルは、メモリ内のクラス表現を一緒に改良する。


### 4.3.2 パラメータの精錬 (Refining Parameters)

Meta Networks (MetaNet) [96] は、複数のデータセットからメタ学習した "遅い"重みと、$D_{\rm{train}}$ のタスク固有の埋め込みである "速い"重みを用いて、分類モデルをパラメータ化している。文献 [97] に示されているように、パラメータ全体ではなく各ニューロンを変更する学習を行うことで、MetaNetの計算コストを削減することができる。


## 4.4 生成的モデリング (Generative Modeling)

生成的モデリング法は、事前知識を用いて観測された $x_i$ 's から確率分布 $p(x)$ を推定する (Fig. 10)。 $p(x)$ の推定は通常、$p(x|y)$ と $p(y)$ の推定を含む。
![csur5303-63-f10.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363619/54f924d7-1fcb-e2db-058c-b31b0ee04209.jpeg)
Fig. 10. 生成的モデリングによるFSL問題の解決 (Solving the FSL problem by generative modeling.)


### 4.4.1 分解可能な部品 (Decomposable Components)

教師あり情報を持つサンプルはFSL問題では少ないが、他のタスクからのサンプルといくつかのより小さな分解可能な成分を共有しているかもしれない。例えば、提供された数枚の顔写真だけを使って人物を認識する場合を考えてみよう。このように、類似した顔を見つけるのは難しいかもしれないが、目、鼻、口が似ている写真は簡単に見つけることができる。サンプル数が多ければ、これらの分解可能な成分のモデルを簡単に学習することができる。あとは、これらの分解可能な成分の正しい組み合わせを見つけ、その組み合わせがどのターゲットクラスに属するかを決定するだけである。分解可能な成分は人間が選択するので、この戦略はより解釈しやすい。


### 4.4.2 グループごとに共有されている優先度 (Groupwise Shared Prior)

多くの場合、似たようなタスクは似たような事前確率を持っており、これをFSLで利用することができる。例えば、"オレンジ・キャット"、"ヒョウ"、"ベンガルトラ "の3つのクラス分類を考えてみよう。これら3つの種は似ているが、ベンガルトラは絶滅危惧種だが、オレンジキャットとヒョウは豊富にいる。したがって、"オレンジ色の猫 "と "ヒョウ "から事前確率を学習し、これをfew-shotクラスの "ベンガルトラ "の事前確率として用いることができる。データセットの集合 $\{D_c\}$ は教師なし学習によって階層にグループ化される。各グループのデータセットは、クラスの事前確率を学習する。新しいfew-shotのクラスについては、まず、この新しいクラスが属するグループを見つけ、グループごとに共有されたクラス先行確率から導かれたクラス先行確率でモデル化する。


### 4.4.3 推論ネットワークのパラメータ (Parameters of Inference Networks)

最良の $\theta$ を見つけるために、事後確率を最大化する必要がある。

$p(z \mid x; \theta, \gamma)=\frac{p(x,z; \theta, \gamma)}{p(x ; \gamma)}=\frac{p(x \mid z ; \theta) p(z ; \gamma)}{\int p(x \mid z ; \theta) p(z ; \gamma) d z}$

分母の積分のため、式 (2) を解くのは困難である。 $p(z\mid{x}; \theta, \gamma)$ を近似するためには、データから学習された変分分布 $p(z; \sigma)$ が頻繁に用いられる。最近では、この $p(z; \sigma)$ を推論ネットワークを用いた償却変分推論で近似することが行われている[158]。$z$ はもはや意味を持たないが、これらの深層モデルで学習された強力な表現は、より良い性能につながる可能性がある。一度学習された推論ネットワークは、新しいタスクに直接適用することができ、より効率的で人間の知識を必要としない。推論ネットワークは多数のパラメータを持つため、通常、何らかの補助的な大規模データセットを用いて学習される。


## 4.5 ディスカッションとまとめ (Discussion and Summary)

似たようなタスクや補助タスクが存在する場合には、多タスク学習を用いてfew-shotのタスクのHを制約することができる。しかし、すべてのタスクを一緒に学習する必要があることに注意が必要である。そのため、新たなfew-shotタスクが現れたときには、マルチタスクモデル全体を再度学習しなければならず、コストがかかり、時間がかかる。さらに、$D$ と $D_c$ のサイズは比較可能なものであってはならず、そうでなければ、few-shotタスクが多くのサンプルを持つタスクに圧倒されてしまう可能性がある。様々なクラスの十分なサンプルを含む大規模なデータセットが存在する場合、埋め込み学習法を使用することができる。これらの方法は、異なるクラスからのサンプルが十分に分離された良い埋め込み空間にサンプルをマッピングするので、より小さな $\mathcal{\tilde{H}}$ が必要とされる。
しかし、few-shotのタスクが他のタスクと密接に関連していない場合には、うまく機能しないことがある。さらに、タスクの不変情報とタスク固有の情報をどのように混在させるかについては、より多くの検討が必要である。メモリネットワークが利用可能な場合には、メモリの上に単純なモデル (例えば分類器) を訓練することで、簡単にFSLに利用することができる。この戦略の弱点は、メモリサイズに応じて増加する追加のスペースと計算コストが発生することである。そのため、現在の外部メモリのサイズには限界がある。
最後に、FSL以外に生成や再構成などの作業を行いたい場合には、生成モデルを使用することができる。生成モデルは、他のデータセットから事前確率 $p(z;γ)$ を学習し、$\mathcal{H}$ をより小さい $\mathcal{\tilde{H}}$ に削減する。学習された生成モデルは、データ補完のためのサンプル生成にも利用できる。しかし、生成的モデル法は推論コストが高く、決定論的モデルよりも導出が困難である。


# 5. アルゴリズム (Algorithm)

このアルゴリズムは、仮説空間 $\mathcal{H}$ の中で、最良の仮説 $h^∗$ のパラメータ $\theta$ を探索する戦略である [17, 18] 。$t$ 回目の反復では、 $\theta_t$ は $\theta_{t-1}+\Delta\theta_{t-1}$ に更新される。$\Delta \theta_{t-1}$ は更新量である。例えば、一般的な確率勾配降下法(SGD) [17, 18] では、$\theta$ は

```math
$\theta_{t} = \theta_{t-1}- \alpha_t \nabla_{\theta_{t-1}} ℓ(h(x_{t}; \theta_{t-1}),y_t)$
```
として更新される。$\alpha_t$ はステップサイズである。$\theta$ を $\theta_0$ で初期化したとき、$\theta_{t}$ は

```math
$\displaystyle \theta_{t} = \theta_0 + \sum^t_{i-1} = \Delta \theta_{i-1}$
```
と書くことができる。教師情報が豊富な場合には、$\theta$ を更新するのに十分な学習サンプルがあり、交差検証によって適切なステップサイズ $\alpha$ を見つけることができる。しかし、FSLでは、提供されるfew-shotの $D_{\rm{train}}$ が十分に大きくなく、得られる経験誤差最小化器は信頼性に欠ける。本節の方法は、初期化されたパラメータ $\theta_0$ を提供するか、探索ステップを出力する最適化器を直接学習することで、$\theta$ の求め方に影響を与えるために、事前知識を利用する。探索戦略が事前知識の影響をどのように受けるかという観点から、本節の手法を3つのグループに分類する (Table 7) 。

- 既存のパラメータの精錬
- メタ学習されたパラメータの精錬
- 最適化器の学習

Table 7. アルゴリズムの観点に着目したFSL手法の特徴 (Characteristics for FSL Methods Focusing on the Algorithm Perspective)

| strategy                       | prior knowledge       | how to search $\theta$ of the $h^*$ in $\mathcal{H}$ |
|:--:|:--:|:--:|:--:|
| 既存パラメータの精錬           | 学習された $\theta_0$ | $D_{\rm{train}}$ によって $\theta_0$ を精錬する      |
| メタ学習されたパラメータの精錬 | メタ学習者            | $D_{\rm{train}}$ によって $\theta_0$ を精錬する      |
| 最適化器の学習                 | メタ学習者            | メタ学習者によって提供された検索ステップを使用する   |


## 5.1 既存パラメータの精錬 (Refining Existing Parameters)

この手法は、関連するタスクから学習した事前学習モデルの $\theta_0$ を良い初期値とし、それを $D_{\rm{train}}$ で $\theta$ に適応させる。前提として、$\theta_0$ は大規模データの一般的な構造をある程度把握している。したがって、数回の繰り返しでこれを $D$ に適応させることができる。


### 5.1.1  正則化による既存パラメータのファインチューニング (Fine-tuning Existing Parameter by Regularization)

この手法は、few-shotタスクのために事前に学習した $\theta_0$ を正則化してファインチューニングするものであり (Fig. 11) 、よく用いられている。いかにしてオーバフィットせずに $\theta_0$ を$D_{\rm{train}}$に適合させるかが設計上の重要な課題となる。

![csur5303-63-f11.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363619/d8a93b7d-faf4-a354-670a-962311f4cbfb.jpeg)
Fig. 11. 正則化により既存パラメータのファインチューニングを行うことによるFSL問題の解法 (Solving the FSL problem by fine-tuning existing parameter $\theta_0$ by regularization.)


### 5.1.2 パラメータ集合の集約 (Aggregating a Set of Parameters)

時には、最初から適切な $\theta_0$ を持っていないこともある。その代わりに、関連するタスクから学習した多くのモデルがあるため、これらのモデルパラメータを集約して適切なモデルにすることができ、そのモデルは直接使用されるか、 $D_{\rm{train}}$によって洗練される (Fig. 12) 。

![csur5303-63-f12.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363619/fd30693f-af7b-ff6c-7d7e-7a5a5924daf0.jpeg)
Fig. 12. 混合埋め込みモデルによるFSL問題の解決 FSL問題を解くにはパラメータの集合 $\theta_0$ 's を $\theta$ に集約する必要があるが、事前に訓練された $\theta_0$ 's があれば組み合わせの重み (青線) を学習するだけでよい (Solving the FSL problem by aggregating a set of parameters $\theta_0$ ’s into $\theta$ . Provided with a set of pre-trained $\theta_0$ ’s, one only needs to learn the combination weights (blue lines).)

ラベル付けされていないデータセット (3.2節) や類似のラベル付けされたデータセット (3.3節) からのサンプルは、few-shotの $D_{\rm{train}}$を拡張するために使用することができる。サンプルを直接使用する代わりに、以下の方法では、これらのデータセットから事前に学習されたモデル (パラメータ $\theta_0$ 'sを持つ) を使用する。問題は、 $D_{\rm{train}}$ を用いてそれらをいかに効率的に新しいタスクに適応させるかということである。


### 5.1.3 新しいパラメータによる既存のパラメータのファインチューニング (Fine-Tuning Existing Parameter with New Parameters)

事前に訓練された $\theta_0$ では、新しいFSLタスクを完全に符号化するには十分ではない可能性がある。そこで、 $D_{\rm{train}}$ の専門性を考慮して、追加のパラメータδを使用する (Fig. 13) 。 を学習しながら $\theta_0$ をファインチューニングする。

![csur5303-63-f13.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363619/84a6762e-b864-647f-ab9e-b4d8380e8789.jpeg)
Fig. 13. 新しいパラメータで既存パラメータのファインチューニングを行うことによるFSL問題の解法 (Solving the FSL problem by fine-tuning existing parameter $\theta_0$ with new parameters.)


## 5.2 メタ学習されたパラメータの絞り込み (Refining Meta-Learned Parameter)

ここでは、メタ学習を利用して、メタ学習されたパラメータ $\theta_0$ (Fig. 14参照) を最適化する方法を説明する。 $\theta_0$ は学習者のパフォーマンスに応じてメタ学習者によって継続的に最適化される。これは、 $\theta_0$ が固定されている5.1節とは異なる。

![csur5303-63-f14.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363619/abec7a35-c0b6-3cac-91a9-3362f80e9beb.jpeg)
Fig. 14. メタ学習したパラメータを絞り込むことによるFSL問題の解法 (Solving the FSL problem by refining the meta-learned parameter $\theta_0$)

メタ学習された $\theta_0$ は、勾配降下によって洗練されることが多い。代表的な方法は Model-agnostic Meta-learning (MAML) [37] であり、いくつかの効果的な勾配降下ステップを経て、いくつかの $T_s \sim P(T)$ のためのタスク固有のパラメータ $\phi_s$  を得るために以下のように調整される。

```math
 $\phi_s = \theta_0 - \alpha \nabla_{\theta_0} \mathcal{L}^s_{train}(\theta_0)$
```
ここで、$\mathcal{L}^s_{train}( \theta_0)$ は $D_{\rm{train}}$ の訓練サンプルの損失の総和であり、$\alpha$ はステップサイズだる。 $\phi_s$  はサンプルの並べ替えに不変であることに注意する。メタ学習パラメータ $\theta_0$ は複数のメタ学習タスクからのフィードバックによって $\theta_0 ← \theta_0 - \beta \nabla \theta_0 \sum_{T_s \sim P (T)} \mathcal{L}^s_{test}( \theta_0)$ として更新される。メタ学習者は $D_{\rm{train}}$ のfew-shotのサンプルを用いて $\theta_0$ を連続的に改良することで、few-shotの訓練セットに迅速に適応できるように $\theta_0$ を改良する。


## 5.3 最適化器の学習 (Learning the Optimizer)

5.2 節では、メタ学習器 $\theta_0$ はデータ $D$ を持つ $T \sim P(T)$ の初期化として機能し、いくつかの効果的な勾配降下ステップを経てタスク固有のパラメータ $\phi$ に調整される。対照的に、勾配降下を使用する代わりに、本節の方法は最適化器を学習し、それは更新 (式(4)の $\sum^t_i = \Delta \theta^{i-1})$ を直接出力することができる (Fig. 15) 。 これは学習アルゴリズムが自動的に行うので、ステップサイズ $\alpha$ を調整したり、探索方向を見つけたりする必要はない。

![csur5303-63-f15.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363619/12954489-cdfe-2f96-0818-cebf7acf7ac7.jpeg)
Fig. 15. 最適化器を学習することによるFSL問題の解法 (Solving the FSL problem by learning the optimizer)

$t$ 回目の反復では、$(t-1)$ 回目の反復で計算されたエラー・シグナルを取り、 $\phi_t = \phi_{t-1} + \Delta \phi_{t-1}$ として学習者のタスク固有のパラメー タ $\phi_{t-1}$ を更新するための更新 $\Delta \phi_{t-1}$ を直接出力するメタ学習者を学習する。したがって、5.1 節と 5.2 節で述べた戦略とは対照的に、この戦略は新しいタスクのための最適化器を提供する (学習者によって最適化される) 。この $\phi_t$ は、次のイテレーションでメタ学習者に供給されるエラー信号として機能する $t$ 番目のサンプル $(x_t, y_t) \in D_{\rm{train}}$ を使用して、$l_t (\phi_t) = l(h(x_t; \phi_t), y_t)$ を計算するために使用される。タスクを学習した後、メタ学習者はテスト集合 $D_{test}$ の損失に対して勾配降下によって改善される。$P(T)$ から引き出されたTの集合から学習することで、メタ学習者はFSLのための効率的なアルゴリズムを提案することができるようになる。


## 5.4 ディスカッションとまとめ (Discussion and Summary)

既存のパラメータを改良することで、$\mathcal{H}$ での探索努力を減らすことができる。既存の $\theta_0$ を初期化として使用することで、これらの方法は通常、良い仮説 $h \in \mathcal{H}$ を得るためにより低い計算コストを必要とする。学習は、これらの既存のパラメータを改良することに焦点を当てている。しかし、$\theta_0$ は現在のタスクとは異なるタスクから学習するため、速度のために精度を犠牲にする可能性がある。他の2つの戦略はメタ学習に依存している。関連するタスクのセットから学習することで、メタ学習された $\theta_0$ は新しいタスク $T_t$ のタスク固有のパラメータ $\phi_t$ に近づけることができる。メタ学習者による学習探索ステップは、学習アルゴリズムを直接導くことができる。言い換えれば、メタ学習者は最適化器の役割を果たす。しかし、異なる粒度 (動物の粗視化された分類と犬種の細視化された分類など) や異なるデータ・ソース (画像とテキストなど) にまたがってどのようにメタ学習を行うか [131] などの重要な問題はまだ解決されていない。このような観点から、メタ学習とマルチタスクは似たようなものであるため、負の伝達をどのように避けるかという懸念もある [28] 。


# 6. 今後の展開 (Future Works)

本節では、問題設定・技術・応用・理論の4つの今後の方向性について述べる。


## 6.1 問題設定 (Problem Setup)

既存のFSLの手法は、画像、テキスト、ビデオなどの単一のモダリティからの事前知識を利用することが多い。しかし、$D_{\rm{train}}$には現在使用されているモダリティの例がいくつかあるが、教師サンプルが豊富な別のモダリティが存在する可能性がある。最近では、ZSL法からFSL問題に技術を借用する試みが行われている。例えば、few-shot $D_{\rm{train}}$を用いて、ZSL法で学習したパラメータをファインチューニングすることができる [2, 62] 。しかし、少ないサンプル数を用いてファインチューニングを行うと、オーバーフィットにつながる可能性がある。別の可能性としては、複数のモダリティによって学習された埋め込みを共有空間内で強制的に一致させることである [133, 139] 。最近の研究 [110] では、ラベル間の構造化された関係を利用して、FSLの埋め込みを整列させるためにGNNを利用している。異なるモダリティは異なる構造を含むことがあるので、これは慎重に扱う必要がある。


## 6.2 テクニック (Techniques)

これまでの節では、FSLの事前知識がどのように利用されているかに応じて、FSLの手法をデータ (第3節)、モデル (第4節)、アルゴリズム (第5節)の観点から分類した。これらの各要素は、改良が可能である。例えば、埋め込み関数として最先端の ResNet [55] を用いることは、VGG [123] を用いるよりも優れている。
第4章と第5章でレビューされているようなメタ学習ベースのFSL手法は特に興味深い。タスクをまたいで学習することでメタ学習は小さな推論コストで新しいタスクに迅速に適応することができる。しかし、メタ学習で考慮されるタスクは、多くの場合、単一のタスク分布 $p(T)$ から引き出されると仮定される。実際には、タスクの関連性が不明であったり、関連性を判断するのにコストがかかるタスクが多数存在することがある。この場合、これらすべてのタスクから直接学習すると、負の伝達が発生する可能性がある [28] 。また、現在のFSLの手法は、静的で固定の $p(T)$ を考慮することが多い [37, 106] 。しかし、ストリーミングアプリケーションでは、$p(T)$ は動的で [38] 、新しいタスクが継続的に到着している。したがって、これも $p(T)$ に組み込まれるべきである。重要な問題は、動的な設定で壊滅的な忘却 [69] をどのようにして回避するか、つまり古いタスクの情報を忘れてはならないということである。前のセクションで議論したように、異なるFSLの手法には長所と短所があり、すべての設定において絶対的な勝者は存在しない。さらに、仮説空間 $\mathcal{H}$ と $\mathcal{H}$ 内の探索戦略の両方が人間の設計に依存していることが多い。


## 6.3 応用 (Applications)

FSLは、サンプルの希少性、データ収集の労力と計算コストを削減するための努力、あるいは人間のような学習を模倣するための足がかりとして必要とされていることを思い出そう。したがって、多くの実世界でのアプリケーションはFSLを含んでいる。コンピュータビジョンは、FSLアルゴリズムの最初のテストベッドの一つである。FSLはまた、ロボット工学、自然言語処理、音響信号処理などの他の多くのアプリケーションでも最近注目を集めている。


## 6.4 理論 (Theories)

FSLは、教師あり情報の不足を補うために事前知識を使用する。これは、高い確率を持つ小さな経験誤差 $R_I(h)$ を持つモデルを得るために必要な訓練サンプル数であるサンプル複雑度の理論的研究に関連している [92, 94] 。$\mathcal{H}$ は、提供された $I$ サンプルを十分なものにするために、より複雑でないことが必要である。FSL法は、事前知識を利用して、より多くのサンプルを増やし (すなわち、$I$ を増やし) 、$\mathcal{H}$ を制約し (すなわち、$\mathcal{H}$ の複雑さを減らし) 、探索戦略を変更し (すなわち、良い $h$ を見つける確率を上げる) 、ということを覚えておこう。このことは、FSL法が事前知識を用いて必要なサンプルの複雑さを低減できることを示唆している。この点についての詳細な分析は有用であろう。
また、FSLアルゴリズムの収束性は完全には理解されていない。特に、メタ学習法は、単一のタスクではなく、タスク分布にわたって $\theta$ を最適化する。メタ学習法の収束に関するより一般的な分析は非常に有用である。


# 7. 結論 (Conclusion)

Few-shot learning (FSL) はAIと人間の学習のギャップを埋めることを目的としている。FSLは事前知識を取り入れることで、few-shotのサンプルを含む新しいタスクを教師ありの情報で学習することができる。FSLは、AIのテストベッドとして機能し、希少な事例の学習や、産業応用における大規模な教師ありデータ収集の負担を軽減が可能である。本調査では、FSLの包括的かつ体系的なレビューを行った。まず、FSLを正式に定義し、FSLと弱教師あり学習、不均衡学習、伝達学習、メタ学習などの学習問題との関連性と相違点を議論した。その上で、FSLの核心的な問題は、FSLを学習しにくいものにしている信頼性の低い経験誤差最小化器であることを指摘した。この核心的な問題を理解することで、データはFSLの教師あり経験を拡張し、モデルはFSLの仮説空間を小さくすることを制約し、アルゴリズムは与えられた仮説空間の中で最良の仮説を探すための探索戦略を変更するというように、事前知識を用いて核心問題をどのように解決するかによって、各手法をデータ、モデル、アルゴリズムに分類した。それぞれのカテゴリーにおいて長所と短所を議論し、いくつかの要約と洞察の提示した。また、FSLの将来の研究を刺激するために、問題の設定、技術、応用、探索すべき理論についての可能な方向性を示した。