多模态训练如何平衡不同模态

本文探讨了多模态训练中模态不平衡和过拟合问题,提出了预训练、添加模态loss、模态dropout、早期融合等策略,并介绍了Gradient-Blending和OGM-GE方法,旨在优化不同模态的性能并平衡单模态训练。
部署运行你感兴趣的模型镜像

背景

我们在进行多模态训练时,会出现模态不平衡的问题,往往使用了文本预训练模型的文本模态由于大量的预训练会容易出现过拟合现象,在文本模态过拟合的时候,视觉模态还处在欠拟合状态,则会导致视觉模态无法训练到最佳状态。如何平衡不同模态的性能,让多模态都能发挥自己最佳状态,从而提升整体多模态特征性能呢?

提前对其他模态进行预训练

在使用文本预训练模型时,如huggingface的bert预训练模型,其他模态如视觉模态,在调用官方预训练模型的同时,在自己的多模态数据集上进行预训练,当视觉模型收敛后,再作为视觉模态的预训练模型,与文本模态一起进行多模态预训练。

添加模态loss

对不同模态都添加各自的模态loss,这样在单个模态收敛后,其余模态还能有足够的监督动力。

这种方法需要注意:不同模态对任务的影响应当是比较平均或者相差不大的,如果某个模态在整个任务中的作用很小,这样做可能会适得其反。

模态dropout

模态融合时,对模态进行dropout,如随机丢掉某个模态,只使用单模态预测

early-fusion

在网络中段进行融合,再共用一半backbone提取融合后的特征,而不是获取模态embedding后,再融合。

如论文eccv2018:https://arxiv.org/pdf/1804.03641.pdf
又有论文ALBEF(NeurIPS 2021 Spotlight):https://github.com/salesforce/ALBEF

VLMO分阶段预训练

先冻住Vision,再Text效果是好的;但先Text再Vision有些问题,最后才是训练融合的模态
转自https://www.bilibili.com/video/BV1Vd4y1v77v?vd_source=e260233b721e72ff23328d5f4188b304
在这里插入图片描述

Gradient-Blending

来自NIPS2021:https://arxiv.org/pdf/1905.12681.pdf (What Makes Training Multi-modal Classification Networks Hard?)
普通的特征concat,并不能发挥模态的作用,反而会掉点:
可以看到,只有dropout和mid-concat有微弱涨点。

本文证明了多模态融合时,会出现单模态过拟合的问题,并提出一个新的指标overfitting-to-generalization ratio (OGR), 试图定量的评估过拟合问题,通过引入最小化OGR的loss来优化单模态过拟合问题,方法为GradientBlending。

本文对过拟合的评估,通过验证集和训练集loss差来评估。所以本文对每个模态都添加了模态loss,因为需要模态loss太评估每个模态过拟合的程度。本文实际的目标是在调整不同模态的单模态loss的权重,试图控制某一模态过拟合情况发生。

不同模态的权重,则是通过作者提出的OGR定量计算出来。(推导部分没有太看懂,也没有代码,实操起来感觉会比较麻烦)。

在实践中,往往文本模态比视觉模态容易过拟合,因为文本模态会调用使用庞大数据预训练的预训练模型,所以文本模态比较容易过拟合,可以尝试对文本模态的学习率或loss权重做下降处理。

模态蒸馏

使用预训练好的单模态,蒸馏模态融合时的模态特征,论文:https://arxiv.org/pdf/2106.11059.pdf
文中:单模态自蒸馏>模态dropout>pretrain+finetune

自适应学习

CVPR2022 oral: https://github.com/GeWu-Lab/OGM-GE_CVPR2022

本文说,即使模态融合后的结果超过了单模态的性能,但是单模态的性能往往离单模态训练还有很大距离,如何让这些单模态的表征达到最佳状态是个问题。这种问题的原因是,更占主导的模态会抑制另一个模态的表征学习。
上图中,图像单模态在多模态融合训练后掉点更明显,原因是在VGGSound这种音频主导的数据集里,图像模态容易被音频模态压制。

本文贡献:

从优化角度,解释了模态欠拟合限制了模态融合效果
提出OGM-GE方法,动态调整不同模态优化的平衡问题
OGM-GE可以即插即用到其他多模态融合方式中
看了代码后的感受是:利用融合前的单模态特征计算softmax,获得分类得分,用于查看单模态特征对最终任务的影响,取不同模态间的得分比值,将比值的倒数作为梯度的权重乘到各自模态上,对于对最终任务影响大的模态特征,其训练梯度获得削弱,从而减慢了该模态的训练速度,拉齐不同模态间的训练速度。由于比值是训练过程中动态变化的,算法也起到自适应的效果。

转载自: https://blog.youkuaiyun.com/ygfrancois/article/details/125081525

您可能感兴趣的与本文相关的镜像

GPT-oss:20b

GPT-oss:20b

图文对话
Gpt-oss

GPT OSS 是OpenAI 推出的重量级开放模型,面向强推理、智能体任务以及多样化开发场景

多模态模型的训练过程中,涉及多个关键环节,包括多模态数据处理、模型架构设计以及训练方法的选择。以下是对这些方面的详细说明: ### 多模态数据处理 多模态数据通常包括来自不同模态的信息,例如图像、音频和文本。为了有效处理这些异构数据,需要进行预处理和特征提取。图像数据可能需要使用卷积神经网络(CNN)进行编码,而文本数据则通常通过嵌入层(如词嵌入或Transformer编码器)进行处理。音频数据可以使用频谱图转换或基于Transformer的编码器进行处理。数据增强技术,如旋转、缩放和平移等方法,也可以用于提高模型的泛化能力[^3]。 ### 模型架构设计 多模态模型的架构设计通常包括模态编码器和融合模块。模态编码器负责将不同模态的数据映射到统一的特征空间中。例如,图像数据可以使用ResNet或Vision Transformer(ViT)作为编码器,而文本数据则可以使用BERT或GPT等语言模型。融合模块则负责将不同模态的特征进行整合,常见的方法包括基于注意力机制的融合、基于Transformer的融合,以及多层感知机(MLP)等简单融合方法。 ### 多模态数据融合 多模态数据的融合策略可以分为早期融合和晚期融合两种。早期融合是指在模型的输入层或特征提取层就将不同模态的数据进行融合,例如通过拼接、加权平均或注意力机制来实现。晚期融合则是在模型的高层进行决策级融合,例如通过对不同模态的输出进行加权平均或使用集成学习方法[^1]。此外,基于Transformer的架构允许更灵活的跨模态交互,例如CLIP模型利用对比学习来对齐图像和文本的特征空间。 ### 训练方法 多模态模型的训练方法可以分为监督学习和无监督学习两类。监督学习通常需要标注的多模态数据,例如图像-文本对或音频-文本对,通过交叉熵损失函数或对比损失函数进行优化。无监督学习则可以利用大规模未标注数据,例如通过自监督学习任务(如掩码语言建模或对比学习)来学习通用的多模态表示。此外,为了提高训练效率,还可以使用迁移学习,将预训练的单模态模型(如BERT或ResNet)作为初始化权重[^1]。 ### 示例代码:多模态数据增强 以下是一个使用TensorFlow进行图像数据增强的示例代码,适用于多模态模型中的图像模态预处理: ```python from tensorflow.keras.preprocessing.image import ImageDataGenerator import numpy as np # 定义数据增强生成器 datagen = ImageDataGenerator( rotation_range=20, width_shift_range=0.1, height_shift_range=0.1, shear_range=0.1, zoom_range=0.1, horizontal_flip=True, fill_mode='nearest' ) # 加载预处理后的数据 train_data = np.load('path/to/train_data.npy') train_labels = np.load('path/to/train_labels.npy') # 转换为数据增强生成器所需的格式 train_data = train_data.reshape((train_data.shape[0], 64, 64, 1)) # 生成增强数据 augmented_data = datagen.flow(train_data, train_labels, batch_size=32) ``` 该代码展示了如何使用`ImageDataGenerator`对图像数据进行旋转、平移、缩放等增强操作,从而提高模型的泛化能力[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值