哥又来看论文了《Deepfake Video Detection Using Convolutional Vision Transformer》

我对这篇论文的评价:很水但平易近人!适合我这个小白(憨憨)看~

论文的整体架构图:

哥又来看论文了《Deepfake Video Detection Using Convolutional Vision Transformer》_第1张图片

论文解读:

首先看看人家摘要写的:

1.我们在DeepFake检测挑战数据集(DFDC)上训练我们的模型,并实现了91.5%的准确率,AUC值为0.91,损失值为0.32。

2.我们的贡献是我们在ViT架构中添加了一个CNN模块,并在DFDC数据集上取得了具有竞争力的结果

卷积VIT(卷积与vit的结合)

模型架构由两部分组成:

1.数据的预处理:脸部处理、数据增强

预处理组件有两个子组件:人脸提取组件和数据增强组件。

人脸提取组件负责从224 x 224 RGB格式的视频中提取人脸图像

2.检测部分

提出的CViT模型由两个部分组成:Feature Learning (FL)和ViT。

FL:FL从人脸图像中提取可学习的特征。

其中特征学习(FL)组件是一堆卷积操作。FL组件遵循VGG架构,但FL组件无完全连接层(

FL组件有17个卷积层,内核为3 × 3。卷积层提取人脸图像的低级特征。所有卷积层的步长和填充都为1。批归一化输出特征和非线性的ReLU激活函数被应用于所有层。

),输入的维度是224*224*3,输出的维度是512*7*7

VIT: ViT将FL学习后的特征图作为输入,并将其转换为用于最终检测过程的图像像素序列。

ViT组件的输入是人脸图像的特征映射。特征映射被分割成七个patch,然后嵌入到一个1 x 1024的线性序列中。再分别输入到8个多头自注意中进行添加注意力,随后输入到多层感知机中得到分类的概率,进过softmax函数将结果压缩到[0,1]

简略的概括步骤如下:

  1. 卷积操作: 对输入图像应用卷积操作,得到特征图。

  2. 特征图划分: 将卷积操作得到的特征图划分成固定大小的图块。

  3. 向量化: 对每个图块内的特征进行向量化,通常是将像素值展平为一维向量。

  4. 位置编码: 为每个图块添加位置编码。

  5. 构建输入序列: 将所有向量化的图块及其位置编码按照一定的顺序组合成一个输入序列。

  6. ViT 模型处理: 将构建好的输入序列输入到 ViT 模型中,让 ViT 学习全局信息。

这样的结合可以充分利用卷积神经网络对局部特征的强大处理能力,同时通过 Vision Transformer 学习全局关系。

知识点:

1.多头自注意力(Multi-Head Self-Attention): 自注意力机制是Transformer模型的核心组件之一。在多头自注意力中,输入序列被分别映射到多个注意力头每个注意力头都学习关注输入序列中不同位置的信息,然后这些头的输出被拼接或加权求和形成最终的自注意力层输出。这使得模型能够同时关注输入序列中的不同部分,从而更好地捕捉序列中的长程依赖关系。

使用多头注意力的主要目的之一是增加模型的表达能力,提高对不同位置和特征的关注度。

防止多头注意退化成单头,我们可以进行一下操作:

1.参数独立性: 确保每个注意力头的参数是相互独立的,这样它们可以学习到不同的特征。如果参数共享过多,多头注意力的效果可能会减弱,因为不同头无法学到不同的关注点。
2.不同的初始权重: 对每个注意力头使用不同的初始权重,可以促使它们开始时关注不同的信息。这有助于防止模型在训练初期就收敛到一个注意力头。
3.正则化: 使用正则化技术,如dropout,对每个注意力头进行独立的正则化,可以防止模型过度依赖某个头。这有助于使每个头都学到一些独特的特征,而不是过度依赖其中之一。
5.多层次特征融合: 通过引入多层次的特征融合机制,确保来自不同头的信息能够有效地整合。这有助于提高模型的整体性能。

2.多层感知连接(Multi-Layer Perceptron,MLP): 在Transformer的每个位置,除了经过自注意力层的处理,还会经过一个MLP块。这个MLP块包括两个全连接层,它们之间通常使用激活函数(比如GELU)进行非线性变换。MLP块的目的是在每个位置上对特征进行局部的、非线性的变换,使得模型更适应复杂的模式。
 

你可能感兴趣的:(transformer,深度学习,人工智能)