363. Bengali.AI Handwritten Grapheme Classification | bengaliai-cv19
首先,恭喜获胜者 @linshokaku 以及所有完成本次比赛的参与者。
我们没有想到会有这么大的震动(我们估计私有测试集中不会有那么多未见过的数据)。
无论如何,感谢 Bengali.AI 和 Kaggle 组织这次比赛,也感谢我的队友 @nejumi !
下图显示了我们方案的概述。我认为我们的方案非常简单,没有什么特别之处。
(顺便说一句,第一名的方案对我来说非常独特且令人印象深刻 ;-) )
在这里,我将针对一些值得注意的点进行简单的解释。
注意: 如果您想查看更高分辨率的图像,请参考此 链接。
我们使用了 CutMix、MixUp、Cutout、宽度/高度平移、旋转、腐蚀、GridMask(感谢 @haqishen)、缩放等增强方法。
CutMix 和 Cutout 对我们两人都很有效,但对我来说,高度平移和旋转效果不好,可能是因为 137 x 236 的尺寸(一些字形元素移到了图像区域之外 :-( )。
在训练集中,R、V 和 C 之间的组合是有限的。但正如主办方所说,在测试集中会出现一些未见过的组合。所以我做了一个简单的技巧;建立一个同时考虑 R、V、C 的共现和非共现关系的模型,以增强基于 SE-ResNet50 模型对未见数据的鲁棒性。该模型在 SE-ResNet 块之后有双路径。一条是从 GeM2D 到各个顶层全连接层(R、V 和 C)的直接路径。另一条则经过 2 个全连接层(请见上图)。
在比赛中期,@phalanx 在这个不错的 帖子 中建议我们使用 OHEM。
实际上,使用相同的技术后,我们的 CV 分数(召回率)确实提高了。
在一些 CV 比赛中,不同尺寸的图像集成可以提高分数。我们认为这在本次比赛中也是一样的。这个集成将我们的排名从第 12 名推到了第 6 名。
我们调整了预测结果以改善本次比赛的评估指标(召回率)。优化是针对所有类别(168 + 11 + 7)进行的。我们使用(1/每个类别的数量)作为优化的初始值。最优系数非常接近初始值。我们当时非常紧张是否要使用这种后处理,但结果是将我们推入了金牌区。