社群計算機視覺課程文件
引言
並獲得增強的文件體驗
開始使用
導論
關於泛化
現在我們已經像學生為考試熬夜一樣訓練了我們的模型,真正的考驗開始了!我們希望模型在訓練期間獲得的知識能夠超越它所學習的特定圖片(例如貓圖片),使其能夠識別愛麗絲和泰德的毛茸茸朋友等未見過的貓。可以把它想象成模型學習了貓的本質,而不僅僅是它在訓練期間看到的那些特定的毛茸茸的臉。這種將知識應用於新情況的能力稱為**泛化**,它區分了一個好的貓模型和一個僅僅記住貓圖片的模型。你能想象一個沒有泛化的平行宇宙嗎?是的,這實際上很簡單,你只需要用世界上所有貓的圖片(假設它們只存在於地球上)來訓練你的模型,包括愛麗絲和泰德的,然後找到一種方法來阻止當前的貓繁殖。所以,是的,這沒什麼大不了的。
實際上,當我們說模型應該泛化到所有它沒有見過的貓圖片時,我們是不正確的。它應該泛化到所有與其訓練時影像資料來自相同分佈的貓圖片。簡單來說,如果你用貓的自拍照訓練你的模型,然後給它看一張卡通貓的圖片,它可能無法識別。這兩張圖片來自完全不同的分佈或領域。讓你的貓自拍照模型能夠識別卡通貓被稱為**域適應**(我們稍後會簡要提及)。這就像把你模型學到的所有關於真實貓的知識,教它識別它們的動畫表親。
所以,我們已經從泛化(識別未見過的愛麗絲和泰德的貓圖片)發展到域適應(識別動畫貓圖片)。但我們比這更貪心。你不僅希望你的模型能夠識別你的貓圖片,或者愛麗絲和泰德的貓圖片,甚至不僅僅是卡通貓!如果你的模型是根據貓圖片訓練的,你還希望它能識別羊駝和獵鷹的圖片。
嗯,現在我們進入了零樣本學習(也稱為 ZSL)的領域。
什麼是零樣本學習?
讓我們先用一個定義來熱身。零樣本學習是一種設定,在這種設定中,模型在測試時會遇到**只**屬於它在訓練期間未曾接觸過的類別的影像。換句話說,訓練集和測試集是**不相交的**。溫馨提示:在經典的零樣本學習設定中,測試集只包含模型以前從未見過的類別的圖片,沒有一張來自它訓練時的圖片。這可能看起來有點不切實際,就像要求學生只用他們從未學習過的材料來透過考試一樣。幸運的是,零樣本學習有一個更實用的版本,它沒有這個嚴格的規則,被稱為廣義零樣本學習,或 GZSL。這種更靈活的方法允許測試集包含已見過的和未見過的類別。這是一種更現實的場景,反映了現實世界中事物的工作方式。
零樣本學習的歷史
深度學習開始變得可行後不久,就出現了我們是否能讓模型在沒有明確訓練過的任務上表現良好的問題。2008年,ZSL 的種子在人工智慧促進協會(AAAI)會議上發表的兩篇獨立論文中播下。第一篇題為**無資料分類**的論文,探討了自然語言處理(NLP)背景下的零樣本學習概念。第二篇題為**零資料學習**的論文,重點將 ZSL 應用於計算機視覺任務。零樣本學習這個術語本身最早出現在2009年的 NeurIPS 會議上,在一篇由……傑弗裡·辛頓共同撰寫的論文中!
下面我們來對 ZSL 最重要的時刻進行一個概述。
| 2008 | 零樣本學習的最初火花(問題) |
| 2009 | 零樣本學習這一術語被創造出來 |
| 2013 | 廣義零樣本學習的概念被引入 |
| 2017 | 編碼器-解碼器正規化首次應用於零樣本學習 |
| 2020 | OpenAI 的 GPT-3 在零樣本自然語言處理方面取得了令人印象深刻的效能 |
| 2021 | OpenAI 的 CLIP 將零樣本計算機視覺提升到了一個全新的水平 |
CLIP 的影響深遠,開啟了零樣本計算機視覺研究的新紀元。其多功能性和效能開闢了令人興奮的新可能性。可以說,零樣本計算機視覺的歷史可以分為兩個時代:**CLIP 前**和**CLIP 後**時代。
零樣本學習在計算機視覺中如何運作?
既然我們瞭解了什麼是零樣本學習,那麼瞭解它如何應用於計算機視覺豈不是很棒嗎?這部分內容將在接下來的章節中更詳細地闡述,但我們先在這裡描繪一個大致的畫面來打破僵局。
在自然語言處理(NLP)中,零樣本學習(儘管並非一直如此)相當簡單。許多語言模型在海量文字資料集上進行訓練,學習預測給定序列中的下一個詞。這種捕捉語言中潛在模式和語義關係的能力,使得這些模型能夠在未經明確訓練的任務上表現出驚人的良好效能。一個很好的例子是 GPT-2 在提示後附加“TL;DR”時能夠總結一段文字。零樣本計算機視覺則是另一回事。
讓我們從一個簡單的問題開始,*我們人類是怎麼做到的?我們如何識別以前從未見過的物體?
是的,你完全正確!我們需要關於那個物體的一些**其他資訊**。我們即使以前從未見過老虎,但只要知道獅子長什麼樣,就能輕易識別老虎。老虎就是帶條紋沒有鬃毛的獅子。斑馬就是黑白條紋版的馬。死侍就是紅黑版的蜘蛛俠。
因為這些其他資訊,零樣本計算機視覺本質上是多模態的。如果說泛化就像透過閱讀書籍和與人交談來學習一門語言,那麼零樣本計算機視覺就像透過閱讀字典和聽別人描述其聲音來學習一門語言。
還有哪些資訊?
為了使零樣本計算機視覺發揮作用,我們需要在訓練期間向模型提供除視覺特徵之外的資訊。這種其他資訊被稱為**語義或輔助資訊**。它在視覺特徵和未見類別之間提供了一個語義橋樑。透過整合這種多模態資訊(文字和影像),零樣本計算機視覺模型即使從未在視覺上見過某個物體,也能學會識別它。換句話說,語義資訊將**已見和未見**類別嵌入到高維向量中,並且它以多種不同形式存在。
- **屬性向量**:將屬性視為物件不同特徵的表格表示。
- **文字描述**:描述影像中包含的物件的文字,類似於影像標題。
- **類別標籤向量**:這些是類別標籤本身的嵌入。
利用這些語義資訊,你訓練一個模型來學習影像特徵和語義特徵之間的對映函式。在推理時,模型透過使用(例如)k-近鄰搜尋語義空間中最接近的標籤來預測類別標籤。我們可以說,我們正在藉助語義資訊,從已見類別中轉移知識。
不同的零樣本計算機視覺方法在使用**語義資訊**和推斷時利用的**嵌入空間**方面有所不同。
這與遷移學習有何不同?
好問題!零樣本學習(ZSL)屬於更廣泛的遷移學習範疇,具體來說,它屬於**異構遷移學習**的範疇。這意味著 ZSL 依賴於將從**源領域**(已見類別)獲得的知識遷移到**不同的目標領域**(未見類別)。
由於源域和目標域之間的差異,ZSL在遷移學習中面臨著特定的挑戰。這些挑戰包括克服域漂移(資料分佈差異顯著)和處理目標域中缺乏標註資料的問題。但我們稍後將詳細討論這些挑戰,所以現在不用擔心。現在,讓我們簡單談談零樣本計算機視覺的不同方法。
零樣本計算機視覺的方法
零樣本計算機視覺方法的領域廣闊而多樣,有許多提出的方法和多種分類框架。但我發現一個吸引人的框架是,這些方法可以大致分為**基於嵌入的方法**和**基於生成的方法**。這個框架提供了一個有用的視角,可以理解和比較不同的零樣本計算機視覺方法。
- **基於嵌入的方法**:模型學習一個共同的嵌入空間,將影像及其語義特徵/表示投影到其中。然後,透過在該空間中進行相似性度量來預測新的未見類別。例如,CLIP。
- **基於生成的方法**:這些方法利用生成模型,根據已見類別的樣本和兩個類別的語義表示,為未見類別建立合成影像或視覺特徵。這使得即使沒有真實資料,也可以對這些未見類別進行模型訓練。這樣,我們就稍微作弊,將零樣本問題轉化為了有監督學習問題。例如,CVAE[^6]。
嵌入式方法和生成式方法之間的選擇,就像你在機器學習中必須做出的所有其他選擇一樣,*取決於*手頭任務的具體情況和可用資源。嵌入式方法通常因其效率和可擴充套件性而受到青睞,而生成式方法則提供更大的靈活性和處理複雜資料的潛力。
但無論如何,在本單元中,我們將**只**討論基於嵌入的方法,包括**基於注意力的嵌入方法**。零樣本學習是一個很大的主題,全面覆蓋可能需要一個獨立的課程。感興趣的讀者可以檢視提供的附加閱讀材料,並從中獲得樂趣。
克隆人的進攻:ZSL 與 X 有何不同?
我們已經走了很長一段路!現在我們對零樣本學習、它的歷史、它在計算機視覺中的應用以及它的通用工作原理有了一個不錯的瞭解。為了完善本導論,我們將零樣本學習與其他可能最初看起來相似的不同方法進行比較。
- **域適應(DA)**:現在應該很熟悉了。我們可以將零樣本學習看作是域適應的一種極端情況(貪婪、貪婪),它處理的是在完全沒有資料的情況下學習識別未見類別的問題。域適應側重於彌合兩個相關域(資料集)之間具有不同分佈的差距,並且它需要帶標籤的資料。
- **開放集識別 (OSR)**:可以將其視為布林零樣本學習。與 ZSL 類似,在 OSR 問題中,模型處理已見和未見類別。但與 ZSL 不同的是,在測試時,模型只需要分類例項是否屬於已見類別。就是這樣,沒有花哨的標籤。儘管如此,這仍然是一個重大挑戰。
- **分佈外(OOD)檢測**:將此問題視為開放集識別的連續變體。在這裡,我們不希望檢測任何未包含在訓練過程中的例項,而只是檢測與訓練資料分佈顯著偏離的例項。透過有效識別和處理意外資料,OOD 檢測可以為更值得信賴和更健壯的人工智慧系統鋪平道路,這些系統可以適應不可預測的環境。
- **開放詞彙學習 (OVL)**:這是零樣本學習的目標。就像是零樣本學習的增強版。總的來說,OVL 可以被認為是 ZSL 的擴充套件,它涵蓋了從有限資料中學習未見類別的能力,同時還擴充套件到處理已見類別以及可能無限的新類別和任務。