Ecology Letters | BioEncoder:用于比较有机体生物学的度量学习工具包

文摘   2024-08-14 12:39   江苏  
在生物图像分析领域,深度学习(DL)已成为核心工具包,例如用于分割和分类。然而,传统的DL方法在面对具有不平衡类别和难以区分的表型差异的大型生物多样性数据集时面临挑战。在此我们介绍BioEncoder,这是一个用户友好的度量学习工具包,它通过专注于学习个体数据点之间的关系而非类别的可分性来克服这些挑战。BioEncoder作为Python包发布,旨在易于使用并适用于各种数据集。它具有与分类无关的数据加载器、自定义增强选项,以及通过基于文本的配置文件进行简单的超参数调整。该工具包的重要性在于其潜力可以在生物图像分析中开辟新的研究途径,同时使先进的深度度量学习技术更加普及。BioEncoder专注于弥合复杂DL流程与生物学研究实际应用之间差距的迫切需求。

  • 引言

先进数字成像技术的出现彻底改变了生物研究,特别是在医学、农业、生物学以及自然历史博物馆的大型收藏领域,捕捉了生物体结构、功能和行为的复杂细节。虽然图像已成为理解这些收藏中丰富生物多样性的基石,但这种数字图像的庞大数量和复杂性带来了额外的挑战:随着数字图像库的扩大,对分析和解释这些数据的复杂方法的需求也在增加。生物图像分析的一个核心挑战在于从高维图像中提取有效代表潜在生物结构或标本之间差异的有意义特征。在处理自然历史收藏中典型的多样化标本时,这项任务变得愈发困难。在这些收藏中,稀有物种和高采样工作通常导致类别不平衡的数据集,包含仅表现出难以区分的表型差异和高度分层的分类关系的标本。

为应对这些挑战,深度学习(DL)的最新进展发挥了关键作用。DL有能力自动化图像分割和分类,从而使图像分析更加高效、准确和客观。具体而言,DL模型已被用于识别和分类物种、检测形态差异以及分析发育和疾病模式等任务。通过自动定义和学习图像中包含的标本特征,并具有高准确性和高通量,DL允许对生物多样性进行更全面和高通量的理解。这些任务的自动化不仅简化了工作流程,还为生物研究开辟了新的可能性,如大规模表型筛选、用于生物多样性评估的自动分类以及详细的形态分析,这些在手动执行时是不切实际甚至不可能完成的。然而,传统DL方法受到其无法有效处理不平衡类别以及依赖非度量特征空间的限制,这些特征空间不利于类别间的定量比较。

度量学习(MEL)作为深度学习的一个变体出现,其特点是能够在度量空间上学习图像特征。这个空间能够根据选定的距离度量(如欧几里得距离)在高维度上对样本或群体进行定量比较。MEL方法常用于人员重识别、图像检索和其他具有极多类别和重尾分布的视觉识别任务,因为它关注的是数据点之间的关系,而不是类别的可分性。在生物图像分析中,这种方法至关重要,因为它允许模型捕捉并强调跨多样类别的重要特征,包括那些代表性不足或表现出难以区分的表型差异的类别,比如由季节性等因素引起的差异。除了传统和广泛使用的深度学习进行图像分类,如Conservation AIMegaDetector所应用的,MEL模型还可以用于定量探索分类所基于的空间,例如计算表型相似性得分。因此,MEL已经在一些生物学应用中得到应用,例如从相机陷阱图像中重新识别大型动物或从显微图像中识别浮游有孔虫。特别是在大型且高度多样化,但不平衡且地理偏差的数据集(如来自自然历史收藏中的生物标本)的背景下,MEL可能有助于更定量和准确地表示生物多样性。

尽管MEL具有潜力,但由于缺乏整合该领域最新进展的用户友好工具包,其在生物数据分析流程中的整合一直较为缓慢。为了弥补这一差距,我们推出了BioEncoder,这是一个全面的工具集,旨在通过度量学习促进生物图像分类和从图像中学习特征(图1)。BioEncoder使用监督式MEL分析任何带标签的图像数据集,例如包含不同形态类型、物种或更广泛的分类群的数据集,特别适用于自然历史博物馆中典型的多样化数据集。该软件包为命令行和交互式会话提供了直观灵活的实现,具有数据加载器、自定义增强技术和通过YAML配置文件进行超参数选择的功能;YAML是一种既可供人类阅读又可供机器读取的标记格式。这些特性允许轻松定制并应用于各种数据集和研究问题。我们对BioEncoder在多态性豆娘种类Ischnura elegans的生物图像数据集上的性能评估证明了其有效性。该软件包包括丰富和交互式的模型可视化,能够对学习到的特征进行详细分析和解释。这一方面对于理解图像中捕捉到的表型差异,从而理解生物多样性的细微差别至关重要。

1 BioEncoder是一个用于度量学习的Python包;提供以下功能:(1)量化图像相似性,(2)根据图像的内在特征对图像进行分类,以及(3)发现与类别区分最相关的特征。该包可以与任何类型的数据集一起使用,重点在于用户友好性:它可以在交互式Python会话中使用,也可以通过命令行的入口点使用。

  • 材料与方法

包介绍

BioEncoder是一个Python包,为用户提供友好的访问高级和可扩展的监督MEL技术,可以灵活应用于任何带标签的图像数据集,而无需深入的计算知识。虽然我们设计这个包时考虑的是进化生态学和生物生态学的应用,但它可以应用于任何科学领域的图像数据集(如生物医学或农业研究)。具体来说,该包的三个主要应用场景是(图1):

1. 图像相似度:比较多个图像并计算相似度分数;

2. 图像分类:根据图像特征预测图像类别;

3. 特征发现:识别对分类重要的区域。

该包采用两阶段训练方法。在第一阶段,生成图像嵌入(模型学习的视觉内容的向量化表示),允许计算和可视化图像之间的相似性。第二阶段在最后一层包括一个分类头来预测图像的类别,这是可选的——提供的可视化推理脚本也可以使用第一阶段的权重(图2)。包的当前版本(v1.0.0,快照可通过数据存储库获得)已在Python 3.93.103.11版本上测试,并包含了大多数最先进的度量损失,如监督对比、加性角度边界损失和子中心ArcFace损失,以及更传统的度量损失,如三重损失。主要依赖包括pytorchpytorch metric-learningtimm。我们在WindowsUnix系统上测试了该包。

2 BioEncoder工作流程。最初,用户指定一个现有的根目录,其中训练过程中产生的所有材料和结果都存储在子目录中,以及一个运行名称,该名称作为前缀添加到存储在子目录中的所有数据、权重、日志等。在将数据拆分并添加到根目录下的数据目录后,可以使用合适的YAML格式的配置文件开始模型训练(模板通过数据仓库提供)。在第1阶段或第2阶段的训练完成后,可以将未标记的图像提供给bioencoder.inference函数以提取嵌入或对图像进行分类。

安装和快速入门

该软件包通过pip install bioencoderPython包索引安装。安装后,软件包的功能可通过公共函数使用(图2),这些函数可以通过命令行界面(CLI—例如Windows终端或Linux控制台)或通过集成开发环境(IDE—例如VS codeSpyder)交互式使用。我们强烈建议将软件包和所有必要的依赖项安装到虚拟环境中。具体来说,要测试软件包的功能,用户应该:(i)安装合适的python包和环境管理器,如condamamba;(ii)创建一个Python内核≥3.9的环境;(iii)安装软件包及其依赖项;(iv)下载我们提供的示例图像数据集;以及(v)按照存储库中的说明进行操作。有关如何开始的更详细说明可以在软件包的GitHub存储库中找到(https://github.com/agporto/BioEncoder)。

案例研究

在以下内容中,我们使用多态昆虫Ischnura elegans(图3a)的生物数据集演示BioEncoder的功能和性能,该数据集展示了生物数据集的一些典型特性:高度不平衡的类别和表型渐变。Ischnura elegans是一种短寿命的单世代豆娘,在羽化后表现出三种雌性色彩形态(androchromeinfuscansinfuscans-obsoleta [以下简称A型、I型和O],图3b)。A型被认为是模仿单态雄性,以避免由于雄性交配骚扰而导致的负面适应度后果。Svensson小组维护一个长期监测计划,研究隆德镇(瑞典斯科讷)附近多个种群中形态的频率和进化动态。豆娘用手网捕获并带回实验室,在高度标准化的条件下识别和拍摄形态)。在监测的种群中,性别比例和形态频率严重倾斜(平均:雄性=60%A=26%I=12%O=2%)。由于色彩多态性和雄性拟态导致的渐进表型差异,以及严重不平衡的群体,使得这个数据集非常适合使用BioEncoder进行案例研究。所有预处理的图像、配置文件和用于训练的脚本都可以通过数据存储库获得。以下段落与图2中呈现的工作流程相对应更多细节可以在支持信息(SI)中找到。

配置:我们使用BioEncoder的主要配置功能启动工作流程,该功能用于指向保存所有输出的根目录,按不同的运行名称进行分隔。初始设置后,我们为训练过程的两个阶段以及模型平均、可视化和模型探索器提供了单独的YAML配置文件。在每个YAML文件中,用户需要指定模型架构、超参数和增强。案例研究中使用的配置文件可以在数据存储库中找到,GitHub存储库中的模板可作为不同数据集和用例的起点。

数据准备:数据集跨越10年(2014-2023),其中我们使用了6年的数据进行训练和验证,剩余4年用于最终测试。总共,训练和验证集包含8386张图像(5000只雄性,2240A型,999I型,147O型)。在将数据分为训练集和验证集时,我们允许最小类别的最大扩展为6倍(6*147 = 882),这样我们得到了2793张图像(882只雄性,882A型,882I型,147O型)。用户可以设置自己的类别间最大比率,以减少丰富类别的权重并训练出更具泛化能力的模型。我们使用了BioEncoder的默认"flat"选项进行训练/验证分割,该选项使用所有图像的10%进行验证;在所有四个类别中均匀分布,以确保验证指标不受主导类别的影响(276张图像 = 每类69张)。然而,还有其他分割选项可供用户选择,以适应他们特定的数据集或训练环境。

模型训练(第一阶段):我们使用一台64核工作站进行模型训练,配备RTX A6000 GPU48GB GPU内存),CUDA 12.1cuDNN 8.9.2。第一阶段训练中,我们采用了预训练的EfficientNet-B5模型,选择该模型是因为它在不同数据集上的预训练证明了其在特征提取方面的功效。这个阶段训练了100epoch,但未包含分类头,反映了对表示学习的关注而非直接类别预测,与监督对比学习方法一致。我们使用SupCon损失函数来优化嵌入空间,通过减少类内方差和增加类间分离来增强模型区分不同实例的能力。图像被调整为384 × 384像素,并进行了增强以引入训练数据的可变性,从而帮助模型学习鲁棒性和不变特征(有关训练参数和增强的详细信息,请参阅SIGitHub repo中的注释配置文件)。

模型训练(第二阶段):完成第一阶段训练后我们对表现最佳的三个模型权重进行随机权重平均(SWA)以进一步增强EfficientNet-B5模型的泛化能力。随后为了优化第二阶段训练的模型配置我们使用该软件包的学习率查找脚本来经验性地确定最有效的学习率。这种方法基于短期训练期间逐步调整学习率从而确定平衡训练速度和收敛稳定性的最佳速率。第二阶段训练持续30epoch并在先前冻结的EfficientNet-B5架构中引入分类头将模型的重点从表示学习转移到直接类别预测。请注意第二阶段训练完全是可选的通常不会导致分类准确性的提高。完成第二阶段训练后我们对表现最佳的三个模型权重进行SWA以获得最终模型。

可视化和推理:我们使用第一阶段的SWA权重创建了一个交互式图(图3c)。面板显示了验证集中每个个体的图像嵌入的主成分分析(PCA)排序也可使用t分布随机邻域嵌入(t-SNE)。PCA显示了个体在线性空间中的分离和聚类。此外我们在第一阶段的SWA权重上使用BioEncoder的模型探索功能来可视化训练过程中特定层的滤波器显著性图和激活图(图3d)。具体来说我们探索了类激活图以识别对最终分类影响最大的输入图像部分(GradCAM)以及识别与其他类别差异最大的图像部分(ContrastiveCAM)。在本案例研究中未使用推理脚本。该功能可以使用第一阶段的权重提取嵌入(适用于统计分析或不同的可视化方案)或使用第二阶段的权重对新图像进行分类。

3 BioEncoder案例研究

我们将整个工作流程重复了10次,包括训练过程、SWA和学习率查找器的所有步骤。运行之间的唯一区别是选择训练和验证图像的随机种子。我们将验证集和测试集的准确度和混淆度分数展示如下(图4)。

4 验证集(N = 69)和测试集(N = 59)的混淆矩阵

  • 结果

BioEncoder管道的第一阶段在测试系统上训练了100epoch,平均耗时81.273±0.199分钟(10次运行的平均值和标准偏差),训练和验证损失指标均有显著改善(详见支持信息)。编码器验证指标显示,精度从最初的0.564±0.056增加到训练期结束时的平均0.94±0.012。在管道的第二阶段,模型训练又延长了30epoch4.358±0.0214分钟)。准确率在一个较高的水平上下波动,没有明显变化,即从最初的0.946±0.015%0.941±0.017%,就像F1分数一样,从训练期开始时的0.95±0.012到训练期结束时的0.945±0.015。正如验证集的汇总混淆矩阵所示(图4),所有类别的预测正确率都达到了95%98%,只有O-形态的预测正确率为87%,因为它最常与I-形态混淆。此外,验证集(每类69幅图像)的混淆分数与测试集(每类59幅图像)的分数相近,而模型在最终推理之前并没有看到测试集。

利用归一化图像嵌入,我们发现了豆娘形态和性别之间的两个相关分离轴(图3c)。一方面,所有四个群体都沿着色彩和图案的梯度分离,这在很大程度上与x轴上的第一个维度一致。最值得注意的是,O形态的胸部呈均匀的红色,位于最左侧,与I形态明显分开,后者的胸部有黄色条纹。最右边的是A形态和雄性,它们的胸部有蓝色条纹,腹部末端有一块亮蓝色色斑。另一方面,雌性豆娘聚集在体型和形状梯度的一端,体型较大、较粗壮的O型和I型雌性豆娘位于左上方,体型较小、较细长的雄性豆娘位于右下方,而A型豆娘(假定的雄性模仿者)则位于两者之间。A形态接近雄性,在表型空间中处于其他形态和雄性之间的中间位置,这为雄性拟态假说提供了强有力的定量支持,但同时也表明,拟态在颜色和花纹方面比在体型和形状方面更为完整。对特征空间进行仔细的目视检查还发现,我们数据集中的一些图像标记不正确,我们通过检查数据集中的文件证实了这一点(见图3c中的黑圈)。

第二阶段的分类层允许我们探索特定类别的激活图和跨类别的判别特征。我们发现,具有高信息价值的区域在很大程度上与人类专家通常用于识别形态的区域重叠。具体来说,对GradCAM方法视觉输出的检查显示,所有类别的胸部和腹部周围区域都有较高的激活(图3d)。此外,我们还发现头部区域的激活度也很高,这可能是由于眼睛上方的小色块以及头部形状的潜在影响。对比CAM显示了不同形态和性别之间的强烈表型差异,如胸部颜色(O-形态为单色,A-/I-形态和雄性为条纹)、下腹部颜色(A-形态和雄性有蓝色斑块,I-O-形态没有)和腹部形状(雄性细长,雌性粗壮)(图3d)。我们在GradCAMContrastiveCAM中都使用了模型的上层,虽然分辨率较低,但却能很好地概览模型。如果将重点放在模型的下层,还可以探索更多细微的变化。

  • 讨论

标本和物种的分类是生物生态学和进化学中最普遍的图像分析任务之一。然而,生物数据集给传统深度学习方法带来了巨大挑战,使得在类别之间进行定量比较和将学习到的特征与潜在生物结构联系起来变得不可行。通过BioEncoder,我们提供了一个易于使用的工具箱,它使用度量嵌入学习将图像数据编码到稳健的度量特征空间中,并以高精度对图像进行分类。在开发BioEncoder时,我们的主要目标是弥合生物学界获取先进度量学习工具的重大差距,而不是重新定义图像分类深度学习的前沿。认识到生物学家在处理自然历史和生物学中固有的常常不平衡的数据分布时面临的独特挑战,我们将BioEncoder定制为直观、用户友好的工具包。通过优先考虑易用性,我们努力使度量嵌入学习的应用民主化,我们认为这种方法特别适合生物学研究。特别是,度量嵌入学习专注于理解单个数据点之间的关系,而不仅仅是类别的可分性,这与生物数据的粒度和多样性密切相关。

通过BioEncoder,我们还旨在增强从图像分类模型中获得洞察力和/或解释的能力。该工具包旨在提供全面的模型可视化,以及交互式PCAt-SNE图,专门为生物学家提供便利,帮助他们浏览模型生成的嵌入空间。这一特性对于将复杂的高维嵌入空间转化为更直观的特征框架至关重要,反映了生物学家传统上编码和解释图像数据的方式。例如,我们通过从豆娘数据集中提取图像嵌入构建的特征空间证实了几个来自野外观察和实验研究的假设和观察结果。首先,雌性形态沿着体色和图案的梯度形成了不同的表型簇,这从PCA中维度1的清晰分离可以看出(图3c)。此外,A-型簇位于雄性和I-型及O-型之间,沿着大小和形状的梯度,支持了A-型雌性比其他两种形态稍小且更纤细的观察结果。这一观察结果,以及类似雄性的蓝色胸部和腹部着色,为A-型雄性拟态的现有假设提供了定量支持。

从纯粹的鲁棒性和性能角度来看,我们观察到所有形态都具有很高的分类准确率,尽管存在一些标签错误的图像,并且包括了O形态(该形态的可用图像数量仅为其他类别的一小部分)。这表明我们的训练设置在第一阶段为从豆娘数据集中学习判别特征提供了有效的方法,利用所选架构和对比学习范式的能力为后续阶段做好准备。这种度量嵌入学习方法常用于人员重识别、图像检索和其他具有极端类别数量和重尾分布的视觉识别任务。在豆娘数据集中,形态和性别之间的差异非常微妙,未经训练的眼睛很难区分,例如雄性和A形态。这种雄性拟态是种内表型相似性的一个特殊案例,还有许多其他种内和种间拟态的案例,这些都是反复进化的结果。总的来说,生命之树形成了一个物种多样性网络,其分支之间具有不同程度的亲缘关系和表型相似性,这对分类模型来说是一个极具挑战性的案例。通过将BioEncoder应用于类别间表型高度相似的极端情况,我们展示了度量嵌入学习方法在生物数据集上也是有效的。

尽管实验结果令人鼓舞,但BioEncoder仍存在一些需要解决的限制。例如,该工具依赖于手动调整超参数,这可能耗时且需要深度学习方面的专业知识。此外,本研究中进行的实验仅限于少数数据集和分类群,还需要进一步验证该工具在更多样化数据集上的表现。尽管如此,实验结果仍然证明了所提出方法在捕获可用于分类任务的生物相关特征方面的有效性。BioEncoder编码训练集中未见过的图像的能力进一步凸显了其适应性,展示了其稳健性和持续学习的潜力。这一特性对于解决生物多样性的“长尾”问题特别有价值,因为绝大多数物种都是稀有的,在科学数据集中代表性不足。BioEncoder通过高效编码多样化和稀疏的表型信息,为这些挑战提供了可扩展的解决方案。我们希望该软件包的用户友好性以及广泛的支持材料能够鼓励和支持广大用户尝试捕捉生物多样性的全貌。

  • 结论

总之,BioEncoder是将生物图像编码为有意义子空间的重要工具,可用于有机体生物学的各种应用。该工具提供了一种与分类无关的方法,适用于任何生物数据集,使用度量学习可以生成更有意义的生物特征,并可在不同数据集之间转移。在不同的生物数据集和环境中应用BioEncoder,以及与科学界一起继续开发该软件包,将为推动有机体生物学的发展带来巨大潜力,促进发现新的生物特征和关系。

  • 文献信息

BioEncoder: A metric learning toolkit for comparative organismal biology
期刊
Ecology Letters (IF = 7.6)
作者
Moritz D. Lürig*, Emanuela Di Martino, Arthur Porto
发布日期
2024 年 8 月 13  日
DOI
https://doi.org/10.1111/ele.14495
文章翻译仅代表译者的理解,如需参考和引用相关内容,请查阅原文。
点击“阅读原文”可查看文献↓↓↓

Biodiversity Monitoring
生物多样性;监测保护;群落生态;生态统计;R语言;python。 主要分享一些前沿的文献和方法实例,更新看心情和时间。
 最新文章