610. PlantTraits2024 - FGVC11 | planttraits2024
大家好!
首先,我要感谢组织者和所有参与者,是你们让这次比赛成为一次精彩的体验。我很高兴能与大家分享我的解决方案,它在 PlantTraits2024 比赛中获得了第一名!下面,我将介绍我的方法和关键技术要点。完整的代码和实现细节可以在我的 GitHub 仓库查看。欢迎提出任何问题或进行进一步讨论。
图片由 DALL-E 生成
我的解决方案涉及多种方法的组合,下面我将进行总结。主要组成部分包括:
最初,我只使用一个头直接回归预测性状,但这种方法不足以准确识别植物性状。植物性状与物种之间存在明显的相关性,来自相似环境的物种也具有共同的性状特征。例如,来自降雨较多地区的物种通常具有更绿、更大的叶面积。在 PlantTraits 竞赛中,我们需要估算物种的平均性状值,因此正确识别物种或具有相似性状的物种群至关重要。
考虑到这一点,我根据独特的植物性状将训练观测值划分为 17,396 个物种(详见 Rich Olson 的笔记本)。然后采用了三头方法:
最终,将这三个头混合以获得最终性状。混合权重设置为可训练,以最优方式权衡每个头的预测结果。
我使用了 ViT-b 和 ViT-l 主干网络进行特征提取,因为它们在这类任务中表现出色。一个基于西南欧植物群(基于 Pl@ntNet 协作图像 [1])预训练的模型在检测植物性状方面提供了显著提升。
关于气候、土壤等的元数据在估算氮含量和种子干质量等性状方面起着至关重要的作用,因为这些因素直接影响植物生长。在多次尝试使用 PCA 等整合方法失败后,我实现了结构化自注意力模块,以识别性状与元数据之间的相关性,以及元数据内部的相关性。
这是有趣的部分,因为涉及多个目标函数,每个目标的权重都经过手动微调。以下是各头的详细说明:
微调头和主干网络具有巨大潜力,因为保持欠拟合和过拟合之间的微妙平衡至关重要。调度器和优化器在训练各层中起着关键作用。我没有对头和主干使用单一优化器,而是采用了不同的学习率调度器。
总之,没有先验知识的头被给予更高的学习率,并较早进行预热。相比之下,主干层的学习率被降低,以防止覆盖有用的信息。
最终,我训练了多种模型变体,有些在直接回归性状方面表现优异,有些在物种分类方面表现更好。软分类头优于单个模型,在硬分类和回归之间取得了平衡。获胜提交结合了不同模型的各种头,并进行手动加权。
总之,回归、分类和软分类头的混合,结合先进的特征提取和微调策略,构成了获胜解决方案。欢迎提出任何问题,完整代码可在 GitHub 查看。
```参考文献:
[1] @misc{goeau_2024_10848263, author = {Goëau, Hervé and Lombardo, Jean-Chirstophe and Affouard, Antoine and Espitalier, Vincent and Bonnet, Pierre and Joly, Alexis}, title = {{PlantCLEF 2024 pretrained models on the flora of the south western Europe based on a subset of Pl@ntNet collaborative images and a ViT base patch 14 dinoV2}}, month = mar, year = 2024, publisher = {Zenodo}, doi = {10.5281/zenodo.10848263}, url = {https://doi.org/10.5281/zenodo.10848263} https://zenodo.org/records/10848263