論文閱讀 (106):Decoupling maxlogit for out-of-distribution detection (2023 CVPR)

文章目錄

  • 1 概述
    • 1.1 要點
    • 1.2 代碼
    • 1.3 引用
  • 2 預備知識
  • 3 方法
    • 3.1 MaxLogit
    • 3.2 改進MaxCosine和MaxNorm
    • 3.3 DML+

1 概述

1.1 要點

題目:解耦最大logit分布外檢測 (Decoupling maxlogit for out-of-distribution detection)

方法

  1. 提出了一種心機基于logit的OOD方法,解耦最大邏輯 (DML);
  2. 考慮硬樣本和緊湊特征空間,提出改進后的DML+;
  3. 解耦最大logit (MaxLogit) 為高效的MaxCosine和保證性能的MaxNorm

1.2 代碼

暫無。

1.3 引用

@inproceedings{Zhang:2023:33883397,
author		=	{Zhang, Zi Han and Xiang, Xiang},
title		=	{Decoupling {MaxLogit} for out-of-distribution detection},
booktitle	=	{{CVPR}},
pages		=	{3388--3397},
year		=	{2023},
}

2 預備知識

已知一個 K K K類分類器:
f ( x , W full ) = b L + W L δ ( ? δ ( b 1 + W 1 x ) ? ) , (1) \tag{1} f(x,W_\text{full})=b_L+W_L\delta(\cdots\delta(b_1+W_1x)\cdots), f(x,Wfull?)=bL?+WL?δ(?δ(b1?+W1?x)?),(1)其中 W W W表示權重、 b b b表示偏置,以及 δ ( ? ) \delta(\cdot) δ(?)表示非線性激活函數。給定屬于第 k k k類的數據 x k , i x_{k,i} xk,i?,定義最后一層的特征 h k , i ∈ R d , f ( x ; W full ) = b L + W L h k , i h_{k,i}\in\mathbb{R}^d,f(x;W_\text{full})=b_L+W_Lh_{k,i} hk,i?Rd,f(x;Wfull?)=bL?+WL?hk,i?。為了簡便,后面的分析將不包含偏置項。然后logit表示為 z k , i = W L h k , i z_{k,i}=W_Lh_{k,i} zk,i?=WL?hk,i?

給定訓練集 D t r = { ( x k i , k ) } i = 1 N ~ P t r \mathcal{D}_{tr}=\{(x_{k_i},k)\}_{i=1}^N\sim\mathcal{P}_{tr} Dtr?={(xki??,k)}i=1N?Ptr?。首先在訓練集上訓練模型,OOD檢測的目的是決定給定的樣本來自于 P t r \mathcal{P}_{tr} Ptr?還是其它數據分布。因此,OOD檢測的兩個關鍵問題是:

  1. 訓練一個對OOD數據健壯的數據,即便于區分ID和OOD數據;
  2. 設計一個評分函數,使得得分低的是OOD數據;

兩個特征坍塌指標定義如下:

  1. 類內特征收斂 (WFC):
    WFC : = trace ( Σ W Σ B ? ) K , (2) \tag{2} \text{WFC}:=\frac{\text{trace}(\Sigma_W\Sigma_B^\dag)}{K}, WFC:=Ktrace(ΣW?ΣB??)?,(2)
  2. 類平均特征收斂 (CFC):
    CFC : = ∑ k = 1 K ∥ h  ̄ k ∥ h ∥ F ? w k ∥ W ∥ F ∥ , (3) \tag{3} \text{CFC}:=\sum_{k=1}^K\left\| \frac{\overline{h}_k}{\|h\|_F} -\frac{w_k}{\|W\|_F} \right\|, CFC:=k=1K? ?hF?hk???WF?wk?? ?,(3)其中 ? \dag ?表示偽逆, h h h是所有樣本的特征矩陣, h  ̄ k \overline{h}_k hk? h  ̄ \overline{h} h分別表示第 k k k類和所有特征的平均值, Σ W = 1 K n ∑ k = 1 K ∑ i = 1 n ( h k , i ? h  ̄ k ) ( h k , i ? h  ̄ k ) ? \Sigma_W=\frac{1}{K_n}\sum_{k=1}^K\sum_{i=1}^n(h_{k,i}-\overline{h}_k)(h_{k,i}-\overline{h}_k)^\top ΣW?=Kn?1?k=1K?i=1n?(hk,i??hk?)(hk,i??hk?)?,以及 Σ B = 1 K ∑ k = 1 K ( h  ̄ k ? h  ̄ ) ( h k ? h  ̄ ) ? \Sigma_B=\frac{1}{K}\sum_{k=1}^K(\overline{h}_{k}-\overline{h})(h_{k}-\overline{h})^\top ΣB?=K1?k=1K?(hk??h)(hk??h)?

3 方法

3.1 MaxLogit

一個樣本的MSP得分是其最大softmax值: max ? ( Softmax ( z k , i ) ) \max(\text{Softmax}(z_{k,i})) max(Softmax(zk,i?))。MaxLogit則取樣本的最大logit值: max ? ( z k , i ) \max(z_{k,i}) max(zk,i?)

MaxLogit在很多數據集上優于MSP。評分函數上的單調遞增函數變化,例如 log ? \log log exp ? \exp exp,不會影響OOD檢測性能。因此,MSP和MaxLogit唯一的差別是求和項 ∑ j = 1 K exp ? ( z i j ) \sum_{j=1}^K\exp(z_{ij}) j=1K?exp(zij?)。當模型收斂后,該項主要受特征范數影響。因此,MSP和MaxLogit的主要區別集中在特征范數。這啟發我們研究cosine相似性和特征范數如何影響OOD檢測性能。

本文將MaxLogit解耦為兩個部分:
MaxCosine : max ? ( cos ? < h k , i , w j > ) j = 1 K , (4) \tag{4} \text{MaxCosine}:\max\left( \cos<h_{k,i},w_j> \right)_{j=1}^K, MaxCosine:max(cos<hk,i?,wj?>)j=1K?,(4) MaxNorm : ∥ h k , i ∥ . (5) \tag{5} \text{MaxNorm}:\| h_{k,i} \|. MaxNorm:hk,i?∥.(5)MaxLogit得分等價于MaxCosine和MaxNorm得分的乘積。由于應用遞增函數變換不會影響OOD檢測的性能,因此MaxLogit可以用兩個獨立的部分來描述: log ? ( max ? ( z k , i ) ) = log ? ( max ? ( cos ? < h k , i , w j > ) ) + log ? ∣ h k . i ∣ + log ? ∣ w ∣ \log(\max(z_{k,i}))=\log(\max(\cos<h_{k,i},w_j>))+\log|h_{k.i}|+\log|w| log(max(zk,i?))=log(max(cos<hk,i?,wj?>))+loghk.i?+logw,其是MaxCosine和MaxNorm的耦合項。注意對于分類器權重 w j w_j wj?,其在模型收斂后為常數,因此用常量|w|來代替。

基于以上結果,提出了解耦MaxLogit (DML):
DML = λ MaxCosine + MaxNorm , (6) \tag{6} \text{DML}=\lambda\text{MaxCosine}+\text{MaxNorm}, DML=λMaxCosine+MaxNorm,(6)其中 λ \lambda λ是超參數。

3.2 改進MaxCosine和MaxNorm

盡管MaxNorm使得DML優于MaxCosine,但由于MaxNorm的性能較低,因此改進幅度很小。通過實驗發現:

  1. Cosine分類器可以引導更好的MaxCosine、MaxNorm,以及基于logit的方法;
  2. 低WFC引導更好的MaxNorm,其通過Center損失獲取:
    L c e n t e r = ∑ k = 1 K ∑ i = 1 n ∥ h k , i ? C k ∥ 2 , (7) \tag{7} \mathcal{L}_{center}=\sum_{k=1}^K\sum_{i=1}^n\|h_{k,i}-\mathcal{C}_k\|_2, Lcenter?=k=1K?i=1n?hk,i??Ck?2?,(7)其中 C k \mathcal{C}_k Ck?是第 k k k類的平均特征;
  3. 低CFC引導更好的MaxCosine,其通過Focal損失獲取:
    L f o c a l = ? ∑ k = 1 K ∑ i = 1 n ( 1 ? p k i ) γ log ? ( p k , i ) , (8) \tag{8} \mathcal{L}_{focal}=-\sum_{k=1}^K\sum_{i=1}^n(1-p_{k_i})^\gamma\log(p_{k,i}), Lfocal?=?k=1K?i=1n?(1?pki??)γlog(pk,i?),(8)其中 γ \gamma γ是超參數,以及 p k , i p_{k,i} pk,i?是sofrmax得分。

3.3 DML+

為了進一步提升,一個健壯的方法是:

  1. 利用Focal損失訓練cosine模型,并獲得MaxCosine;
  2. 利用Center損失訓練cosine模型,并獲得MaxNorm;

這樣的方法被命名為DML+:
D M L + = λ MaxCosine F + MaxNorm C , DML+=\lambda\text{MaxCosine}_F+\text{MaxNorm}_C, DML+=λMaxCosineF?+MaxNormC?,其中 MaxCosine F \text{MaxCosine}_F MaxCosineF?表示使用Focal損失訓練模型, MaxNorm C \text{MaxNorm}_C MaxNormC?表示使用Center損失訓練模型,其分別被記為 M C F MCF MCF和MNC。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/165378.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/165378.shtml
英文地址,請注明出處:http://en.pswp.cn/news/165378.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

多級緩存快速上手

哈嘍~大家好&#xff0c;這篇來看看多級緩存。 &#x1f947;個人主頁&#xff1a;個人主頁????? &#x1f948; 系列專欄&#xff1a;【微服務】 &#x1f949;與這篇相關的文章&#xff1a; JAVA進程和線程JAVA進程和線程-CSDN博客Http…

不做機器視覺工程師,轉行,轉崗的建議與想法

正所謂外行看熱鬧&#xff0c;內行看門道。提前咨詢前輩們&#xff0c;多問問&#xff0c;多看看。要做就做&#xff0c;一定要提前做好防范。 無論你是要轉行或者是轉崗&#xff0c;看你有沒有本錢和試錯成本 有些人&#xff0c;家庭好&#xff0c;可以一直去試錯和從頭再來。…

無線WiFi安全滲透與攻防(國外篇):使用 Aircrack-ng 破解 WEP 密碼

使用 Aircrack-ng 破解 WEP 密碼 使用 Aircrack-ng 破解 WEP 密碼一. 用 Aircrack-ng 破解 WEP 密碼 - 背景知識網卡與網卡芯片WEP 加密協議WEP 所使用的身份認證協議二. 使用 Aircrack-ng 破解 WEP 密碼 - 破解原理破解機理三. 使用 Aircrack-ng 破解 WEP 密碼 - aircrack-ng …

學習.NET驗證模塊FluentValidation的基本用法(續1:其它常見用法)

FluentValidation模塊支持鏈式驗證方法調用&#xff0c;也就是說&#xff0c;除了 RuleFor(r > r.UserName).NotEmpty()調用方式之外&#xff0c;還可以將對單個屬性的多種驗證函數以鏈式調用方式串接起來&#xff0c;比如UserName屬性不能為空&#xff0c;長度在5~10之間&a…

__attribute__((constructor))用法解析

__attribute__((constructor))是GCC和兼容的編譯器中的一個特性&#xff0c;用于指示編譯器將一個函數標記為在程序啟動時自動執行的初始化函數。 同樣的還有__attribute__((destructor))在main()函數后調用。 當你在一個函數聲明或定義前加上__attribute__((constructor))屬…

淺談 Guava 中的 ImmutableMap.of 方法的坑

作者&#xff1a;明明如月學長&#xff0c; CSDN 博客專家&#xff0c;大廠高級 Java 工程師&#xff0c;《性能優化方法論》作者、《解鎖大廠思維&#xff1a;剖析《阿里巴巴Java開發手冊》》、《再學經典&#xff1a;《EffectiveJava》獨家解析》專欄作者。 熱門文章推薦&…

vue項目下.env.development環境變量配置文件

.env.development 文件是一個用于開發環境配置的文件。在許多應用程序中&#xff0c;開發環境和生產環境具有不同的配置需求。.env.development 文件允許你在開發環境中定義特定的環境變量和配置選項。 一般來說&#xff0c;.env.development 文件用于存儲開發環境相關的配置信…

國自然項目基金撰寫的隱藏技巧、范例分析及提交前的自我審查

目錄 一、基金項目申請要求、重點及項目介紹 二、基金的撰寫技巧 三、基金撰寫的隱藏技巧 四、范例分析及提交前的自我審查 更多應用 基金項目申請需要進行跨學科的技術融合&#xff0c;申請人需要與不同領域結合&#xff0c;形成多學科交叉的研究。基金項目申請在新時期更…

由紅黑樹引出的HashMap擴容機制的思考

紅黑樹是什么&#xff1f; 三大特點&#xff1a; 根節點是黑色&#xff0c;葉節點是不存儲數據的黑色空節點 任何相鄰的兩個節點不能同時為紅色 任意節點到其可到達的節點間包含相同數量的黑色節點 聯想&#xff1a;Java HashMap底層紅黑樹原理 HashMap基于哈希表Map接口實…

快速掌握Pyqt5的三種主窗口

PyQt5是一個強大的跨平臺GUI框架&#xff0c;它提供了多種不同類型的主窗口類&#xff0c;以滿足不同的應用需求。下面是PyQt5中最常見的幾種主窗口類型及其創建方式的簡介&#xff1a; 1. QMainWindow QMainWindow是用于創建具有菜單欄、工具欄、狀態欄和中心窗口部件&#…

內存池 示例一

內存池是一種管理內存分配和釋放的技術&#xff0c;用于優化內存的使用效率。它通過預先分配一塊內存區域&#xff0c;并將其劃分為多個較小的塊&#xff08;內存塊池&#xff09;&#xff0c;然后按需分配這些內存塊來減少內存碎片化和頻繁的系統調用。這些內存塊可以是相同大…

Centos7.9配置nfs共享及rsync同步

客戶需求對oracle數據庫做一個跨機房的備份&#xff0c;原環境已做rman備份和每天expdp全庫導出&#xff0c;遠端只有虛擬化環境&#xff0c;可提供一個虛擬機&#xff0c;2個機房間網絡互通。 首先配置nfs服務端 查看操作系統版本 [rootnas199 ~]# more /etc/redhat-relea…

Python面經【1】

一、協程的相關概念 協程&#xff08;又稱微線程&#xff09;運行在線程之上&#xff0c;更加輕量級&#xff0c;協程并沒有增加線程總數&#xff0c;只是在線程的基礎上通過分時復用的方式運行多個協程&#xff0c;大大提高工程效率。 協程的特點&#xff1a; 輕量級&#…

WordPress站點屏蔽過濾垃圾評論教程(Akismet反垃圾評論插件)

前段時間我的WordPress站點經常收到垃圾評論的轟炸&#xff0c;嚴重時一天會收到幾十條垃圾評論。我這個小破站一沒啥流量&#xff0c;二又不盈利&#xff0c;實在是不太理解為啥有人要這么執著地浪費資源在上面。 Akismet反垃圾評論插件 其實用了 Akismet 反垃圾評論插件后&a…

快速掌握Pyqt5的6種按鈕

在PyQt5中&#xff0c;按鈕是構建用戶界面的基本元素之一&#xff0c;用于執行命令、啟動功能或觸發事件。PyQt5提供了多種類型的按鈕&#xff0c;每種都適用于不同的場景和需求。 1. QPushButton QPushButton 是最常用的按鈕類型&#xff0c;適用于大多數情況&#xff0c;如…

ARCore:在Android上構建令人驚嘆的增強現實體驗

ARCore&#xff1a;在Android上構建令人驚嘆的增強現實體驗 一、 AR 介紹1.1 AR技術簡介1.2 AR技術原理1.3 AR技術應用領域 二、Google的增強現實平臺ARCore2.1 ARCore簡介2.2 ARCore API介紹2.3 ARCore API使用示例 三、總結 一、 AR 介紹 增強現實 Augmented Reality&#x…

【算法-字符串2】替換空格 + 反轉單詞

今天&#xff0c;帶來字符串相關算法的講解。文中不足錯漏之處望請斧正&#xff01; 理論基礎點這里 1. 替換空格 題目描述&#xff1a;請實現一個函數&#xff0c;把字符串 s 中的每個空格替換成"%20"。 來源&#xff1a;力扣&#xff08;LeetCode&#xff09; 難…

Lettuce使用詳解

簡介特點連接池連接池特點連接池管理連接池優勢連接池配置參數 監控常用監控工具通過JMX監控通過Prometheus監控 代碼示例拓展springboot中通過jmx上報到Prometheus代碼示例更多Redis相關內容 簡介 Lettuce 是一個高級的、線程安全的 Redis 客戶端&#xff0c;用于與 Redis 數…

深度學習基礎概念

1. 神經網絡基礎 神經元&#xff08;Neuron&#xff09;&#xff1a; 了解神經網絡的基本組成單元。激活函數&#xff08;Activation Function&#xff09;&#xff1a; 學習常見的激活函數&#xff0c;如Sigmoid、ReLU等&#xff0c;以及它們在神經網絡中的作用。前饋神經網絡…

An issue was found when checking AAR metadata

一、報錯信息 An issue was found when checking AAR metadata:1. Dependency androidx.activity:activity:1.8.0 requires libraries and applications that depend on it to compile against version 34 or later of the Android APIs.:app is currently compiled against …