610. PlantTraits2024 - FGVC11 | planttraits2024
大家好,我们要向本次比赛的组织者、参与者以及本文的读者表达我们的感谢之情。
我们是一群拥有一些计算资源的Kaggle新手。因此,我们选择了AutoML框架AutoGluon来简化训练过程并将其作为参考依据。以下对AutoGluon的理解来自我们对文档和源代码的理解,希望没有不当之处。
AutoGluon有一个处理多模态数据的模块,它使用不同的模型从各种类型的数据中提取特征,然后将这些特征进行拼接(concatenate)来进行预测。在本次比赛中,我们使用了TIMM库中的模型来提取图像特征,并将它们与表格数据特征结合进行最终预测。我们的测试表明,这种策略优于仅使用图像模型。
对于表格数据,AutoGluon提供了FT-Transformer和MLP来从中提取特征。虽然XGBoost等GBDT模型在表格数据上表现良好,但它们不适合用于特征提取。
对于融合架构,MLP和Transformer是两种选择。我们的测试表明,Transformer略优于MLP。
对于多标签处理,我们使用了链式方法(chaining method)。这涉及到在无标签的数据集上训练模型来预测第一个标签。对于第二个标签,我们使用原始数据集加上第一个标签的预测作为新数据进行训练,以此类推。标签的顺序是根据论文中的r2值确定的,将更容易预测的变量放在前面。这种方法旨在防止预测误差影响后续预测。在我们的实验中,这种方法比直接输出多个标签表现更好,尽管它需要更多的计算资源和时间。我们相信这种链式方法更好地考虑了标签之间的相关性,但我们对其他变量的控制不够严格,可能引入了一些误差。
然而,图像模型仍然是决定得分的关键因素。我们测试了各种图像模型的表现,发现EVA系列在这个任务上表现特别出色。使用eva_large_patch14_336在私有排行榜上得分为0.483,而eva02_large_patch14_448.mim_m38m_ft_in22k_in1k得分为0.486(顺便说一句,我一直想知道EVA的命名是否来自《新世纪福音战士》的Evangelion,因为从"Explore the limits of Visual representation at scAle"中提取EVA似乎很不寻常)。其他值得注意的模型包括vit_large_patch16_384得分为0.43,swin_large_patch4_window12_384得分为0.419。AutoGluon还通过合并验证集中得分最高的三个模型来进行模型汤(model soups)。由于计算资源和时间有限,我们没有进行太多的超参数调优。此外,AutoGluon的调优框架表现出一些意外行为,影响了我们的结果。
接下来,我们进行了堆叠。为了避免过拟合,我们选择在原始验证集上进行训练,虽然我们不太确定这是否是正确的选择。我们继续使用AutoGluon,但这次使用的是它的表格模块。表格模块提供了各种模型(包括高级GBDT和神经网络模型)以及不同的超参数配置,并可以进行bagging和加权平均(虽然在我们的任务中没有选择额外的堆叠,但在其他任务中可以使用的)。实验表明,它优于其他元学习器。我们最终发现,将使用MLP作为融合模型的版本纳入堆叠也显著提高了分数,最终达到0.526分,获得了第六名。我们相信堆叠有效地利用了不同模型的优势,更好地处理了数据集中的异常值。
在数据预处理方面,我们没有引入太多创新。我们观察到很多优秀的异常值分析,并在测试后将它们应用到我们的工作流程中。
总的来说,我认为像AutoGluon这样的AutoML框架确实带来了很多便利,并为那些技术上还不够成熟的人提供了有价值的参考。然而,它们仍然需要一些学习努力来阅读文档和源代码,而且当面临特定的定制需求时可能缺乏灵活性,通常需要深入修改源代码,消耗大量时间。
此外,我们尝试通过API请求TRY的公共数据和iNaturalist的图片来创建自己的数据集。我们尝试使用五张图片而不是一张,为模型提供更多学习材料。然而,由于时间限制,基于该数据集的模型仍在训练中,结果尚未确定。提交后我们将在本文中更新结果,如果您感兴趣,请随时关注。
编辑:我选择合并多张图片,但这个策略没有带来更好的分数。也许为每个物种使用多张图片更适合将问题转化为分类任务?
最后,真诚地感谢您阅读到最后!