第6名解决方案
第6名解决方案
作者:DatNT
发布时间:2021-03-17
我会先发布内核(Kernel),等我有时间的时候再写详细的解决方案 ;)
关键因素:图像尺寸、附加类别、辅助头训练、自蒸馏和 Noisy Student。
在这次比赛中,我没有使用分割掩码信息,因为早期没有使用它时,我的本地 CV 和公共 LB 分数就已经相当不错了,而且使用分割掩码进行训练会消耗大量的时间和计算资源,所以我决定放弃它。我仍在想,如果我投入时间和精力去训练带有分割掩码的模型,是否还能有所提升 😂
- 图像尺寸:老实说,我怀疑如果图像尺寸小于 1024x1024,是否有人能进入金牌区。起初我用小图像尺寸(448x448)做实验,但一个月后,为了获得高分,我专注于 1024x1024 或更大的图像尺寸。我的最终模型使用了多种尺寸的集合(1024、1280、1344 和 1408)来增加多样性。我也尝试在集成中放入尽可能多的模型,并使用了像 Efficient-net b6 和 b7 这样的大模型 😂
- 附加类别:我没有使用非 ETT 类别和交叉熵损失进行训练,而是创建了 3 个更多的类别:存在 CVC、存在 NGT 和存在 ETT。这稍微提高了本地 CV 分数。
- 辅助头:为了提高训练效率,我还在分类模型的中间块添加了输出层,并使用与最终输出层相同的真值进行训练(有人称之为监督技术 Supervision technique)。
- 自蒸馏:我将较深块的输出分离出来,并将它们作为额外的真值来训练较浅的块(权重 0.5)。
- Noisy Student:每次我完成 K 折训练后,我会生成 OOF 预测软标签,并在下一个循环中使用这些软标签来训练模型。这极大地提升了我的本地 CV 和排行榜分数(0.004-0.005),我认为这就是我能获得如此高排名的原因 :D
P/S:感谢 @underwearfitting 的快速提交技巧,以及 @roydatascience 和 @ttahara 的多头实现。我从你们大家的想法和技巧中受益匪浅 :)