【论文精读】Detecting Out-of-Distribution Examples with Gram Matrices 使用Gram矩阵检测分布外实例

文章目录

  • 一、文章概览
    • (一)Gram矩阵
      • 1、Gram(格朗姆)矩阵的定义
      • 2、Gram矩阵计算特征表示
      • 3、风格迁移中的Gram矩阵
    • (二)ood检测
    • (三)核心思路:扩展 Gram 矩阵以进行分布外检测
    • (四)研究成果
  • 二、模型细节
    • (一)符号定义
    • (二)Gram 矩阵和高阶 Gram 矩阵
    • (三)预处理
    • (四)计算分层偏差
    • (五)测试图像的总偏差
    • (六)阈值
    • (七)计算复杂度
    • (八)与 Mahalanobis 检测的关系
  • 三、实验
    • (一)实验配置
    • (二)实验结果
    • (三)消融实验
  • 四、局限性和未来的工作
    • (一)近分布异常值
    • (二)改进的 δl
    • (三)隐式置信度预测


一、文章概览

(一)Gram矩阵

1、Gram(格朗姆)矩阵的定义

n维欧式空间中任意k个向量之间两两的内积所组成的矩阵,称为这k个向量的格拉姆矩阵(Gram matrix)。它的行列式则称为Gram(格朗姆)行列式。
在这里插入图片描述
Gram矩阵是两两向量的内积组成,所以Gram矩阵可以反映出该组向量中各个向量之间的某种关系。

2、Gram矩阵计算特征表示

  • 输入图像的feature map为[ ch, h, w]。
  • 经过flatten(即是将h*w进行平铺成一维向量)和矩阵转置操作,可以变形为[ ch, h*w]和[ h*w, ch]的矩阵。
  • 再对两个作内积得到Gram Matrices。 (蓝色条表示每个通道flatten后特征点,最后得到 [ch *ch ]的G矩阵):

在这里插入图片描述
在feature map中,每一个数字都来自于一个特定滤波器在特定位置的卷积,因此每个数字就代表一个特征的强度,Gram矩阵中的元素表示了两两特征之间的相关性,哪两个特征是同时出现的,哪两个是此消彼长的等等,对角线上的元素就体现了每个特征在图像中出现的量。

3、风格迁移中的Gram矩阵

Gram矩阵实际上是矩阵的内积运算,在风格迁移算法中,其计算的是feature map之间的偏心协方差(即没有减去均值的协方差矩阵)。在feature map 包含着图像的特征,每个数字表示特征的强度,Gram矩阵代表着特征之间的相关性,因此,Gram矩阵可以用来表示图像的风格,要度量两个图像风格的差异,只需比较他们Gram Matrix的差异即可。

深度学习中经典的风格迁移大体流程是:

  • 准备基准图像和风格图像;
  • 使用深层网络分别提取基准图像(加白噪声)和风格图像的特征向量(或者说是特征图feature map);
  • 分别计算两个图像的特征向量的Gram矩阵,以两个图像的Gram矩阵的差异最小化为优化目标,不断调整基准图像,使风格不断接近目标风格图像。

(二)ood检测

ood:标记不包含训练分布中建模的任何类的测试示例。

之前旨在改进 OOD 检测的工作可以大致分为几个主题:

  • 贝叶斯神经网络
  • 使用带有 OOD 示例的任何预先训练的 softmax 深度神经网络
  • 替代训练策略
  • 生成模型

(三)核心思路:扩展 Gram 矩阵以进行分布外检测

通过联合考虑输出层分配的类和中间层的活动模式来识别分布外的示例。 例如,如果图像被预测为狗,但中间活动模式在某种程度上与网络在训练期间看到的其他狗图像的活动模式不同,那么这就是 OOD 示例的有力指标。这有效地使我们能够检测网络做出的预测与其到达该预测的路径之间的不一致。

使用Gram矩阵描述中间特征表示。 为了描述激活路径,我们需要描述中间特征表示,并且作为描述这些表示的代理,我们使用格拉姆矩阵,因为它们不仅描述各个通道的激活,还总结通道之间的成对相互作用。另外,通过简单地将每个值与其在训练数据上观察到的各自范围进行比较,就可以识别出 Gram 矩阵中的异常情况。

(四)研究成果

通过 Gram 矩阵表征活动模式并识别 Gram 矩阵值中的异常可以产生较高的 OOD 检测率。

这个方法的优势在于:

  • 通过简单地将每个值与其在训练数据上观察到的各自范围进行比较,就可以识别出 Gram 矩阵中的异常情况。
  • 可以与任何预先训练的 softmax 分类器一起使用,既不需要访问 OOD 数据来微调超参数,也不需要访问 OOD 数据来推断参数。
  • 我们凭经验证明了跨各种架构和视觉数据集的适用性,并且对于检测远不分布示例的重要且令人惊讶的艰巨任务,它通常表现优于或等于最先进的 OOD 检测方法(包括那些假设可以访问 OOD 示例)。

二、模型细节

一种不需要访问任何 OOD 示例、不引入需要调整的超参数并且跨架构工作的方法。

Gram 矩阵可用于计算成对特征相关性,并且通常在 DNN 中用于编码纹理和图案等风格属性(Gatys 等人,2016)。我们扩展这些矩阵,如下所述,然后使用它们来计算网络多层特征相关性的类条件边界。从预先训练的网络开始,我们仅在训练集上计算这些边界,然后在测试时使用它们来有效地区分分布内样本和分布外样本。与其他 SOTA 算法不同,我们不需要“查看”任何分布外的样本来调整任何参数;唯一需要调整的是归一化因子,我们使用(分布内)测试集的随机选择的验证分区来计算该因子。

(一)符号定义

考虑的深度卷积网络有 L L L 层,第 l l l 层有 n l n_l nl 个通道,考虑 ∑ 1 < = l < = L n l ∗ ( n l + 1 ) 2 \sum_{1<=l<=L}\frac{n_l ∗(n_l +1)}{2} 1<=l<=L2nl(nl+1) 对特征图之间的特征共现。

  • F l ( D ) F_l(D) Fl(D):输入图像D的第l层特征图,存储在维度为 n l × p l n_l × p_l nl×pl 的矩阵中,其中 n l n_l nl 是第 l l l 层的通道数, p l p_l pl(每个通道的像素数)是特征图的高度乘以宽度。
  • D c , f ( D ) D_c , f (D) Dc,f(D): 输入图像 D 的预测类别
  • T r Tr Tr:所有训练示例的集合
  • V a Va Va:所有验证示例的集合。随机选择训练中未使用的 10% 的示例作为验证示例。

所有测试示例的集合与平常一样与 Tr 和 Va 不相交。并且假设只有测试集可能包含分布外示例。

(二)Gram 矩阵和高阶 Gram 矩阵

计算第 l l l层活动的Gram 矩阵d:( F l F_l Fl是之前定义的 n l ​​ × p l n_l ​​× p_l nl​​×pl 矩阵。) G l = F l F l T G_l=F_lF_l^T Gl=FlFlT
计算具有更突出的特征图激活的高阶Gram 矩阵:
G l p = ( F l p F l p T ) 1 p G_l^p=(F_l^p{F_l^p}^T)^{\frac{1}{p}} Glp=(FlpFlpT)p1

(三)预处理

预处理计算特定于类别的相关性的最小值和最大值:
在这里插入图片描述

(四)计算分层偏差

给定 NS 特征相关性的特定于类的最小值和最大值,我们可以计算测试样本与训练时看到的图像相对于每一层的偏差。为了考虑值的范围,我们将偏差计算为相对于特征共现的最大值或最小值的百分比变化;观察到的相关值与训练期间观察到的最小和最大相关值的偏差可以计算为:
在这里插入图片描述
测试图像相对于给定层 l l l的偏差是相对于每个 Σ p ∈ P 1 2 n l ( n l + 1 ) Σ_{p∈P}\frac{1}{2}n_l(n_l + 1) ΣpP21nl(nl+1) 相关值的偏差总和:
在这里插入图片描述

(五)测试图像的总偏差

测试图像的总偏差通过取分层偏差的总和来计算。然而,层向偏差的规模随着每一层的变化而变化,具体取决于层中的通道数、每个通道的像素数以及层中包含的语义信息。因此,我们将偏差归一化。
在这里插入图片描述
此外,我们可以通过将上述项除以 MSP 来考虑最大 softmax 概率 (MSP)。在某些情况下,这会略微提高检测率。

(六)阈值

作为标准,用于区分分布外数据和分布内数据的阈值 τ 计算为测试数据总偏差的第 95 个百分位数 (Δ(D) )。换句话说,计算阈值使得95%的测试样例的偏差小于阈值τ;基于阈值的判别器为:
在这里插入图片描述

(七)计算复杂度

对于单个示例,提取上对角线元素需要 O ( Σ l n l ( n l + 1 ) 2 ) O( Σ_l \frac{n_l (n_l +1)}{2}) O(Σl2nl(nl+1)) 。因此,偏差的预处理和测试时间计算都是通道数量的二次方。为了减少计算时间并使其与通道数量呈线性关系,我们实际上可以基于行总和而不是单个元素来计算偏差。

(八)与 Mahalanobis 检测的关系

共同点:两种算法都根据类条件分层偏差计算总偏差:
在这里插入图片描述

区别:

  • Mahalanobis 算法使用通道均值作为分层激活 Fl 的描述,我们使用高阶 Gram 矩阵作为 Fl 的(更紧密耦合)描述。
  • 计算缩放值和分层偏差的方式不同。

三、实验

(一)实验配置

  • 模型:DenseNet 和 ResNet
  • 数据集:各种计算机视觉基准数据集(例如:CIFAR-10、CIFAR-100、SVHN、TinyImageNet、LSUN 和 iSUN)
    • 在 CIFAR-10、CIFAR-100 数据集上训练的 ResNet34 和 DenseNet3 模型,分布外数据集为:TinyImagenet、LSUN 、SVHN和 iSUN。
    • 在 SVHN 数据集上训练的 ResNet34 和 DenseNet3 模型,分布外数据集为:TinyImagenet、LSUN 、CIFAR-10 和 iSUN。
  • 指标:
    • TNR@95TPR:当真阳性率 (TPR) 高达 95% 时,正确识别 OOD(负)示例的概率
    • 检测精度:区分分布内和分布外示例时在所有可能阈值上的最大可能分类精度。如果为分布内示例分配较高分数,即为: m a x τ 0.5 P i n ( f ( x ) ≥ τ ) + 0.5 P o u t ( f ( x ) < τ ) max_τ {0.5P_{in}(f (x) ≥ τ ) + 0.5P_{out}(f (x) < τ )} maxτ0.5Pin(f(x)τ)+0.5Pout(f(x)<τ);如果为分布内示例分配较高分数,即为: m a x τ 0.5 P i n ( f ( x ) ≤ τ ) + 0.5 P o u t ( f ( x ) > τ ) max_τ {0.5P_{in}(f (x) ≤τ ) + 0.5P_{out}(f (x)> τ )} maxτ0.5Pin(f(x)τ)+0.5Pout(f(x)>τ)
    • AUROC:TPR 与 FPR 图下面积的度量。例如,对于那些为分布内示例分配较高分数的方法,这测量了 OOD 示例比分布内示例分配较低分数的概率。

(二)实验结果

表中显示了模型架构和训练数据集的所有组合的 OOD 检测性能比较。 ODIN 的超参数以及 Mahalanobis 的超参数和参数是使用 OOD 数据集的随机样本进行调整的。

  • 在总共 32 种组合中,作者所提出的方法在其中 22 种中优于之前的竞争方法, 7 场比赛达到标准杆,其中 3 场比赛取得第二高成绩。
  • 如果使用 FGSM 对抗性示例而不是真实的 OOD 示例对 Mahalanobis 和 ODIN 算法的超参数和/或参数进行微调,则它们的性能会下降。
    在这里插入图片描述

(三)消融实验

  • Q1 如果考虑严格对角元素或严格非对角元素而不是完整的Gram格拉姆矩阵会怎样?
  • Q2 如果偏差是根据平均值而不是极值计算的,会发生什么?
  • Q3 如果我们在聚合时不对分层偏差进行归一化,会发生什么情况?

为了回答Q1-Q3,作者进行了12个实验:Q1的3个选择×Q2的2个选择×Q3的2个选择。研究结果发现,虽然没有一条规则是不被例外打破的,但我们提出的组合——即使用完整的 Gram 矩阵、使用最小/最大度量以及使用归一化,通常比我们尝试过的任何其他组合都更稳健。

在回答 Q4 和 Q5 时,我们考虑通过回答 Q1-Q3 确定的最稳健的设置。

  • Q4 哪些层表示最有用?

    • 较低级别的表示在区分分布内和分布外数据集方面提供了更多信息。
    • Cifar-100 的高级表示和低级表示之间的检测能力差异比 Cifar-10 更大。
      在这里插入图片描述
  • Q5 哪些阶的 Gram 矩阵最有用?

    • 高阶 Gram 矩阵在区分分布内和分布外方面提供更多信息
    • 忽略阶数大于 4 时的变化,我们发现 TNR @ 95TPR 随着阶数的增加而增加,最终饱和。
      在这里插入图片描述

四、局限性和未来的工作

(一)近分布异常值

近分布异常值与远分布异常值的区分: 遵循 Hendrycks 等人的惯例,CIFAR10 与 CIFAR100 任务可以被视为近分布异常值,其余任务视为远分布异常值。然而,近分布异常值和远分布异常值们之间的区别并没有明确定义。 “Near-OOD”往往隐含地用来指代那些与训练集非常相似的示例,如果不了解分布内示例的结构,就不可能检测到它们。

研究现状:

  • 传统上,OOD 检测算法是通过考虑远分布离群值来评估的。并且,由于提出一种通用算法来检测这些远离分布的例子一直具有挑战性,促使早期的论文对远离分布的例子的来源做出假设。
  • 检测近分布异常值的任务比检测远分布异常值更具挑战性。

本文的方法也是在检测远分布分类器,并且与几乎所有其他当前远 OOD 检测器一样,它对于近 OOD 示例表现不佳。

(二)改进的 δl

高阶 Gram 矩阵估计与改进的 δl 估计相结合,将来可能有助于获得更好的结果。比如说均值偏差在某些特定情况下会有优势:对于ResNet和DenseNet结构,考虑偏离均值可将SVHN vs CIFAR-10任务的TNR@TPR95提高到94%。

(三)隐式置信度预测

softmax 预测(使用 OE 训练时)和分层偏差包含互斥的信息,此外,使用经过异常值暴露训练的网络的度量与使用经过交叉熵损失训练的网络获得的结果相当。鉴于使用内部特征表示可靠地检测 OOD 示例而不对数据源做出任何假设的可行性已被证明,未来一个自然的研究问题是训练程序和/或网络架构的修改是否可以隐式产生对异常更敏感的可靠置信度估计在中间特征表示中。

参考:
格拉姆矩阵(Gram matrix)详细解读

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/794807.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024最新在线工具箱/ 站长IT工具箱/网站系统源码下载

2024最新在线工具箱/ 站长IT工具箱/网站系统源码下载- 更多详情及下载地址请访问https://a5.org.cn/a5_ziyuan/39525.html 转载请注明出处!

SketchUp Pro 2024 for mac 草图大师 专业的3D建模软件

SketchUp Pro 2024 for Mac是一款功能强大的三维建模软件&#xff0c;适用于Mac电脑。其简洁易用的界面和强大的工具集使得用户可以轻松创建复杂的3D模型。 软件下载&#xff1a;SketchUp Pro 2024 for mac v24.0.483 激活版下载 SketchUp Pro 2024 for Mac支持导入和导出多种文…

软件杯 深度学习乳腺癌分类

文章目录 1 前言2 前言3 数据集3.1 良性样本3.2 病变样本 4 开发环境5 代码实现5.1 实现流程5.2 部分代码实现5.2.1 导入库5.2.2 图像加载5.2.3 标记5.2.4 分组5.2.5 构建模型训练 6 分析指标6.1 精度&#xff0c;召回率和F1度量6.2 混淆矩阵 7 结果和结论8 最后 1 前言 &…

性能测试,python 内存分析工具

Memray是一个由彭博社开发的、开源内存剖析器&#xff1b;开源一个多月&#xff0c;已经收获了超8.4k的star&#xff0c;是名副其实的明星项目。今天我们就给大家来推荐这款python内存分析神器。 Memray可以跟踪python代码、本机扩展模块和python解释器本身中内存分配&#xf…

Revit模型进入虚幻引擎UE5教程

一、背景 小伙伴们是否有Revit进入虚幻引擎交互的需求呢&#xff1f; 二、实现功能 1.Revit进入虚幻UE5,包含模型属性&#xff0c;材质等 2.实现BIM构件点选&#xff0c;高亮&#xff0c;属性展示 3.实现BIM模型分层显示&#xff0c;爆炸等效果 三、教程地址 教程&#x…

51单片机入门_江协科技_21~22_OB记录的笔记

21. LED点阵屏 21.1. LED点阵屏介绍 •LED点阵屏由若干个独立的LED组成&#xff0c;LED以矩阵的形式排列&#xff0c;以灯珠亮灭来显示文字、图片、视频等。LED点阵屏广泛应用于各种公共场合&#xff0c;如汽车报站器、广告屏以及公告牌等 •LED点阵屏分类 按颜色&#xff1a;单…

Leetcode 64. 最小路径和

心路历程&#xff1a; 第一反应像是一个回溯问题&#xff0c;但是看到题目中要求最值&#xff0c;大概率是一道DP问题。并且这里面的递推关系也很明显。 这里面边界条件可以有多种处理方法。 解法&#xff1a;动态规划 class Solution:def minPathSum(self, grid: List[List…

六、企业级架构缓存篇之memcached

一、memcached概述 1、网站架构优化流程&#xff1a; LNMP架构中网站应用访问流程&#xff1a; 浏览器 (app) → web 服务器 → 后端服务 (php) → 数据库 (mysql) 访问流程越多&#xff0c;访问速度越慢&#xff0c;出现问题的几率也越大。 网站访问流程优化思路&#xff1…

【机器学习】如何通过群体智慧解决机器学习的挑战“

机器学习的发展日新月异&#xff0c;但其成功实施的关键之一仍然是获取高质量的、标注良好的数据集。在这篇文章中&#xff0c;我们将探讨如何通过群体智慧来构建和改善机器学习的数据集&#xff0c;尤其是通过reCAPTCHA和带有目的的游戏&#xff08;Games with a Purpose, GWA…

比nestjs更优雅的ts控制反转策略-依赖查找

一、Cabloy5.0内测预告 Cabloy5.0采用TS对整个全栈框架进行了脱胎换骨般的大重构&#xff0c;并且提供了更加优雅的ts控制反转策略&#xff0c;让我们的业务开发更加快捷顺畅 1. 新旧技术栈对比&#xff1a; 后端前端旧版js、egg2.0、mysqljs、vue2、framework7新版ts、egg3…

Web大并发集群部署之集群介绍

一、传统web访问模型 传统web访问模型完成一次请求的步骤 1&#xff09;用户发起请求 2&#xff09;服务器接受请求 3&#xff09;服务器处理请求&#xff08;压力最大&#xff09; 4&#xff09;服务器响应请求 传统模型缺点 单点故障&#xff1b; 单台服务器资源有限&…

Prometheus+grafana环境搭建MongoDB(docker+二进制两种方式安装)(五)

由于所有组件写一篇幅过长&#xff0c;所以每个组件分一篇方便查看&#xff0c;前四篇mongodb的exporter坑也挺多总结一下各种安装方式&#xff0c;方便后续考古。 Prometheusgrafana环境搭建方法及流程两种方式(docker和源码包)(一)-CSDN博客 Prometheusgrafana环境搭建rabb…

【关于窗口移动求和的两种计算方法】

窗口移动计算方法 例子方法1方法2运行结果: 例子 在很多算法中都会涉及到窗口滑动&#xff0c;比如基于新息序列更新的自适应卡尔曼滤波器算法中便会使用到。 已知一个数列&#xff1a;OCV [1;2;3;4;5;6;7;8;9;10;11;12;13;14;15]&#xff0c;定义窗口长度为5&#xff0c;每次…

小林coding图解计算机网络|TCP篇06|如何理解TCP面向字节流协议、为什么UDP是面向报文的协议、如何解决TCP的粘包问题?

小林coding网站通道&#xff1a;入口 本篇文章摘抄应付面试的重点内容&#xff0c;详细内容还请移步&#xff1a;小林coding网站通道 文章目录 如何理解UDP 是面向报文的协议如何理解字节流如何解决粘包固定长度的消息 特殊字符作为边界自定义消息结构 如何理解UDP 是面向报文的…

Hadoop-入门

资料来源&#xff1a;尚硅谷-Hadoop 一、Hadoop 概述 1.1 Hadoop 是什么 1&#xff09;Hadoop是一个由Apache基金会所开发的分布式系统基础架构。 2&#xff09;主要解决&#xff1a;海量数据的存储和海量数据的分析计算问题。 3&#xff09;广义上来说&#xff0c;Hadoop…

深入浅出 -- 系统架构之分布式常见理论概念

随着计算机科学和互联网的发展&#xff0c;分布式场景变得越来越常见&#xff0c;能否处理好分布式场景下的问题&#xff0c;成为衡量一个工程师是否合格的标准。本文我们介绍下分布式系统相关的理论知识&#xff0c;这些理论是我们理解和处理分布式问题的基础。 CAP理论 CAP…

深入理解选择排序:算法原理、Java实现与性能优劣

算法学习的重要性 在程序员的世界里&#xff0c;算法就如同一座桥梁&#xff0c;连接着问题与解决方案&#xff0c;是实现优秀程序的关键。 掌握算法&#xff0c;就能够在面对各种问题时&#xff0c;找到最合适的解决方法&#xff0c;以最少的时间和空间&#xff0c;实现最优的…

Android数据存储技术

一、文件存储 <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:orientation"vertical"android:layout_width"match_parent"android:layout_height"match_parent" ><EditTextandroid:id&qu…

mac 切换 jdk

查看 mac 上都有哪些版本 /usr/libexec/java_home -V看准版本切换 按前缀切换 比如 export JAVA_HOME/usr/libexec/java_home -v 1.8这样会随机一个 1.8 的 如果想再确定一个比如 openjdk export JAVA_HOME/usr/libexec/java_home -v 1.8.0_292这个方式是临时的&#xff0c…

【力扣刷题日记】1421.净现值查询

前言 练习sql语句&#xff0c;所有题目来自于力扣&#xff08;https://leetcode.cn/problemset/database/&#xff09;的免费数据库练习题。 今日题目&#xff1a; 1421.净现值查询 表&#xff1a;NPV 列名类型idintyearintnpvint (id, year) 是该表主键(具有唯一值的列的…