多模態視覺語言

零樣本影像分類

零樣本影像分類(zero-shot image classification)是指把影像分類到模型「零個」標註訓練範例的類別。一般分類器在固定類別集上訓練(例如 ImageNet 的 1000 個標籤),永遠只能輸出其中之一。相對地,零樣本分類器可以在測試時用白話告訴它候選類別,並把影像指派給其一——即使是沒人訓練過的類別。這之所以可行,是因為像 CLIP 這樣的視覺語言模型學到了一個影像與文字描述可互相比較的共享空間。

機制很直接。你把每個候選標籤寫成文字提示——通常是「一張{標籤}的照片」,例如「一張黃金獵犬的照片」——再把所有提示送過文字編碼器,每個類別得到一個向量。你把影像送過影像編碼器得到它的向量。預測的類別就是文字向量與影像向量餘弦相似度最高的那個。你可以在推論時換上任何你想要的標籤集而不需重新訓練;本質上你是把分類變成了一個對文字標籤的檢索問題。

兩個實務上的槓桿會強烈影響準確率。第一是提示工程(prompt engineering):用字很重要,光是裸標籤(「貓」)通常比套版提示(「一張貓的照片」)差,因為後者更符合 CLIP 訓練描述的分布。第二是提示集成(prompt ensembling):把多個範本(「一張{標籤}的照片」「一張模糊的{標籤}照片」「一座{標籤}的雕塑」等)的嵌入平均起來,得到更穩健的類別向量。CLIP 正是以此達到了強大的 ImageNet 零樣本準確率,且只要仔細撰寫提示,此法可推廣到細粒度、衛星與醫學等領域。

要在不訓練的情況下把照片分成 {哈士奇、狼、阿拉斯加雪橇犬}:嵌入三個提示「一張哈士奇/狼/阿拉斯加雪橇犬的照片」,嵌入該照片,挑出餘弦匹配最高者。再加一個「以上皆非」的提示,你還能得到開放集拒答能力。

又稱
open-set classification by text prompts