赞
踩
(2023.2.27)没什么好总结的,两种模态,面部图片和脑电图,数据用的kaggle面部表情数据库FER2013和公开的脑电图Seed-IV。图像用的卷积,四五层,效果感觉不佳,可以改换resnet50或vit结果试试提升精度。只使用了脑电图,自己做了个小数据集,用硬件设备采集3个人4种情绪,16个视频片段,每种情绪四个片段的数据。用了蒙特卡洛方法来融合多模态决策数据的结果(我觉得是这样的),最终结果我感觉一般般。
(2023.3.1)使用了87名参与者自发的个人叙述的语音数据。利用迁移学习方法,使用预先训练好的CNN和BERT模型分别提取声学和语言特征,并将它们输入单独的机器学习模型。此外,将这两种模式融合在一个多模式方法中。最佳模型使用了语言方法,其效价的未加权平均回忆(UAR)基线比官方竞争高出8.8%。
音频部分:使用YAMNet,频谱图作为输入。
语言模型:使用Bert,另外我们使用了SBERT模型的多语言版本。与原始BERT一样,该网络为每个故事输出768维的嵌入。我们将向量归一化为零均值和单位方差,然后使用特征向量作为各种机器学习模型的输入。
多模态部分:我们融合了来自声学和语言学方法的特征向量,为每个故事生成1792维的特征向量(图1)。由于每个故事都有几个声学特征向量,我们对每个故事的声学特征向量进行加权和。然后,我们将向量归一化为零均值和单位方差,然后将这些融合向量用作各种机器学习模型的输入。
结果好像接近60%,现在看来并不高。
输入数据:构建并探索了一个基于ResNet的以log-mel谱图为输入特征的系统。提取了高分辨率的频谱图,使模型不仅可以学习各种情绪的频谱包络结构,还可以学习各种情绪的粗谐波结构。
模型:首先在大量扬声器标记的音频数据上训练ResNet34模型。然后,用新的随机初始化的FC层替换预训练模型的FC层。最后,为IEMOCAP数据集上的SER(Speech Emotion Recognition)任务重新训练新的FC层。
统计池化(Statistics pooling):没怎么搞懂,百度上说Stochastic pooling是论文《Stochastic Pooling for Regularization of Deep Convolutional Neural Networks》中提到的一种池化策略,大意是只需对特征区域元素按照其概率值大小随机选择,元素值大的被选中的概率也大。
文中提到所提出的系统采用了统计池层[38],该层随着时间的推移聚合帧级信息,并通过连接帧上计算的平均值和标准偏差将帧序列减少为单个向量。因此,ResNet模型中的卷积层工作在帧级,而FC层工作在段级。从而消除了将帧序列截断为预先指定的长度以匹配训练期间使用的片段的需要。
频谱图增强用原始频谱图的频谱-时间修改版本来增强训练数据(见图2)。由于时频掩模直接应用于频谱图,因此可以方便地实时应用增强,消除了创建和存储新数据文件的必要性,而在许多语音应用增强方法中通常都是这样做的
数据集:VoxCeleb训练Resnet34和IEMOCAP
(2023.3.24)提出了一个用于多模态情感识别的预训练模型MEmoBERT,它通过从大量的大规模未标记视频数据中进行自监督学习来学习多模态联合表示。与传统的“预训练,finetune范式不同,提出了一种基于提示的方法,将下游情绪分类任务重新制定为掩码文本预测任务,使下游任务更接近预训练。
MEmoBERT由三个独立的模态编码器组成,用于为文本、视觉和声学模态生成特定于模态的令牌或帧级原始特征,以及三个embedder分别基于相应的原始特征生成嵌入。具体来说,采用BERT中的嵌入层作为文本编码器。视觉编码器是一个预先训练的面部表情模型,它根据说话人的面部生成视觉表情特征。**声学编码器是一个预先训练的语音模型,它根据音频波形生成声学特征。**每个模态的最终嵌入通过模态嵌入器得到,模态嵌入器对原始特征、位置嵌入和类型嵌入进行汇总,然后通过层范数进行归一化。请注意,声学编码器和视觉编码器的参数在预训练时是固定的。MEmoBERT中的跨模态转换器然后根据来自不同模态的嵌入学习跨模态上下文化表示。
设计了四个有效的预训练任务,在预训练阶段优化MEmoBERT,以学习联合多模态情绪表征。一旦模型得到很好的预训练,采用基于提示的学习方法使其适应下游任务。
跨模态transformer采用最成熟的变压器架构,并将其扩展为三种模态(文本、视觉和音频),用于多模态预训练。遵循模态不可知策略,即单个骨干Transformer应用于任何模态。在预训练期间,特定于模态的嵌入被馈送到多层Transformer中,以学习跨不同模态的高级跨模态上下文化表示。
四个预训练任务
Whole Word Masked Language Modeling (WWMLM)
相比于bert,屏蔽掉整个单词信息,而不是屏蔽词根,例如一个单词unhappy,bert中可能屏蔽掉词根happy或者un,这里将其全部mask。在多模态中效果应比bert的屏蔽词根要好,是基于语音和视频信号来重建文本信息。
Span Masked Acoustic Frame Regression (SpanMAFR)
在文本和视觉形态的条件下重建蒙面声帧特征。采用L2回归作为目标函数,以最小化预测帧和真实帧之间的重建误差。受跨度掩蔽策略的启发,该策略旨在避免模型利用声学帧的局部平滑性,我们应用了将连续帧掩蔽为零的跨度掩蔽策略。它可以保证模型捕获全局的情感表达,而不是局部的信息。——其实我感觉思想同上,屏蔽掉连续的帧,根据其他模态来重建mask掉的帧。
Span Masked Visual Frame Regression (SpanMVFR)
学习基于文本和声学形式重建被掩盖的视觉面部表情特征。由于连续视觉帧的相似性,类似于声学模态,我们也对视觉模态应用了跨度掩蔽策略。——思想同以上。
Span Masked Visual Frame Classification with KL-divergence (SpanMVFC-KL)
以文本和音频为基础,将mask的帧的Transformer的输出喂入全连接层,预测K个面部表情类的情绪分布。最后,我们使用KL-divergence(KL散度)目标函数来优化相对于真是情绪的预测情绪分布,由(3.3.1)预先训练产生的面部表情识别模型。
图2说明了“提示,预测”范式。给定一个基于提示的多模态输入“[X] I am [MASK]”。[V] [A],其中[X], [V], [A]分别是视频的文本,视觉和声学输入,因此分类问题被重新表述为预测“[MASK]”作为一个情感类别词(如快乐,悲伤,愤怒),借助文本提示“我是[MASK].”。它与训练前阶段的全词掩码语言建模任务非常相似。
模态原始特征提取声学:我们从预训练的Wav2V ec2.0模型中提取帧级声学特征。我们通过每3帧平均池化来对帧级特征进行子抽样。
视觉:我们首先设计了一种基于语音激活和嘴巴运动一致性的主动说话人检测策略,以获得说话人的面部。然后,我们从预先训练的DenseNet模型中提取说话者面部的面部特征和情绪概率分布,该模型在面部表情语料库FER+上训练。
在MEmoBERT预训练期间,我们首先从文本预训练BERT检查点t1初始化其权重。具体来说,MEmoBERT使用与BERT相同的主干体系结构。对于文本模态,我们遵循BERT[5]中使用的屏蔽策略。对于视觉和声学掩蔽策略,我们遵循Mockingjay,将连续掩蔽数设置为3。我们使用AdamW优化器,初始学习率为5e-5,最多40K步。批大小为640。
为了验证我们的模型框架和基于提示的学习方法的有效性,我们专门定义了四个实验设置:1)“直接”表示我们直接训练MEmoBERT,然后从头开始训练一个新的情绪分类器用于下游任务。2)“BERT+Direct”表示我们直接对MEmoBERT进行微调,然后对下游任务进行新的情感分类器,其中MEmoBERT由预先训练好的文本BERT初始化。3)“Pretrain+Finetune”表示我们对预训练的MEmoBERT进行微调,然后对下游任务进行新的情感分类器。4)“Pretrain+Prompt”表示我们采用基于预训练MEmoBERT的提示学习方法,不对下游任务引入任何额外参数。
消融实验
结果一:
结果二:
我们使用三种模态特征,即语音,文本和面部特征。
流程如下:
下面会介绍模型的3个 重要结构
作者引入了“模态检查”步骤,该步骤可以过滤无效数据。
作者认为:对于有效的数据,其相应的有效模态信号 至少与另一个模态信号相关。 我们直接利用这种相关性概念来区分可能对情感分类有效的特征(有效特征)和嘈杂的特征(无效特征)。作者使用典型相关分析(CCA)以计算相关分数
通过射影变换把不同模态的特征 映射到同一纬度(100) i ,j 属于 {face, text, speech}
计算相关性
判断是否有效 Ie函数
如果在模态检查步骤中的一个或多个模态被检测为无效的,我们将使用以下方程式为无效模态生成代理特征向量
其中T 表示一个线性变换
找到 Vj 使得 Vj 和 Ff 距离最短
解一个线性方程得到 ai
用得到的 ai 计算Ps
作者收到(Liu et al. 2018) 的损失函数启发; 此方法用乘法的和 来 抑制弱模态,间接加强强模态, 其损失函数
Pj 表示 j模态下的预测值 , β 是超参
选定i为主模态, 其它模态的预测值会相乘 最后相加
作者修改了损失函数
有点像Cross Entropy Loss 的形式
用的是memory fusion network (MFN)
Zadeh, A.; Liang, P. P.; Mazumder, N.; Poria, S.; Cambria, E.; and Morency, L.-P. 2018a. Memory fusion net- work for multi-view sequential learning. AAAI
每个输入模态首先通过单隐藏LSTM,每个LSTM的输出维度为32。
LSTM的输出以及初始化为全零128维内存变量将其传递给 attention module (MFN 提出的)
attention module 内部的操作将重复固定的迭代次数t,该迭代次数由输入形式中的最大序列长度确定**(在本例中为t = 20)**。 注意模块每次迭代结束时的输出将用于更新memory变量以及LSTM的输入。
t迭代结束后,使用**(乘法融合q前面提到的)**将3个LSTM的输出合并到32维特征向量。 该特征向量与memory变量的最终值连接在一起,然后将所得的160维特征向量通过64维全连接层,然后传递给6维全连接层,以生成网络输出
文章创新的使用 模态特征检测, 差的模态特征向量就不用
得到一种生成代理特征的方法, 不过具体怎么生成还没搞太清楚
乘法融合那一块没怎么看懂,感觉和一般损失函数差不多, 可能他这个是三个模态的特征分别算损失然后加在一起有关
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。