返回列表

3rd place solution

391. ALASKA2 Image Steganalysis | alaska2-image-steganalysis

开始: 2020-04-27 结束: 2020-07-20 网络安全 数据算法赛
第三名方案

第三名方案

作者:KaizaburoChubachi
发布时间:2020-07-22

感谢主办方举办这场有趣且无数据泄露的竞赛。我在这次竞赛中学到了很多。我也要感谢其他参赛者。其他参赛者独特的解决方案给我留下了深刻印象。我会阅读所有发布的解决方案。

以下是我的解决方案描述。

验证 (Validation)

我根据质量因子分层,随机将文件名按 80% 和 20% 的比例划分。观察测试集的预测分布,封面图像的比例似乎相对较高。但是,我认为基于 AUC 的指标对这种不平衡数据具有鲁棒性,因此我在验证级别上没有对其进行特殊处理。

方法 (Methods)

我创建了两个模型的集成:一个用于输入 3 通道彩色图像,另一个用于特征工程并输入 DCT 系数。

3通道彩色图像模型 (验证得分: 0.9382 (RGB), 0.9378 (YUV), 0.9364 (Lab))

  • 我制作了 3 个模型,分别输入 RGB、YUV 和 Lab 图像。
    • 我使用 cv2 进行加载和转换。起初我也尝试直接从 DCT 系数使用未量化的 YCrCb,但准确率与用 cv2 读取的 YUV 几乎相同,所以我选择了更快的 cv2。
  • 4 分类任务。
  • EfficientNet-b5
    • 我也尝试了 RegNet、ResNeSt、HRNet、PyConv 等,但在我的实现中,对于此任务,EfficientNet 比其他耗时相近的模型更准确。
  • 数据增强为翻转 & 旋转90(共 8 种类型)以及 CutMix。
    • 我尝试对不同文件夹中具有相同文件名的数据进行 CutMix,但准确率变差了。是变得太难了吗?
  • SGD + 余弦退火,每个周期 50 个 epoch。
    • 超参数几乎与 RegNet 论文 中的 EfficientNet 实验相同。
    • 当我尝试 b0 和 b2 时,我发现多周期余弦退火的准确率优于总 epoch 数相同的单周期。特别是第二个周期的提升很大。最后,我运行了 4 个周期,每个周期 50 个 epoch。

DCT 系数模型 (验证得分: 0.9022)

我认为在使用 RGB 的模型中很难做出差异化,所以我尝试通过试错创建一个直接处理 DCT 系数的网络,但这是唯一有效的一个。

  • 输入特征为:
    • 数值的独热编码 {<= -16, -15, -14, …, -2, -1, 1, 2, …, 14, 15, 16 <=}
    • 位置编码(我不确定是否有帮助)
      • 量化矩阵 / 50
      • 一个矩阵,满足 matrix[i, j] = cos(pi * (i % 8) / 16) * cos(pi * (j % 8) / 16)
  • 模型架构为:
    • EfficientNet-b2
    • 将第一个步幅 2 改为 1
    • 将 Conv2d 的膨胀率改为 8。此修改应用于从第一个(修补后的)步幅 2 Conv2d 到下一个步幅 2 Conv2d 之间的 Conv2d 层。
  • 数据增强为翻转 & 旋转90。
  • SGD + 余弦退火,50 个 epoch,1 个周期。
  • 该模型训练时间较长,因此我无法进行适当的消融研究,但根据是否更改步幅,存在大约 0.01 的差异。

MLP 集成 (验证得分: 0.9399, 私有: 0.930)

由于 DCT 系数模型的输出与 3 通道彩色图像模型的输出截然不同,很好地混合它可以提高准确率,但由于作为单模型它比 3 通道模型弱得多,简单平均效果不好。所以我使用了 MLP。

  • 输入每个网络经过平均池化后的 DCT Binary、RGB、YUV、Lab 的特征图。(这里有个错误,对
同比赛其他方案