
©作者 | 湯凱華
單位 | 南洋理工大學
研究方向 |計算機視覺
時隔兩年,飽受了社會的毒打之後,讓我們再次重新回到計算機視覺中的長尾分布這個我博士期間研究的主要問題上,看看 2022 年了這個方向是否還值得繼續做下去。本文主要介紹我們今年被 ECCV 2022 接受的論文,目前代碼已經在 Github 上開源。
論文標題:Invariant Feature Learning for Generalized Long-Tailed Classification
論文鏈接:
https://arxiv.org/abs/2207.09504代碼鏈接:
https://github.com/KaihuaTang/Generalized-Long-Tailed-Benchmarks.pytorch
對長尾分類問題的反思和展望
先說暴論:如果只考慮訓練集與測試集獨立同分布(IID)且長尾分布僅體現在類間分布的情況下,Google 的 Logit Adjustment [1] 研究已經從理論上提供了非常優雅的最優解了。也就是說,計算機視覺中傳統的 Long-tailed Classification 設定其實早就已經被「完美」解決了。那麼這就帶來了兩個問題:1)長尾分類領域最近的「進展」到底提升的是什麼?2)長尾分布相關的問題後續還能不能做?該怎麼做?
1.1一種優雅的IID類間長尾分類問題的建模方式首先,讓我們解釋下為什麼我認為 IID 情況下的類間長尾分布問題已經被完美解決了。基於 Logit Adjustment [1] 文中的分析,分類問題的概率模型 可以通過貝葉斯分解為如下形式 。那麼在訓練集與測試集獨立同分布(IID)的情況下,我們自然而然可以得到如下的假設:,也就是說對於分類模型 ,唯一的類別 bias 來自中的第二項 。那麼問題就簡單了,我們可以直接通過 來將類別分布從訓練分布更改為測試分布,而由於傳統長尾分類任務中默認測試分布為均衡分布,那麼就可以去掉最後一項 ,因為在分類的 logits 上加上一個常數項並不會改變最後分類結果。由此,我們就實現了理論上的對 IID 類間長尾分布的最優解。而上述 的形式也可以理解為優化Point-wise Mutual Information:,這個優雅的理解方式來自於蘇劍林大佬的文章《通過互信息思想來緩解類別不平衡問題》,非常推薦大家讀一下。1.2 長尾分類領域最近的「進展」到底提升的是什麼?那麼,讓我們先來嘗試回答一下第一個問題。近年來隨着一些基於 Ensemble 的 backbone 在長尾分布問題上的應用,其實我們不難發現,目前的趨勢是在利用更加通用高效的特徵提取方式來提升長尾分類的效果。也就是說是在提升 ,即找到更好的更魯棒的和類別對應的特徵。但這些通用的方式之所以通用,也是因為他們其實並不能算作長尾分布的算法。這其實就是目前計算機視覺中的長尾分布問題的困境:傳統的分布矯正思路已經漸漸走到了盡頭,而新的特徵學習方法又缺少理論支撐。不過如果讀完下文其實就可以發現,近來的特徵學習算法大部分確實也是在解決數據不均衡的問題,但並不是解決類間偏見,而是解決類內的屬性偏見。比如 multi-expert backbone 就可以通過 ensemble 緩解單個特徵空間學到的領域偏見,得到更魯棒的特徵。
1.3 長尾分布相關問題的後續研究還能不能做?該怎麼做?
那麼,讓我們先來嘗試回答一下第一個問題。近年來隨着一些基於 Ensemble 的 backbone 在長尾分布問題上的應用,其實我們不難發現,目前的趨勢是在利用更加通用高效的特徵提取方式來提升長尾分類的效果。也就是說是在提升 ,即找到更好的更魯棒的和類別對應的特徵。但這些通用的方式之所以通用,也是因為他們其實並不能算作長尾分布的算法。這其實就是目前計算機視覺中的長尾分布問題的困境:傳統的分布矯正思路已經漸漸走到了盡頭,而新的特徵學習方法又缺少理論支撐。其實計算機視覺中的長尾分布問題還是可以做的。至於做的方向就來自於傳統長尾分類任務對問題的過度簡化。
其一:並不是所有視覺任務都可以簡單建模為 。大多數多模態任務中的長尾分布會更加複雜,比如視覺問答 VQA 數據中的長尾分布既有整體答案的 分布,同時又有基於輸入問題 的條件長尾 ,即給定特定問題類型,答案呈現長尾分布(如面對問運動的問題時,答案「網球」成為了明顯的常見主導類),而實際訓練中後者的影響反而比單純的全局分布 更明顯。所以如何在更加複雜的多模態任務中解決長尾分布會比單純分類問題下的長尾分布更有生命力。其二:工業界真正頭疼的長尾分布問題其實並不全是學術界研究的最多的類間長尾。比如當說到無人車訓練數據中的長尾分布時,大多數情況下這指代的其實並不是類間長尾。像長尾的天氣分布,日夜分布等,並不是模型預測的目標,因此這裡長尾的不是類別,而是屬性(或者說context)。是這種類內的長尾(intra-class long tail)阻礙了機器學習的進一步在工業界落地,而非類間長尾(inter-class long tail),前者遠比後者難得多。所以,如何給出更好的長尾問題的新設定也是個值得研究的方向。比如我即將要說的廣義長尾分類(Generalized Long-tailed Classification [2]),或者其他研究者的任意測試分布下的長尾算法(Test-Agnostic Long-Tailed Recognition [3]),還有近來一些把類間長尾分類和領域泛化(Domain Generalization)結合的工作 [4]等等。

對長尾分類問題的一種拓展思路

▲圖1.廣義長尾=類間長尾+類內長尾
正如我上文提及的,既然單純的類間長尾無法解釋實際應用中所有的數據不均衡問題。那麼一個自然而然的拓展思路就是同時考慮類間長尾,即 Class-wise Long Tail,和類內長尾,即 Attribute-wise Long Tail(這裡的屬性同時包含了物體層面的屬性,如紋理,姿態等,也包含了圖像層面的屬性,如背景,上下文信息等)。我們將這種同時考慮兩種數據不均衡的問題命名為廣義長尾分類(Generalized Long-tailed Classification)
2.1傳統建模的局限性下面讓我們看看傳統長尾分類問題的建模有什麼局限,為什麼分類問題還需要考慮一個額外的屬性不均衡問題,即類內長尾問題。其實我們從 Logit Adjustment [1] 的公式中不難看出,最明顯容易有問題的地方就是他的假設 了。對!這個假設太強了,這把 Logit Adjustment [1] 限制在了 IID 場景下,而一旦給定類 中的數據樣本產生分布偏移,這個假設就失效了。而在真實數據中,這種分布偏移或者說領域偏移(Domain Transfer)卻又往往並不罕見,不管天氣,晝夜,甚至是圖片所屬城市的變化,都可以產生樣本 分布的偏移。尤其是對於罕見類別,由於樣本不足,使得他們對整體分布的估計很容易存在偏差,也更容易受到領域偏移的影響。這些局限大大的減少了傳統 IID 類間長尾分類任務的實用價值。但同時每個類別也必然存在不隨領域偏移而改變的特徵,否則分類任務本身便不可能存在最優解。因此,我們可以將任意單個物體的圖片 看作由兩個潛在特徵向量 和 生成的,即 。這裡 是具有不變性的類別特徵,可以理解為類別的模板或原型(Class Prototype),而 是會隨着領域而改變分布的屬性特徵,這裡可以是姿態紋理等物體屬性,也可以是背景光照上下文等圖像屬性。而我們弱化版的假設就是對於每個類別 ,存在某個特徵子集 具備分布不變性,即 。由此,IID 分類任務和 OOD 分類任務就可以分別理解為屬性特徵 不發生分布偏移和發生分布偏移這兩種情況。

▲圖2.傳統假設的局限以及我們的弱化版假設
2.2一種嶄新的建模方式由此,我們就可以通過將圖像 分解為兩個變量 和 來實現我們圖 3 的全新建模方式了。該公式同時解釋了類別偏見(class bias)和屬性偏見(attribute bias)的存在。而 和 之間的依賴關係來自我們圖 3 左側的樸素理解,即給定類別 會存在特定類別原型 ,而不同類別原型 分別會有不同的屬性集合 與之對應(如人和動物存在姿態屬性,而剛體物體則沒有),屬性 的實際取值又受到某外部未知噪聲 的影響,至於具體的物體圖像 則同時由其類別模板 和對應屬性集 決定。
▲圖3.廣義長尾分類的建模方式
下面讓我們看看這個新引入的屬性偏見(attribute bias)是怎麼影響分類結果 的。首先就是在每個類別內部,即便 是所有類內圖片共享的,但由於 的取值不同 attribute bias 項會使同一類的樣本出現難易之分(如潮濕的皮毛在狗的類別內特別罕見則會使得潮濕的狗變為困難樣本),即圖 4 的例子。其次,屬性偏見(attribute bias)還能解釋類別之間是如何產生錯分的。比如潮濕的皮毛在河狸類中就很常見,因為河狸大多生活在水裡,這就給「潮濕的皮毛」與「河狸」之間產生了偽相關性。讓潮濕的狗有很大概率被錯分為河狸,也就是圖 5 的例子。
▲圖4.屬性偏見帶來的類內長尾

▲圖5.從屬性偏見理解偽相關
2.3兩個數據集,兩個指標,三種測試方式
由於之前的類間長尾分類問題和屬性相關的領域泛化/遷移問題往往在計算機視覺中被看作兩個獨立的問題。我們並沒有統一的數據集,因此我們構建了兩個數據集 ImageNet-GLT 和 MSCOCO-GLT,前者使用預訓練模型的特徵聚類作為偽屬性標註,後者則直接通過 MSCOCO-Attribute [5] 數據集獲取屬性標註。同時我們採取了兩個指標,除了傳統的正確率(accuracy)外我們也引入了準確率(precision),從而更好的分析傳統長尾分類算法的 Accuracy-PrecisionTrade-off [6]現象。
最後我們劃分了三種測試方式:類間長尾協議(Class-wise Long Tail (CLT) Protocol),屬性長尾協議(Attribute-wise Long Tail (ALT) Protocol)和廣義長尾協議(Generalized Long Tail (GLT) Protocol),用以獨立研究類間長尾,屬性長尾和他們的聯合效應。這也可以更好的分析不同的算法到底是提升了哪一類魯棒性。2.4一個新的基準方法
同時我們也引入了一種新的基於特徵學習的基準方法。我們的基本思路是,類間長尾產生的問題主要體現在分類器(classifier)上,而類內屬性長尾的問題主要體現在特徵提取器(backbone)上。傳統的長尾分類算法,如 Logit Adjustment [1] 和 Decoupling [7]都是在不改變特徵的基礎上調整分類邊界。這就可以看作圖 6 中間的例子,但是這樣做的問題是,類別間的混淆區域並沒有得到很好的處理,也同時造成了上述的 Accuracy-Precision Trade-off [6]現象。
而我們通過可視化發現,混淆區域內的樣本大多擁有相同的背景或者環境,也就是說模型不小心把這類屬性信息也學成了分類特徵(因為屬性在一些類中和類別高度相關),所以我們的思路就是通過特徵學習時加入約束,讓模型儘可能不去學習這類屬性信息。
因此我們基於 Center Loss [8]修改了一個名為不變性特性學習(Invariant Feature Learning)的損失約束函數。首先傳統的 Center Loss 已經在人臉分類等任務中證明了自己可以使類內分布儘可能收束,從而增加類間距離。但是傳統的特徵中心在一個有偏的數據中也是天然有偏的,比如 90% 的香蕉都是黃色香蕉,那麼這個特徵中心也會學到 0.9 的顏色信息,從而降低綠色香蕉的準確性。因此我們通過構建重採樣的雙環境,均勻難易樣本的比重,實現對特徵中心更無偏的估計,從而增加 Center Loss 在我們泛化長尾分類任務中的效果。
2.5 從算法的局限到新的難點
當然,提出這個基準方法主要是為了拋磚引玉,我們希望大家可以在廣義長尾分類(GLT)這類更接近實際應用的設定下提出更多更加實用的算法。我們提出的 IFL 算法也自然有很多不完善之處。比如,我們發現在構建重採樣的雙環境的過程中,其實也很容易將噪聲樣本也過度上採樣,而在真實數據中噪聲樣本雖然可以控制在合理範圍內但幾乎無法避免。
因此我們組的易炫宇學弟也嘗試將長尾分布和去噪問題結合,該工作也被 ECCV 2022 接受,名為《Identifying Hard Noise in Long-Tailed Sample Distribution》[9]。該工作的動機和本文也非常相似。另一個問題在於,雖然我們文中表示我們提出的 IFL 是 Invariant Risk Minimization [10]版的 Center Loss,但是原始的 IRM 約束在真實的視覺數據中往往並沒有很好的效果,我們的原始 IRM Loss 實驗中甚至出現 10 個隨機種子有 7 個會在學習到一般突然變為 NaN loss。這也是一個值得研究的問題。

總結
本文主要分享了目前傳統計算機視覺中長尾分類任務的一些反思,我們認為傳統的 IID 類間長尾分類已經有了非常完善的解決方案。但該設定大大地簡化了甚至忽視了實際應用中長尾分布真正的難點,由此我們拓展了傳統長尾分類任務的設定和建模方式,引入了新的類內屬性偏見,並提出了更複合實際工業需求的廣義長尾分類設定和數據集以及一個簡單的基準算法。希望可以啟發後來的研究者提供更好的問題建模方式和解決方案。
Long-Tailed Classification系列文章:
https://zhuanlan.zhihu.com/p/153483585https://zhuanlan.zhihu.com/p/158638078
https://zhuanlan.zhihu.com/p/163186777
https://zhuanlan.zhihu.com/p/259569655
[1]https://arxiv.org/abs/2007.07314
[2]https://arxiv.org/abs/2207.09504
[3]https://github.com/Vanint/TADE-AgnosticLT
[4]https://arxiv.org/abs/2207.10150
[5]https://github.com/genp/cocottributes
[6]https://github.com/BeierZhu/xERM
[7]https://arxiv.org/abs/1910.09217
[8]https://ydwen.github.io/papers/WenECCV16.pdf
[9]https://arxiv.org/abs/2207.13378
[10]https://arxiv.org/abs/1907.02893

如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋樑,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。
PaperWeekly 鼓勵高校實驗室或個人,在我們的平台上分享各類優質內容,可以是最新論文解讀,也可以是學術熱點剖析、科研心得或競賽經驗講解等。我們的目的只有一個,讓知識真正流動起來。
📝稿件基本要求:
• 文章確係個人原創作品,未曾在公開渠道發表,如為其他平台已發表或待發表的文章,請明確標註
• 稿件建議以markdown格式撰寫,文中配圖以附件形式發送,要求圖片清晰,無版權問題
• PaperWeekly 尊重原作者署名權,並將為每篇被採納的原創首發稿件,提供業內具有競爭力稿酬,具體依據文章閱讀量和文章質量階梯制結算
📬投稿通道:
• 投稿郵箱:hr@paperweekly.site
• 來稿請備註即時聯繫方式(微信),以便我們在稿件選用的第一時間聯繫作者
• 您也可以直接添加小編微信(pwbot02)快速投稿,備註:姓名-投稿

△長按添加PaperWeekly小編
🔍
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
