ICLR 2023 | 用于分布外泛化的拓扑感知鲁棒优化

image.png

论文链接:https://openreview.net/pdf?id=ylMq8MBnAp
代码链接:GitHub - joffery/TRO: The Pytorch implementation for "Topology-aware Robust Optimization for Out-of-Distribution Generalization" (ICLR 2023)

01. 研究背景

近年来,机器学习(ML)被广泛应用在高风险和安全关键型应用中。这类应用提出了前所未有的“分布外(OOD)泛化挑战”:ML模型不断接触到训练空间之外的未知分布。尽管在“内插”问题上取得了巨大的成功,但现代ML模型(如深度神经网络)在“外推”问题上非常薄弱;即使平均准确性很高的模型在面对罕见或未知分布时也可能发生灾难性失败。例如,针对美国2000年至2020年间所有89次重大洪水事件进行训练的洪水预测模型,会错误地对2021年的“飓风艾达”事件进行预测。如果不解决这个挑战,模型的应用场景及其相关风险将变得不清楚。

一种解决分布外泛化问题的有效方法是进行分布鲁棒优化(DRO)[1]。DRO通过构建一个“不确定性集合”以最小化潜在测试分布的“最坏”(worst-case)预期风险。这个不确定性集合通常被构造为一个围绕训练集的散度球。与最小化平均风险的方法(ERM)相比,DRO对来自虚假相关性、对抗攻击、子群体或自然变化等因素引起的“分布漂移”更具有鲁棒性[2]。

然而,构建一个能够真正近似未知分布的不确定性集合来是一个非常具有挑战性的任务。

一方面,为了对抗广泛的分布漂移,不确定性集合必须足够大,这增加了包含不可信分布(例如异常值)的风险,从而导致过于悲观的模型和低预测置信度[3]。

另一方面,最坏分布不一定是与未知分布真正相关的“有影响力的分布”;优化最坏分布而不是有影响力的分布会牺牲模型的鲁棒性。

02. 方法介绍

因为模型不可能泛化到任意的未知分布,我们假设数据分布的拓扑结构对构建真实的“不确定性集合”至关重要。更具体地说,我们提出了一种整合两个优化目标的拓扑感知鲁棒优化(TRO)方法:

  1. 拓扑学习:我们将数据分布建模为位于共同低维流形上的多个离散组,通过使用物理先验或测量分布之间的多尺度推土距离(EMD)来“探索”分布拓扑。

  2. 拓扑上的学习:然后,利用获得的分布拓扑来构建一个真实的不确定性集合,其中鲁棒优化将泛化风险限制在拓扑图中,而不是盲目地泛化到未知分布上。

image.png
图1 拓扑感知的鲁棒优化(TRO)概述

2.1 拓扑学习:探索分布拓扑

2.2 拓扑上的学习:利用拓扑进行鲁棒优化

03. 实验结果

我们在广泛的任务中对TRO进行了评估,包括分类、回归和语义分割。

我们将TRO与最先进的基准模型进行了OOD泛化性能的比较,并对TRO的关键组成部分进行了消融研究。

3.1 气温预测

image.png
图2 (左) TPT-48上 N →→ S泛化任务。(中) 基于物理的拓扑的分布中心度。(右)基于数据驱动的拓扑的分布中心度。TRO将“PA”识别为物理拓扑中影响力较大的分布;TRO将“NY”,“PA”和“MA”识别为数据驱动拓扑中影响力较大的分布。数据拓扑的均方误差低于物理拓扑。

数据集TPT-48[7] 包含了美国48个相邻州从2008年到2019年的月平均温度数据。

我们专注于回归任务,根据前6个月的温度预测接下来6个月的温度。我们考虑了两个泛化任务:

  1. E(24) →→ W(24):我们将24个东部州作为训练组,24个西部州作为测试组;

  2. N(24) →→ S(24):我们将24个北部州作为训练组,24个南部州作为测试组。

与最近的训练组相距一条边的测试组定义为Hop-1测试组,相距两条边的测试组定义为Hop-2测试组,其余组定义为Hop-3 测试组。

TPT-48数据集上的N(24) →→ S(24)的可视化结果如图 2 (左) 所示。

image.png
表1 E (24)  →→ W (24)和N (24)  →→ S (24)两个任务在TPT-48上的均方误差(MSE)。TRO(基于数据驱动的拓扑)在这两个任务中始终优于TRO(基于物理的拓扑),表明数据驱动的拓扑更准确地捕捉到了分布关系。

结果。我们在上表中展示了TPT-48的结果。

TRO在两个任务中均获得了最低的平均均方误差(MSE)。我们还报告了两个任务中Hop-1、Hop-2和Hop-3测试组的平均均方误差。尽管在N(24) →→ S(24)任务中,REx在Hop-1和Hop-2组上的误差最低,但在Hop-3组上的预测误差最高。

结果表明,REx在面对较大的分布漂移时可能会产生性能上的妥协。TRO在Hop-3组上表现出最佳性能,表明它在面对较大的分布漂移时具有强大的泛化能力。

3.2 洪水分割

image.png
图3 (左)Sen1Floods11 上的11个洪水事件的位置。我们将事件 “BOL” 用于测试,其他事件用于训练。(右) Sen1Floods11 上的基于数据驱动的分布拓扑。 (1)TRO将“IND” 和 “NGA” 识别为最具影响力的分布。 一个可能的解释是,“IND” 和 “NGA” 都是由于暴雨引起的,而暴雨是导致洪水的最常见灾害。 (2)TRO将“GHA”和“KHM”识别为影响力最小的分布。 一个可能的解释是,“GHA”和“KHM”都是由于边缘情况,如水坝破坏,而引起的。基于数据驱动的分布拓扑与领域知识一致,并有助于解释TRO的结果。

数据集Sen1Floods11[8] 是一个用于全球洪水映射的公共数据集。

该数据集提供了全球范围内的4,831个512 x 512的分辨率为10米的卫星图像,涵盖了11个不同的洪水事件,总共覆盖了120,406平方千米的区域。每个图像都附带有像素级的标签。11个洪水事件的位置如图 3(左)所示。

不同的洪水事件在边界条件、地形和其他潜在因素上存在变化,对现有模型的可靠性和可解释性提出了显著的OOD挑战。

按照[8]的约定,事件“BOL”被保留作为测试集,其他事件的数据随机划分为训练集和验证集,比例为80%和20%。

image.png
表2 Sen1Floods11的分割结果(IoU)。TRO在未见的洪水事件上比其他基准模型表现出更好的性能。

结果。我们在上表中展示了Sen1Floods11的结果。

ERM在验证集上获得了最高的Intersection over Union (IoU),而TRO在测试集上获得了最高的IoU。

结果证明,TRO在未见的洪水事件上比其他基准模型表现出更好的性能。

04. 结语

我们的贡献包括:

  1. 一种新的优化方法,通过无缝地集成拓扑信息,以增强模型的分布外(OOD)泛化性能。

  2. 理论分析证明我们的方法在凸和非凸损失函数下都具有快速收敛性,同时对泛化风险进行了严格的界定。

  3. 在包括分类、回归和语义分割在内的广泛任务中的实验结果证明我们的方法相对于SOTA具有更优越的性能。

  4. 数据驱动的分布拓扑与领域知识一致,并增强了模型的可解释性。

参考文献

[1] Namkoong et al. Stochastic gradient methods for distributionally robust optimization with f-divergences. NeurIPS 2016

[2] Robey et al. Model-based domain generalization. NeurIPS 2021

[3] Hu et al. Does distributionally robust supervised learning give robust classifiers? ICML 2018

[4] Leeb et al. Hölder–lipschitz norms and their duals on spaces with semigroups, with applications to earth mover’s distance. Journal of Fourier Analysis and Applications, 2016

[5] Tong et al. Diffusion earth mover’s distance and distribution embeddings. ICML 2021

[6] Newman. A measure of betweenness centrality based on random walks. Social networks, 2005

[7] Xu et al. Graph-relational domain adaptation. ICLR 2022

[8] Bonafilia et al. Sen1floods11: A georefer- enced dataset to train and test deep learning flood algorithms for sentinel-1. CVPR Workshops, 2020

招生信息

特拉华大学(University of Delaware)计算机系(Computer and Information Sciences) 招收2024 Spring/Fall全奖博士生.

研究方向:

  1. Robust and Explainable DL;
  2. Human-centered Computer Vision.

导师:彭曦(Dr. Xi Peng, Assistant Professor)

关于实验室:
我们持续在顶会发表工作包括NeurIPS, ICLR, CVPR, ICCV, ECCV, KDD, AAAI, IJCAI;近些年入学的几位同学已经在CVPR’20-23,AAAI’21,TPAMI’22,ICLR’23,ICCV’23 发表一作论文并且荣获 NeurIPS’21 Workshop Best Paper Award;我们与北美多家工业界实验室合作紧密可推荐优秀学生前往暑期实习Google Research, Snap Research, Amazon AWS, IBM Watson Research.

更多信息:Deep-REAL
邮件: xipeng@udel.edu
邮箱主题/简历命名格式:博士申请+姓名


关于TechBeat人工智能社区

TechBeat(www.techbeat.net)隶属于将门创投,是一个荟聚全球华人AI精英的成长社区我们希望为AI人才打造更专业的服务和体验,加速并陪伴其学习成长。期待这里可以成为你学习Al前沿知识的高地,分享自己最新工作的沃士,在AI进阶之路上的升级打怪的根据地!更多详细介绍>>TechBeat,一个荟聚全球华人AI精英的学习成长社区

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux搭建Promtail + Loki + Grafana 轻量日志监控系统

一、简介 日志监控告警系统,较为主流的是ELK(Elasticsearch 、 Logstash和Kibana核心套件构成),虽然优点是功能丰富,允许复杂的操作。但是,这些方案往往规模复杂,资源占用高,操作苦…

【Java基础教程】(四十四)IO篇 · 上:File类、字节流与字符流,分析字节输出流、字节输入流、字符输出流和字符输入流的区别~

Java基础教程之IO操作 上 🔹本节学习目标1️⃣ 文件操作类:File2️⃣ 字节流与字符流2.1 字节输出流:OutputStream2.2 字节输入流:InputStream2.3 字符输出流:Writer2.4 字符输入流:Reader2.5 字节流与字符…

S32K14x FlexNVM介绍(flexible Non-volatile memory)

S32K14x是一款NXP推出的32位汽车级微控制器,其存储结构相对复杂。下面是对其存储结构的中文介绍: S32K14x采用了分层存储结构,包括Flash存储器和SRAM存储器。Flash存储器用于存储程序代码和常量数据,而SRAM存储器用于存储变量数据…

《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(14)-Fiddler断点(breakpoints)实战,篡改或伪造数据

1.简介 上一篇主要就讲解和分享Fiddler断点的理论和操作,今天宏哥就用具体例子,将上一篇中的理论知识实践一下。而且在实际测试过程中,有时候需要修改请求或响应数据,或者直接模拟服务器响应,此时可以使用fiddler进行…

数据库—用户权限管理(三十三)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、概述 二、用户权限类型 ​三、用户赋权 四、权限删除 五、用户删除 前言 数据库用户权限管理是指对数据库用户的权限进行控制和管理,确保用户只能执…

C++ 成员初始化列表和new运算符的应用

输出一个学生的学号&#xff0c;姓名&#xff0c;性别和出生年月日 class Date { public:Date(int y, int m, int d) :m_year(y), m_month(m), m_day(d) {}void Print(){cout << m_year << "/" << m_month << "/" << m_day…

春秋云境:CVE-2022-23880(taoCMS v3.0.2 任意文件上传漏洞)

目录 一、题目 二、进入题目&#xff1a; 2.1 文件写入一句话木马&#xff1a; 2.2 用SQL语句写入木马&#xff1a; 一、题目 靶标介绍&#xff1a; taoCMS v3.0.2 文件管理处存在任意文件上传漏洞&#xff0c;攻击者可执行任意代码 二、进入题目&#xff1a; 访问/admin …

ios私钥证书的创建方法

ios私钥证书是苹果公司为ios开发者打包app&#xff0c;推出的一种数字证书&#xff0c;只有同一个苹果开发者账号生成的ios私钥证书打的包&#xff0c;才能上架同一个开发者账号的app store。因此不要指望别人给你共享私钥证书和描述文件&#xff0c;因为别人的证书和描述文件打…

C++部署学习

gcc -E src/main.c -o src/main.i gcc -S src/main.c -o src/main.s gcc -C src/main.c -o src/main.o gcc src/main.c -o exec ./exec

【Golang】Golang进阶系列教程--为什么说 Go 语言字符串是不可变的?

文章目录 前言推荐阅读 前言 最近有读者留言说&#xff0c;平时在写代码的过程中&#xff0c;是会对字符串进行修改的&#xff0c;但网上都说 Go 语言字符串是不可变的&#xff0c;这是为什么呢&#xff1f; 这个问题本身并不困难&#xff0c;但对于新手来说确实容易产生困惑…

神奇数学世界的魔力迷踪:破解3的幂次方之谜

本篇博客会讲解力扣“326. 3 的幂”的解题思路&#xff0c;这是题目链接。 昨天刚刚讲解完2的幂&#xff0c;今天就来看看3的幂。 思路1 3的幂不能像2的幂那样&#xff0c;直接看二进制中是否有且仅有一位为1&#xff0c;所以“2的幂”那道题中的前两种方法就失效了&#xff…

leetcode 1005. K 次取反后最大化的数组和

2023.7.30 本题思路如下&#xff1a; 按绝对值大小将数组进行从大到小的排序。遍历数组&#xff0c;若当前元素为负数则修改其符号。遍历完之后&#xff0c;判断k是否为奇数&#xff0c;若为奇数&#xff0c;则还需要修改一次符号&#xff0c;此时修改绝对值最小的那个数的符号…

(原创)Flutter与Native通信的方式:EventChannel和BasicMessageChannel

前言 上一篇博客主要介绍了MethodChannel的使用方式 Flutter与Native通信的方式&#xff1a;MethodChannel 这篇博客接着讲另外两种通信方式 EventChannel和BasicMessageChannel EventChannel用于从native向flutter发送通知事件&#xff0c;例如flutter通过其监听Android的重…

深入篇【C++】手搓模拟实现list类(详细剖析底层实现原理)模拟实现正反向迭代器【容器适配器模式】

深入篇【C】手搓模拟实现list类(详细剖析底层实现原理&#xff09;&& 模拟实现正反向迭代器【容器适配器模式】 Ⅰ.迭代器实现1.一个模板参数2.两个模板参数3.三个模板参数 Ⅱ.反向迭代器实现1.容器适配器模式 Ⅲ.list模拟实现1.定义结点2.封装结点3.构造/拷贝4.迭代器…

线性代数的学习和整理2:用EXCEL进行矩阵计算

目录 0 写在前面的话 网上推荐的线性代数的课程 1 线性代数和矩阵的各种概念 1.1 各种逻辑图 2 关于线性代数入门的各种灵魂发问 2.1 什么是线性&#xff0c;什么是线性相关 &#xff1f; 为什么叫线性变换&#xff1f; 为什么叫线性代数&#xff1f; 2.2 线性代数是人造…

janus-Gateway的服务端部署

janus-Gateway 需求是前后端的webRTC推拉流&#xff0c;但是后端用的是c&#xff0c;于是使用了这个库做视频流的推送和拉取&#xff0c;记录踩坑过程。 如果你也需要自己部署janus的服务端并在前端拉流测试&#xff0c;希望对你有所帮助。 由于janus的服务器搭建需要linux环境…

无涯教程-jQuery - jQuery.get( url, data, callback, type )方法函数

jQuery.get(url&#xff0c;[data]&#xff0c;[callback]&#xff0c;[type])方法使用GET HTTP请求从服务器加载数据。 该方法返回XMLHttpRequest对象。 jQuery.get( url, [data], [callback], [type] ) - 语法 $.get( url, [data], [callback], [type] ) 这是此方法使用的…

RWEQ模型——土壤风蚀模拟

详情点击链接&#xff1a;基于“RWEQ”集成技术在土壤风蚀模拟与风蚀模数估算、变化归因分析中的实践应用及SCI论文撰写 前沿 土壤风蚀是一个全球性的环境问题。中国是世界上受土壤风蚀危害最严重的国家之一&#xff0c;土壤风蚀是中国干旱、半干旱及部分湿润地区土地荒漠化的…

QObject::connect: No such signal me::sendMsg(QString s) in ...

QObject::connect: No such signal me::sendMsg&#xff08;QString s&#xff09; in ... 解决方案 在使用qt4的connect中&#xff0c;爆的bug&#xff1a; 导致 teacher 的槽函数 receiveMsg(QString s) 一直没有被调用。。。。 解决方案 去掉参数名&#xff0c; 保留类型…

我的第一个flutter项目(Android Webview)

前言&#xff1a;flutter开发环境搭建Flutter的开发环境搭建-图解_☆七年的博客-CSDN博客 第一个flutter简单项目&#xff0c;内容是一个主界面&#xff0c;其中&#xff1a; 1.内容点击数字自增 2.跳转一个空页&#xff0c; 3.跳转一个WebView界面 其中涉及添加主键&#xf…