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

DILLEMA:扩散模型+大语言模型,多模态数据增强框架

引言:深度学习模型的鲁棒性测试需要全面且多样化的测试数据。现有的方法通常基于简单的数据增强技术或生成对抗网络,但这些方法在生成真实且多样化的测试数据集方面存在局限性。为了克服这些限制,DILLEMA框架应运而生,旨在通过结合大型语言模型和控制条件下的扩散模型,为视觉神经网络生成合成的高保真测试数据集。

©️【深蓝AI】编译

论文标题:DILLEMA: Diffusion and Large Language Models for Multi-Modal Augmentation

论文作者:Luciano Baresi, Davide Yi Xian Hu, Muhammad Irfan Mas'udi, Giovanni Quattrocchi

论文地址:https://arxiv.org/pdf/2502.04378

01 核心要点

1.1. 问题背景

深度学习模型在现实场景中常因数据多样性不足或测试覆盖不全,导致“极端场景”下的异常行为。传统数据增强方法(如旋转、裁剪)或GAN生成的测试数据缺乏多样性和语义合理性,难以满足复杂场景(如自动驾驶、医学图像分析)的测试需求。

1.2. 解决方案

DILLEMA创新性地整合扩散模型与大语言模型,构建多模态数据增强框架。该框架通过生成高保真度的多样化合成测试数据,有效提升模型的健壮性。其核心思想是“文本-图像-文本”闭环:将图像转化为文本描述,利用LLM生成假设性描述,再通过扩散模型生成新图像,确保语义一致性和场景合理性。

1.3. 技术亮点

多模态协同:结合视觉与语言模型的优势,实现语义可控的图像生成。

假设性推理:LLM通过逻辑推理生成假设性描述(如 “ 将晴天改为暴雨”),突破传统增强的随机性局限。

空间一致性保持:扩散模型在生成过程中保留关键场景元素(如物体位置、光照条件),避免生成无效测试数据。

▲图1| DILLEMA的框架图©️【深蓝AI】编译

02 技术解析

如图1框架示意图所示,DILLEMA框架通过以下五个步骤生成合成的、高保真度的测试数据集,这些步骤共同作用,确保生成的测试数据集不仅真实且多样化,还能有效揭示深度学习模型的潜在弱点。以下是每个步骤的详细描述:

2.1. 图像字幕生成(Image Captioning)

图像字幕生成是DILLEMA框架的第一步,其核心目标是将输入图像转换为详细的文本描述。这一过程借助预训练的字幕生成模型(Captioning Model, CM),将图像中的关键信息转化为多句文本描述。每个句子聚焦于场景的不同方面,如物体、环境和上下文关系,从而提供全面且详细的图像表示。

例如,对于一张描绘“一辆灰色汽车行驶在雾蒙蒙的街道上”的图像,字幕生成模型可能会输出:“一条街道上有一辆灰色汽车。街道雾蒙蒙且昏暗。”

这种多句描述方法能够有效捕捉图像中的关键细节,避免遗漏重要信息,为后续步骤提供坚实基础。

▲图2| 分类(图2a)和分割(图2b)之间的约束差异展示©️【深蓝AI】编译

2.2. 关键词识别(Keyword Identification)

关键词识别是DILLEMA框架的第二步,旨在识别字幕中可以安全修改的关键词。这些关键词代表图像中可修改的方面,如颜色、天气条件或对象属性,而不改变图像的整体含义或主要任务。

此步骤利用大型语言模型(LLM)分析字幕,识别出可修改的关键元素。在识别过程中,LLM会排除对任务至关重要的核心元素,以确保修改不会影响图像的主要任务。

例如图2所示:在图像分类任务中,背景颜色或照明可以修改,但对象本身(如汽车)不能改变;在语义分割任务中,道路和关键对象(如汽车、行人)必须保持存在,但颜色或天气条件可以改变。

为了明确任务要求,DILLEMA会向LLM提供特定任务相关的查询提示,例如:“给定任务和由字幕描述的图像,字幕中可以修改的关键元素是什么,以便图像对应的真值不会改变?”

通过这种方式,LLM能够根据任务要求,识别出如“灰色汽车”、“雾蒙蒙”和“昏暗”等可修改的关键元素。

2.3. 替代选项识别(Alternative Identification)

替代选项识别是DILLEMA框架的第三步,其目的是为识别出的关键词生成替代选项。这些替代选项应与原始关键词在语义相关,但具有不同的属性,从而在不改变图像整体任务的情况下提供变化。

LLM为每个识别出的关键词生成替代选项,例如,对于关键词“灰色汽车”,可能的替代选项包括“白色汽车”、“红色汽车”;对于“雾蒙蒙”,替代选项可以是“雪天”、“晴天”。

在生成替代选项时,LLM会考虑上下文的一致性,避免引入与任务无关的变化。例如,将“汽车”替换为“自行车”在车辆检测任务中是不合适的。

为了指导LLM生成合适的替代选项,DILLEMA会提供明确的任务和关键词提示,例如:“给定任务和由字幕描述的图像,这些关键词的可能替代选项是什么?”

通过这种方式,LLM能够生成多样化的替代选项,为后续步骤提供丰富的变化选项。

2.4. 假设性字幕生成(Counterfactual Caption Generation)

假设性字幕生成是DILLEMA框架的第四步,通过将替代选项应用于原始字幕,生成新的假设性字幕。这些假设性字幕描述了如果某些元素被修改,图像会是什么样子。此步骤利用LLM将原始字幕中的关键词替换为生成的替代选项,同时确保生成的字幕在语义连贯且符合任务要求。

替换的范围可以根据需要进行控制,例如,一次只替换一个关键词,以实现小幅度的变化;或者同时替换多个关键词,以引入更大的变化。

例如,原始字幕为“一条街道上有一辆灰色汽车。街道雾蒙蒙且昏暗。”,关键词“灰色汽车”替换为“白色汽车”,“雾蒙蒙”替换为“雪天”,生成的假设性字幕为:“一条街道上有一辆白色汽车。街道雪天且阳光明媚。”

在生成假设性字幕时,LLM会考虑上下文的连贯性,避免生成矛盾或不合逻辑的描述。通过这种方式,DILLEMA能够生成描述修改后图像的详细文本指导,为后续的图像生成提供基础。

2.5. 可控文本到图像生成(Controlled Text-to-Image Generation)

可控文本到图像生成是DILLEMA框架的最后一步,其目标是根据假设性字幕生成新的测试图像,同时保持原始图像的空间一致性。此步骤利用可控扩散模型(Diffusion Model, DM),通过条件输入(如边缘图或分割图)保留原始图像的空间结构,确保生成的图像在视觉和语义上符合任务要求。

例如,对于假设性字幕“一条街道上有一辆白色汽车。街道雪天且阳光明媚。”,生成的图像将保留原始图像中汽车和街道的空间位置,但汽车颜色变为白色,天气条件变为雪天。

可控扩散模型的输入包括原始图像的条件输入和假设性字幕,从而在生成图像时兼顾语义一致性和空间连贯性。

通过这种方式,DILLEMA能够生成与假设性字幕对齐的逼真图像,用于测试深度学习模型在不同条件下的表现,从而有效揭示模型的潜在弱点,并增强模型的泛化能力和异常场景适应性。

▲图3| DILLEMA生成的图片示例可视化©️【深蓝AI】编译

03 实验验证

3.1. 数据集与测试模型的性能

实验使用了两个数据集:用于图像分类的 ImageNet1K 和用于自动驾驶语义分割的 SHIFT。对于 ImageNet1K,使用了ResNet18、ResNet50 和 ResNet152 模型测试;对于 SHIFT,使用了DeepLabV3 模型测试。

3.2. 评估指标

图像分类:使用准确率(accuracy)评估模型表现。

语义分割:使用平均交并比(mIoU)评估模型表现。

3.3. RQ1(有效性):DILLEMA 能否从现有数据中生成有效且真实的测试数据集?

▲图4| 生成的分类测试数据集的有效性比例©️【深蓝AI】编译

▲图5| 自动驾驶测试数据集生成的有效性比例©️【深蓝AI】编译

通过亚马逊 Mechanical Turk 进行的人类评估显示,99.7% 的增强 ImageNet1K 图像保留了原始标签,82.7% 的模型误分类图像仍被人类评估者认为是有效的。对于 SHIFT 数据集,道路、行人和车辆的保留率分别为 98.9%、84.6% 和 100.0%。这表明 DILLEMA 生成的图像不仅真实,而且能够有效保留原始图像的关键语义信息。

3.4. RQ2(测试的有效性):生成的测试数据集能否识别出最先进的 DL 模型中的弱点?

▲表1| DILLEMA框架在ImageNet1K数据集上对不同ResNet模型进行测试时,原始测试数据集和DILLEMA生成的测试数据集的性能对比©️【深蓝AI】编译

ImageNet1K:DILLEMA 生成的测试数据集平均暴露了 47.0% 的模型错误行为,而原始测试数据集仅能暴露 3.1%。即使考虑到人类评估中约 82.7% 的有效性,DILLEMA 的有效性仍显著高于原始测试数据集(38.9%)。

SHIFT:DILLEMA 在语义分割任务中也成功暴露了模型的弱点,例如在“ SideWalk”类别中,模型在原始数据集中的准确率为 97%,而在增强数据集中的准确率降至 38%。这表明 DILLEMA 能够揭示模型在关键类别中的潜在弱点。

3.5. RQ3(再训练的鲁棒性):生成的测试数据集能否用于增强模型的泛化能力和异常场景适应性?

ImageNet1K:使用 DILLEMA 生成的数据重新训练 ResNet18 模型后,模型在增强测试数据集上的准确率提高了 52.27%,在原始测试设置上的准确率提高了 20.19%。

SHIFT:重新训练后,模型在原始测试设置上的 mIoU 从 85.32% 提高到 88.76%,在增强数据集上的 mIoU 从 72.45% 提高到 80.32%,特别是在行人识别方面,准确率从 38% 提高到 62%。这表明 DILLEMA 生成的测试数据集不仅能够揭示模型的弱点,还能显著提升模型的鲁棒性。

04 影响有效性的因素

尽管 DILLEMA 在实验中表现出色,但仍存在一些潜在的威胁:

内部有效性问题:依赖预训练模型和随机采样,可能导致结果的随机性和偏差。此外,合成图像与真实图像之间可能存在领域偏移,导致模型表现不佳。

外部有效性问题:虽然在分类和分割任务中进行了测试,但可能无法推广到特定领域(如医学成像)。需要在更多样化的数据集上进行测试,以确认其在工业应用和其他视觉任务中的适应性。

构建的有效性:主要衡量标准是生成图像是否保留了原始标签并揭示了模型的弱点。尽管人类评估表明图像仍然有效,但 LLM 生成的替代选项可能存在潜在偏差,可能会影响结论。

05 总结与展望

DILLEMA 通过结合字幕生成、LLM 驱动的假设性生成和可控扩散模型,可以有效地揭示模型的弱点并提高模型鲁棒性。未来的工作将与其他基线进行比较,并探索生成测试数据集的优先级排序。DILLEMA 的提出为深度学习模型的测试和鲁棒性提升提供了一种新的思路,有望在自动驾驶、医疗影像等领域发挥重要作用。

相关文章:

DILLEMA:扩散模型+大语言模型,多模态数据增强框架

引言:深度学习模型的鲁棒性测试需要全面且多样化的测试数据。现有的方法通常基于简单的数据增强技术或生成对抗网络,但这些方法在生成真实且多样化的测试数据集方面存在局限性。为了克服这些限制,DILLEMA框架应运而生,旨在通过结合…...

OpenBMC:BmcWeb app获取socket

OpenBMC:BmcWeb app.run-CSDN博客 app对象在run函数中调用了setupSocket() static std::vector<Acceptor> setupSocket() {std::vector<Acceptor> acceptors;char** names = nullptr;int listenFdCount = sd_listen_fds_with_names(0, &names);BMCWEB_LOG_DE…...

突破加速度计的精度与量程瓶颈:HEROS-GAN技术

在当今科技飞速发展的背景下&#xff0c;低成本传感器的应用范围日益扩大。然而&#xff0c;低成本加速度计由于其固有的限制——如信号噪声显著和动态范围狭窄——往往难以满足高精度应用场景的需求。哈尔滨工业大学的研究团队最近提出了一项名为HEROS-GAN&#xff08;Honed-E…...

C++程序员内功修炼——Linux C/C++编程技术汇总

在软件开发的宏大版图中&#xff0c;C 语言宛如一座巍峨的高山&#xff0c;吸引着无数开发者攀登探索。而 Linux 操作系统&#xff0c;以其开源、稳定、高效的特性&#xff0c;成为了众多开发者钟爱的开发平台。将 C 与 Linux 相结合&#xff0c;就如同为开发者配备了一把无坚不…...

苍穹外卖-阿里云OSS文件上传

苍穹外卖-阿里云OSS文件上传 一、阿里云OSS简介**获取AccessKey**获取enpoint 二、代码实现1 引入依赖2 定义OSS相关配置2.1 application-dev.yml2.2 application.yml 3 读取OSS配置3.1 AliOssProperties 4 生成OSS工具类对象4.1 AliOssUtil4.2 OssConfiguration2.5 CommonCont…...

C# 中 Array、ArrayList 和 List 的比较

C# 中 Array、ArrayList 和 List 的比较 在 C# 中&#xff0c;Array、ArrayList 和 List<T> 都用于存储和管理数据集合&#xff0c;但它们在类型安全性、性能、灵活性和使用场景上存在显著差异。以下是对这三种集合的详细比较&#xff1a; 1. 概述 特性ArrayArrayList…...

DeepSeek 提示词:常见指令类型

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…...

商业AI模型新篇章:Granite 3.2引领行业创新

摘要 Granite 3.2 是一款专为商业环境设计的人工智能模型&#xff0c;旨在提高AI驱动应用的信任度和可扩展性。该模型从零开始构建&#xff0c;采用最新的密集型架构&#xff0c;支持12种语言&#xff0c;覆盖11个不同领域。通过其先进的技术&#xff0c;Granite 3.2 不仅增强了…...

Spring boot中的@ConfigurationProperties注解

Spring boot中的ConfigurationProperties注解 ConfigurationProperties 是 Spring Boot 提供的一个强大注解&#xff0c;用于将配置文件&#xff08;如 application.properties 或 application.yml&#xff09;中的配置绑定到一个 Java 对象中。它不仅简化了配置管理&#xff…...

Rust中的异步编程:构建简单的网页爬虫

一、什么是Rust中的Futures和Async&#xff1f; 在Rust中&#xff0c;异步编程基于future&#xff08;未来&#xff09;的概念。一个future表示一个当前可能不可用&#xff0c;但将来某个时候可以获得的值。Rust中的Future特征定义了这一概念&#xff0c;任何实现了该特征的类…...

springai系列(二)从0开始搭建和接入azure-openai实现智能问答

文章目录 前言1.从0开始搭建项目2.进入微软openai申请key3.配置application.yaml4.编写controller5.测试源码下载地址总结 前言 之前使用openai的官网的api需要科学上网&#xff0c;但是我们可以使用其他的代理间接实现使用chatgpt的相关模型&#xff0c;解决这个问题。比如:本…...

flutter 局部刷新控件Selector源码实现原理

Flutter 中的 Selector 组件是 provider 包提供的一个优化工具&#xff0c;用于在状态管理中仅选择所需数据片段&#xff0c;避免不必要的 Widget 重建。其实现原理基于以下几个关键点&#xff1a; 1. 核心设计目标 选择性重建&#xff1a;仅当特定数据变化时触发 Widget 重建&…...

Eclipse 编译项目指南

Eclipse 编译项目指南 引言 Eclipse 是一款功能强大的集成开发环境&#xff08;IDE&#xff09;&#xff0c;广泛用于Java、C/C、Python等多种编程语言的开发。在Eclipse中编译项目是进行软件开发的基础步骤。本文将详细介绍如何在Eclipse中编译项目&#xff0c;包括项目设置…...

Go在1.22版本修复for循环陷阱

记录 前段时间升级Go版本碰到一个大坑&#xff0c;先记录。 先上代码案例&#xff1a; func main() {testClosure() }func testClosure() {for i : 0; i < 5; i {defer func() {fmt.Println(i)}()} }在1.22之下&#xff08;不包括1.22&#xff09;版本&#xff1a; 输出的…...

c++_sort函数

sort介绍 在C/C中&#xff0c;要想应用排序算法&#xff0c;可以使用c语言的qsort&#xff0c;也可以使用c的sort 。 1)qsort 是 C 标准库提供的一个通用排序函数&#xff0c;位于 stdlib.h 头文件中。 qsort 适用于 C 语言中的数组。 2)sort 是 C 中STL的泛型算法&#xf…...

【Stable Diffusion】AnimatedDiff--AI动画 插件使用技巧分享;文生视频、图生视频、AI生成视频工具;

本专栏主要记录人工智能的应用方面的内容,包括chatGPT、DeepSeek、AI绘画等等; 在当今AI的热潮下,不学习AI,就要被AI淘汰;所以欢迎小伙伴加入本专栏和我一起探索AI的应用,通过AI来帮助自己提升生产力; 本文的目标就是让每一个读者,都能学会并掌握AnimateDiff的使用;成…...

可视化约瑟夫生死环小游戏

这是一个基于Tkinter的图形界面应用程序&#xff0c;用于模拟约瑟夫环问题。约瑟夫环问题是一个经典的数学问题&#xff0c;描述的是N个人围成一圈&#xff0c;从第一个人开始报数&#xff0c;每数到第M个人就将其淘汰&#xff0c;然后从下一个人继续报数&#xff0c;直到剩下最…...

【深入理解JWT】从认证授权到网关安全

最近的项目学习中&#xff0c;在进行登陆模块的用户信息验证这一部分又用到了JWT的一些概念和相关知识&#xff0c;特在此写了这篇文章、方便各位笔者理解JWT相关概念 目录 先来理解JWT是什么&#xff1f; 区分有状态认证和无状态认证 有状态认证 VS 无状态认证 JWT令牌的…...

学习路之PHP --TP6异步执行功能 (无需安装任何框架)

学习路之PHP --异步执行功能 &#xff08;无需安装任何框架&#xff09; 简介一、工具类二、调用三、异步任务的操作四、效果&#xff1a; 简介 执行异步任务是一种很常见的需求&#xff0c;如批量发邮箱&#xff0c;短信等等执行耗时任务时&#xff0c;需要程序异步执行&…...

DeepSeek-R1:GPU编程自动化加速的新纪元

摘要 DeepSeek-R1是由斯坦福大学和普林斯顿大学研究者共同开发的项目&#xff0c;其自研的CUDA核心在性能测试中取得了卓越成绩&#xff0c;超越了o1和Claude 3.5 Sonnet&#xff0c;位居榜首。尽管DeepSeek-R1目前仅在约20%的任务中实现了对PyTorch Eager模式的性能超越&#…...

CSS 对齐:深入理解与技巧实践

CSS 对齐:深入理解与技巧实践 引言 在网页设计中,元素的对齐是至关重要的。一个页面中元素的对齐方式直接影响到页面的美观度和用户体验。CSS 提供了丰富的对齐属性,使得开发者可以轻松实现各种对齐效果。本文将深入探讨 CSS 对齐的原理、方法和技巧,帮助开发者更好地掌握…...

vue深拷贝:1、使用JSON.parse()和JSON.stringify();2、使用Lodash库;3、使用深拷贝函数(采用递归的方式)

文章目录 引言三种方法的优缺点在Vue中,实现数组的深拷贝I JSON.stringify和 JSON.parse的小技巧深拷贝步骤缺点:案例1:向后端请求路由数据案例2: 表单数据处理时复制用户输入的数据II 使用Lodash库步骤适用于复杂数据结构和需要处理循环引用的场景III 自定义的深拷贝函数(…...

九、数据治理架构流程

一、总体结构 《数据治理架构流程图》&#xff08;Data Governance Architecture Flowchart&#xff09; 水平结构&#xff1a;流程图采用水平组织&#xff0c;显示从数据源到数据应用的进程。 垂直结构&#xff1a;每个水平部分进一步划分为垂直列&#xff0c;代表数据治理的…...

【数据结构】 最大最小堆实现优先队列 python

堆的定义 堆&#xff08;Heap&#xff09;是一种特殊的完全二叉树结构&#xff0c;通常分为最大堆和最小堆两种类型。 在最大堆中&#xff0c;父节点的值总是大于或等于其子节点的值&#xff1b; 而在最小堆中&#xff0c;父节点的值总是小于或等于其子节点的值。 堆常用于实…...

51c自动驾驶~合集52

我自己的原文哦~ https://blog.51cto.com/whaosoft/13383340 #世界模型如何推演未来的千万种可能 驾驶世界模型&#xff08;DWM&#xff09;&#xff0c;专注于预测驾驶过程中的场景演变&#xff0c;已经成为追求自动驾驶的一种有前景的范式。这些方法使自动驾驶系统能够更…...

服务 ‘Sql Server VSS writer‘ (SQLWriter) 在安装 LocalDB 时无法启动

安装Microsoft Visual C 2015-2019 Redistributable (x64)...

【我的 PWN 学习手札】House of Husk

House of Husk House of Husk是利用格式化输出函数如printf、vprintf在打印输出时&#xff0c;会解析格式化字符如%x、%lld从而调用不同的格式化打印方法&#xff08;函数&#xff09;。同时C语言还提供了注册自定义格式化字符的方法。注册自定义格式化字符串输出方法&#xf…...

Nmap使用指南

Nmap使用指南 Nmap (网络映射器) 是一款强大的应用网络扫描和安全核查工具&#xff0c;适合于网络管理和安全专家。本文将介绍Nmap的基本使用方法&#xff0c;包括基本命令和常用功能。 1. 基本使用方式 Nmap的基本命令格式如下&#xff1a; nmap [选项] 目标地址目标地址 可…...

傅里叶分析

傅里叶分析之掐死教程&#xff08;完整版&#xff09;更新于2014.06.06 要让读者在不看任何数学公式的情况下理解傅里叶分析。 傅里叶分析不仅仅是一个数学工具&#xff0c;更是一种可以彻底颠覆一个人以前世界观的思维模式。但不幸的是&#xff0c;傅里叶分析的公式看起来太复…...

从零开始用react + tailwindcss + express + mongodb实现一个聊天程序(五) 实现登录功能

1.登录页面 完善登录页面 和注册差不多 直接copy signUpPage 内容 再稍微修改下 import { useState } from "react"; import { useAuthStore } from "../store/useAuthStore"; import { MessageSquare,Mail,Lock,Eye, EyeOff,Loader2} from "lucide…...