当前位置: 首页 > news >正文

论文阅读 (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+W1x)),(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,iRd,f(x;Wfull)=bL+WLhk,i。为了简便,后面的分析将不包含偏置项。然后logit表示为 z k , i = W L h k , i z_{k,i}=W_Lh_{k,i} zk,i=WLhk,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=1NPtr。首先在训练集上训练模型,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 hFhkWFwk ,(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=Kn1k=1Ki=1n(hk,ihk)(hk,ihk),以及 Σ 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=K1k=1K(hkh)(hkh)

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=1Kexp(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=1Ki=1nhk,iCk2,(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=1Ki=1n(1pki)γ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。

相关文章:

  • 多模态——使用stable-video-diffusion将图片生成视频
  • SSM家具个性定制管理系统开发mysql数据库web结构java编程计算机网页源码eclipse项目
  • 动态规划经典例题leetcode思路代码详解
  • Oracle-客户端连接报错ORA-12545问题
  • Unity UGUI的自动布局-LayoutGroup(水平布局)组件
  • 深入了解Java中SQL优化的关键技巧与实践
  • 【迅搜03】全文检索、文档、倒排索引与分词
  • ZKP11.4 Use CI to instantiate Fiat-Shamir
  • 麒麟linux离线安装dotnet core
  • 第十九章 解读利用pytorch可视化特征图以及卷积核参数(工具)
  • Jmeter全流程性能测试实战
  • Javascript每天一道算法题(十八)——矩阵置零-中等
  • 2023年微软开源八个人工智能项目
  • linux 开发板以太网通过Ubuntu上外网方法
  • 从书籍结构体中查找定价最高的书籍
  • JS 中的深拷贝与浅拷贝
  • 【comparator, comparable】小总结
  • golang中接口赋值与方法集
  • HTTP那些事
  • iOS编译提示和导航提示
  • jquery ajax学习笔记
  • Laravel5.4 Queues队列学习
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • node.js
  • React as a UI Runtime(五、列表)
  • Sass 快速入门教程
  • Spring-boot 启动时碰到的错误
  • 从零开始在ubuntu上搭建node开发环境
  • 解决iview多表头动态更改列元素发生的错误
  • 删除表内多余的重复数据
  • 使用agvtool更改app version/build
  • 小程序开发之路(一)
  • 一些css基础学习笔记
  • 移动端唤起键盘时取消position:fixed定位
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • 我们雇佣了一只大猴子...
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (五)网络优化与超参数选择--九五小庞
  • (转载)(官方)UE4--图像编程----着色器开发
  • ..回顾17,展望18
  • .form文件_SSM框架文件上传篇
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .NET 分布式技术比较
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢?
  • .net对接阿里云CSB服务
  • .NET企业级应用架构设计系列之应用服务器
  • .NET应用架构设计:原则、模式与实践 目录预览
  • @configuration注解_2w字长文给你讲透了配置类为什么要添加 @Configuration注解
  • @在php中起什么作用?