返回列表

2nd Place Solution

379. Herbarium 2020 - FGVC7 | herbarium-2020-fgvc7

开始: 2020-03-09 结束: 2020-05-26 作物智能识别 数据算法赛
第二名解决方案

第二名解决方案

作者: Hussam Lawen (sesamind 团队) | 比赛: Herbarium 2020 | 排名: 第2名

首先特别感谢我的队友 Tal :)

骨干网络

作为骨干网络,我们使用了 TResNet 架构(高性能 GPU 专用架构),这使我们能够使用大批量进行快速训练,同时在所有分辨率下保持高分(更多详情请参阅我们的论文代码)。

本次比赛中使用的模型:TResNet-M, TResNet-L。

瓶颈头

我们避免使用巨大的分类层:2048x32094(6572万参数),而是使用了一个瓶颈头,将嵌入特征向量从 2048 维减少到 512 维。总参数量 = 2048x512 + 512x32094(1748万参数)。

这种修改不仅减小了网络规模,还允许我们使用更大的批量样本(更快的训练速度,且有助于 Soft-Triplet 损失)。

TResNet Basic Block

损失函数

我们使用了带有 0.2 标签平滑的交叉熵损失,此外还添加了带有软边界的 Soft-Triplet 损失,该损失通过关注批次中最困难的正样本和负样本来强调困难样本。更多详情请查看我们的 ReID 论文第 3.1 节。

在线困难负样本挖掘在使用大批量训练时效果最好(更多的负样本);因此,我们利用了网络的高内存利用率和瓶颈头。例如:在单张 V100 16GB 显卡上使用 TResNet-M @ 448x448,我们可以达到 128 的最大批量大小,这明显高于 EfficientNet 和 ResNext 等其他常见网络。

类别平衡

Herbarium 2020 数据集存在明显的类别不平衡,因此我们使用了一种简单的损失加权方法,即乘以类别频率的倒数。

注意:我们仅在训练的最后约 15 个 epoch 中使用了类别平衡,以便网络先学习基本特征。

Class Balancing Chart

数据增强

  • 使用 Squish(挤压缩放)而不是 Crop(裁剪)
  • FlipLR(左右翻转)
  • Cutout: 0.5

特殊的增强方案(在 Public LB 上提升约 0.5%):

  • 随机放大 (p=0.4, zoom_factor= random between 1-1.15)
  • 减少仿射变换:p_shear: 0.1, p_rotate=0.2, rotate_degrees=10
  • 去色:p_decolorize: 0.4
  • 矩形调整大小:有小幅提升

测试时增强 (TTA)

平均水平翻转预测结果。

我们最好的单模型

模型:TResNet-L

阶段 1:
在 448x448 分辨率下训练 100 个 epoch,CE+SoftTriplet(类别平衡从第 85 个 epoch 开始)
Public LB 分数(无后处理):0.84089
Public LB 分数(有后处理 P1+P2):0.85093

阶段 2(高分辨率微调):
在 544x416 分辨率下微调 10 个 epoch + 类别平衡
Public LB 分数(无后处理):0.84727
Public LB 分数(有后处理 P1+P2):0.85604

后处理(在 Public LB 上提升约 0.9%)

组织

同比赛其他方案