Open soyamash opened 3 years ago
GZSLとZSLの違いは、Seenクラスがテストデータに含まれるか否か。(Seenクラスのほうがマジョリティである場合が多い)。また、ZSLのテクニックがGZSLでは上手くいかないこともわかっている。
Unseenクラスについては、何かしらのAttributeやWikipediaなどから自動取得した言語情報を入れる。しかし人手の手間や、ノイズの多さが問題として挙げられる。また、transductive設定として、Unseenクラスについてのラベルなしデータや、semantic representationが与えられる場合もある。
kNN系のメソッドにおいてよく知られる、hubness problemがZSL、GZSLでも問題になる。これは共通の特徴を持つある訓練データサンプルがハブのように、どのテストデータサンプルとも近い距離として出てきてしまう問題。
また、Unseenクラスを考慮せずにSeenクラスについてのみマッピング関数を学習すると、下図のように、Unseenクラスの分布がSeenクラスに比べて上手く学習されない。結果として、UnseenクラスがSeenクラスに分類されやすくなってしまう傾向がある
解くべきissueは2つある。 (i) Seenクラスに関する知識をどうやってUnseenクラスに転移するか (ii) Unseenクラスの学習データを使用せずに、Seenクラス・Unseenクラス両方の画像を認識するモデルの学習方法
これらのissueへの手法としてembedding-based、generative-basedの2種類に分類できる。
埋め込み表現へと変換する関数を学習し、Seenクラスとの距離などに基づいて、分類を行う。 埋め込み表現の種類によって細分化できる
生成モデルを学習する。VAEベースのモデルはEmbedding-basedモデルと似ている
訓練データに含まれないラベルに対しても、テストデータを振り分けられるようにするGeneralized Zero-Shot Learningタスクのサーベイ論文 https://arxiv.org/abs/2011.08641