Youtube で見つけたFew-Shot Learningの解説動画の聴講メモ。
Basic Concepts of Few-Shot Learning
-
Few-Shot Learningの定義 : 少ないサンプル数で分類や回帰をするもの
-
Few-Shot Learningの目的 : 物体の同質性や相違性を学ぶこと
- 教師あり学習のような、学習データを記憶することとは異なる
-
データ
- Training Set : 学習データ / 量が多い / DNNを学習する
- Support Set : ラベル付きの少数のサンプル / DNNの学習は不可
- Query Image : 評価用データ
-
メタ学習とFew-Shot Learning
- メタ学習 : Learn to Learn(学習することを学ぶこと)
- ex) 初めてカワウソを見た子供に、いろんな動物の画像を含んだSupport Setを見せて、カワウソがどれかを言い当てさせる
- Support Setの画像が各動物一枚ずつ=One shot Learning
- メタ学習 : Learn to Learn(学習することを学ぶこと)
-
教師あり学習 VS Few-Shot Learning
- 教師あり学習
- 評価データはモデルにとって未知のデータ
- 評価データはモデルにとって既知のクラスに属している
- Few-Shot Learning
- 評価データはモデルにとって未知のデータ
- 評価データはモデルにとって未知のクラス
- 教師あり学習
-
k-way n-shot Support set
- k-way : Support Setのクラス数
- way数が多いほど、モデルにとって難しい問題となる
- n-shot : Support Setのクラスごとのサンプル数
- shot数が多いほど、モデルにとって簡単な問題となる
- k-way : Support Setのクラス数
-
メカニズム
-
よく使われるデータセット
Siamese Network
-
手法1 : Learning Pairwise Similarity Scores
-
手法2 : Triplet Loss
-
Training Setの取得方法
-
Lossのイメージ
-
-
要約
- 学習はSiamese networkをふ大規模なtraining setを用いて行う
- Siamese networkは対象物の類似性や相違性を学習する
- Support setを与える
- k-way は k classであることを指す
- n-shotは各クラスがnサンプルあることを指す
- training setはk classを含まない
- 学習はSiamese networkをふ大規模なtraining setを用いて行う
Pretraining and Fine Tuning
-
予備知識
-
事前学習
- 転移学習
- 5way 1shotで2~7%の改善が見られた
- 5way 5shotで1.5~4%の改善が見られた
- 要約
- 事前学習したCNNでのFew-Shot評価は以下の工程で行える。
- Step1(事前学習)
- CNNを大規模なtraining dataで学習する
- Step2(評価)
- Support Setの画像を特徴ベクトルへと変換する
- 各クラスの平均特徴ベクトルを作成し、それぞれを行ベクトルとする行列Mを作成
- Queryと行列Mの積にバイアス項を加え、Softmaxを適用する
- Step1(事前学習)
- 転移学習をする場合,
- Step1(事前学習)
- CNNを大規模なtraining dataで学習する
- Step1-dash(転移学習)
- Support Setで学習する
- Step2(評価)
- Support Setの画像を特徴ベクトルへと変換する
- 各クラスの平均特徴ベクトルを作成する、それぞれを行ベクトルとする行列Mを作成
- Queryと行列Mの各行とのコサイン類似度を計算し、Softmaxを適用する
- Step1(事前学習)
- 事前学習したCNNでのFew-Shot評価は以下の工程で行える。