返回列表

39th Private LB: small and simple

374. Deepfake Detection Challenge | deepfake-detection-challenge

开始: 2019-12-11 结束: 2020-04-23 AI安全与对抗 数据算法赛
第39名 Private LB:小而简的方案

第39名 Private LB:小而简的方案

作者:fergusoci
比赛排名:Private LB 第39名

恭喜大家,希望那些遇到分数错误问题的人能顺利解决……这确实非常令人沮丧。

我的方法概览 —— 保持简单,放弃难以检测的深度伪造:

我认为复杂的模型反正也无法正确识别这些难例,而且因为容易过拟合,最终还会把简单的样本也搞砸。最终我在 Private LB 上排名第 39(分数 0.477);在 Public LB 排名第 100 左右(分数 0.328)。

细节:

我主要担心的是模型泛化能力不强,这主要是因为我们可用的训练数据有限。我对规则的理解是,任何外部数据充其量处于灰色地带,更有可能是被禁止的,所以我只使用了提供的数据。

我构建了一个尽可能简单且小的模型,我知道这无法检测出高难度的深度伪造,但我认为它能更稳健地检测出简单的样本。

数据集:

我使用了 @humananalog 的 Blazeface 解决方案,将每个视频中的 32 帧(在视频中均匀分布)的人脸保存到硬盘。我对视频进行了筛选,只允许所有面部器官(眼睛、鼻子、嘴巴等)在所有帧中都可见的训练样本。这减少了约 25% 的训练集,我认为这对模型正确收敛很重要。

采样:

我在每个 epoch 中对真实/伪造视频进行了 50-50 的采样(所有真实视频 + 1 个采样的对应伪造视频,每个 epoch 选择一个随机组合)。一旦采样了一个视频,我会从该视频中置信度最高的 10 帧中随机采样 1 帧。总的来说,我不确定采样方案对分数有多大影响。它对我的验证集或公共排行榜没有产生巨大影响,但也许在私有排行榜上起到了一些作用。

数据增强:

随机水平翻转、JPEG 压缩、亮度对比度调整。如上所述随机选择帧也起到了部分增强的作用。

模型:

我使用了 EfficientNet-b0,因为它是能给出合理结果的最小模型。

分辨率:

我使用了三种不同的输入尺寸(每种对应单独的模型):180、196、224。为了使模型更加稳健(原因如上所述),我选择了较小的分辨率而不是较大的分辨率。

模型集成:

每个模型都在 5 折样本上进行拟合(按文件夹划分)。最终结果是对这些预测的平均值。

同比赛其他方案