BioCLIP:物种图像的基础视觉模型

从无人机到个人手机,各种相机收集的自然世界图像是越来越丰富的生物信息来源。从图像中提取生物相关信息用于科学的计算方法和工具激增,尤其是计算机视觉。然而,其中大多数都是为特定任务设计的,不容易适应或扩展到新的问题、环境和数据集。为了解决这一问题,BioCLIP发布了TREEOFLIFE-10M,这是最大、最多样化的生物图像数据集。然后开发了BIOCLIP,这是生命树的基础模型,利用TREEOFLIFE-10M捕捉到的生物学的独特特性,即植物、动物和真菌的丰富多样的图像,以及丰富的结构化生物学知识。BioCLIP在不同的细粒度生物分类任务上进行了严格的基准测试,BioCLIP始终显著优于现有的基线(绝对值为16%至17%)。

来自:BIOCLIP: A Vision Foundation Model for the Tree of Life

目录

  • 背景概述
  • 贡献
  • CLIP背景下的零样本和小样本场景

背景概述

计算机视觉正在迅速成为研究自然世界的工具。然而,应用计算机视觉来回答生物学问题仍然是一项艰巨的任务----生物学家必须手动为感兴趣的特定分类种群标记足够的数据,并找到和任务相关的模型。此时,CLIP和GPT-3等基础模型正在推进零样本或少样本学习(无需参数更新)。类似的生物学视觉基础模型应该适用于跨越整个生命树的任务,而不仅仅是它所训练的那些分类种群。

在这项工作中,作者的目标是为生命树开发这样一个基础模型:

  • 首先,它应尽可能推广到整个生命树,以确保它支持研究人员研究许多不同的分支。此外,收集覆盖数百万已知分类群的训练数据是不可行的,因此该模型必须推广到训练数据中不存在的分类群。
  • 其次,它应该学习生物图像的细粒度表示,这种细粒度是至关重要的,因为生命树将生物分为广泛的类别(动物、真菌和植物)甚至非常细粒度的类别(印第安浅蓝鸟,印第安蓝鸟)。
  • 最后,由于生物学中数据收集和标记的高成本,在low-data(即零样本或少样本)设置中的性能至关重要。

虽然泛化、细粒度分类在计算机视觉中已经是老问题,但对于生物自然图像,数亿张图像上训练的现有通用视觉模型依然达不到要求。具体而言,现有的视觉模型产生了一般的细粒度表示,有助于比较狗和狼等常见生物,但不适用于更细粒度的比较,例如Onoclea sensibilis和Onoclea hintonii(见图1)。

下面,作者确定了开发生物学视觉基础模型的两个主要障碍。首先,需要合适的预训练数据集:现有数据集缺乏规模、多样性或细粒度标签。其次,需要研究适当的预训练策略,利用生物学领域的特性,更好地实现前面提到的三个关键目标。
fig1

  • 图1:a.两种不同植物的两个分类群(taxa),或分类学标签(taxonomic labels),图d和图e,除了species之外,它们的taxa是相同的。b.自回归文本编码器自然地对分类法(taxonomy)的层次结构进行编码。看看Order token(Polypodiales)如何包含Kingdom, Phylum 和 Class tokens的信息。这有助于将视觉表示与层次结构对齐。c.分类标签的这些分层表示被馈送到标准对比预训练目标中,并与图像表示 d 和 e 相匹配。
文本类型例子
Common-共识black-billed magpie-黑嘴喜鹊
Scientific-科学Pica hudsonia-黑嘴喜鹊
Taxonomic-分类学Animalia Chordata Aves Passeriformes Corvidae Pica hudsonia
Scientific + CommonPica hudsonia with common name black-billed magpie
Taxonomic + CommonAnimalia Chordata Aves Passeriformes Corvidae Pica hudsonia with common name black-billed magpie
  • 表3:BIOCLIP训练中考虑的文本类型。

贡献

鉴于这些目标和实现这些目标的挑战,作者介绍了:TREEOFLIFE-10M,一个大规模的ML ready生物图像数据集,以及BIOCLIP,一个生命树的视觉基础模型。

  • TREEOFLIFE-10M:一个大规模、多样化的ML生物图像数据集。作者策划并发布了迄今为止最大的ML ready生物图像数据集及其相关分类标签,包含超过1000万张图像,覆盖生命树中的454,000个分类群。相比之下,目前最大的ML ready生物图像数据集中iNat21仅包含270万张图像。TREEOFLIFE-10M集成了现有的高质量数据集,如iNat21和BIOSCAN-1M。更重要的是,它包括来自生命百科全书的最新图像,该百科全书提供了TREEOFLIFE-10M的大部分数据多样性。TREEOFLIFE-10M中的每个图像都以其尽可能最好的分类层次以及生命树中更高的分类等级进行标记(参见图1和表3中的分类等级和标签示例)。TREEOFLIFE-10M能够训练BIOCLIP和未来的生物学基础模型。
  • BIOCLIP:生命之树的视觉基础模型。对于TREEOFLIFE-10M等大规模标记数据集,一种标准、直观的训练策略(如ResNet50和Swin Transformer等其他视觉模型所采用的)是使用监督分类目标,并从图像中学习预测分类指数。然而,这并没有认识到和利用分类学标签的丰富结构——分类群(taxa)不是孤立存在的,而是在一个全面的分类学中相互联系的。因此,通过普通监督分类训练的模型不能很好地推广到那些unseen分类群(不能支持零样本分类)。

相反,作者提出了一种新的策略,将CLIP风格的多模态对比学习与BIOCLIP丰富的生物分类学相结合。作者将从Kingdom到最远端的taxon rank“扁平化”为一个称为taxonomic name的字符串,并使用CLIP对比学习目标来学习将图像与其对应的分类名称相匹配。直观地说,这有助于该模型推广到看不见的分类群——即使模型没有看到某个物种,它也很可能学会了该物种属(genus)或科(family)的合理表示(见图1)。BIOCLIP还支持零样本分类法(开放词汇表)。作者进一步提出并证明了混合文本类型训练策略的有效性;通过在训练过程中混合不同的文本类型(例如,taxonomic vs. scientific vs. common),模型保留了taxonomic name的泛化能力,同时在测试时具有更大的灵活性。例如,即使下游用户只提供常见的物种名称,BIOCLIP仍然表现出色。
tab4

  • 表4:模型基准测试。

CLIP背景下的零样本和小样本场景

对于零样本,遵循与CLIP相同的程序(直接计算输入图像与候选文本的相似度就行)。对于小样本学习,遵循SimpleShot并使用nearest-centroid classifier。对于k-shot,首先对每个类的k个示例进行随机采样,并从预训练模型的视觉编码器中获得图像embedding。然后,计算 k 个嵌入的平均特征向量作为每个类的质心。数据集中剩下的所有示例都用于测试。在对每个质心和测试特征向量应用均值减法和L2归一化后,选择质心离测试向量最近的类作为预测类。作者用不同的随机种子重复每个实验5次,并在表4中报告平均准确度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/36653.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【AI大模型】Transformers大模型库(十二):Evaluate模型评估

目录 一、引言 二、Evaluate模型评估 2.1 概述 2.2 使用方法 2.2.1 步骤1: 导入必要的库 2.2.2 步骤2: 加载模型和分词器 2.2.3 步骤3: 准备数据集 2.2.4 步骤4: 数据预处理 2.2.5 步骤5: 创建训练和评估数据集 2.2.6 步骤6: 设置训练参数并创建Trainer 2.2.7 步…

基于Flask开发的前后端交互项目(可用于期末大作业) MySQL数据库 文件上传 Spider爬虫 Echarts可视化展示 JS动态

项目描述: 开发一个基于Flask框架开发的前后端交互项目,项目内容为 东京奥运会 。对各个需要填写的字段做了数据验证,非法信息会被JS拦截提醒不合法;还对未登录就访问做了拦截,阻止未登录就访问。 前端:HT…

idea 开发工具properties文件中的中文不显示

用idea打开一个项目,配置文件propertise中的中文都不展示,如图: 可修改idea配置让中文显示: 勾选箭头指向的框即可,点击应用保存,重新打开配置文件,显示正常

Java开发环境配置

一、JDK 下载JDK:Java Downloads | Oracle 配置环境变量:09、Java入门:Path、JAVA_HOME环境变量配置_哔哩哔哩_bilibili 二、IDEA 下载IDEA: Download IntelliJ IDEA – The Leading Java and Kotlin IDE (jetbrains.com) 建…

HotSpot 垃圾收集器

文章目录 前言HotSpot 垃圾收集器1. 查看jdk默认垃圾收集器命令2. 查看当前服务使用的是哪个垃圾收集器:3. 常用的垃圾收集器3.1. 并行垃圾收集器(Parallel Garbage Collector)3.2. CMS 垃圾收集器(Concurrent Mark-Sweep Garbage Collector&…

情感分析方法与实践

第1关:情感分析的基本方法 情感分析简介 情感分析,又称意见挖掘、倾向性分析等。简单而言,是对带有情感色彩的主观性文本进行分析、处理、归纳和推理的过程。在日常生活中,情感分析的应用非常普遍,下面列举几种常见的…

Gradle学习-3 Gradle插件

1、Gredle插件是什么 Gradle插件是用于扩展和增强Gradle构建系统的功能模块通过插件,Gradle可以执行各种构建任务,如编译代码、打包应用、运行测试等 Gradle插件主要分为:二进制插件、脚本插件 二进制插件二进制插件是预编译的、可以复用的…

web学习笔记(七十二)

目录 1.vue2通过$parent实现组件传值——父传子 2.vue2 通过$children实现组件传值——子传父 3. provide和inject传值(依赖注入) 4.vue2如何操作dom 5.vue2如何拿到最新的dom 6.filters过滤器 7.vue2的生命周期 8.vuex的用法 1.vue2通过$parent…

大数据开发需要哪些职场知识

职场是个人情世故的江湖,除了专业技能,成功的大数据开发人员还需要掌握多种职场知识。以下是一些重要的职场知识和技能,结合实际例子详细说明。 目录 理论知识与工程实践理论知识工程实践例子 项目经验总结项目管理总结和反思例子 做事方式方…

一招教你搞定Windows系统指定IP不变[固定IP地址方法]

1.打开控制面板,找到“网络和Internet” 点击进入: 2.点击打开“网络和共享中心”后,选择“更改适配器选项”。 3.点击 “查看此连接的状态”, 接着点击“详细信息” 查看信息。记录当前的IP地址是 10.88.x.xx,后面我们…

Linux驱动开发笔记(九)IIC子系统及其驱动

文章目录 前言一、IIC驱动框架二、总线驱动2.1 iic总线的运行机制2.2 重要数据结构2.2.1 i2c_driver结构体2.2.2 i2c总线结构体 2.3 匹配规则 三、设备树的修改四、设备驱动的编写4.1 相关API函数4.1.1 i2c_add_adapter( )4.1.2 i2c_register_driver( )4.1.3 i2c_transfer( )4.…

Spring+SpringMVC+MyBatis整合

目录 1.SSM介绍1.1 什么是SSM?1.2 SSM框架1.2.1 Spring1.2.2 SpringMVC1.2.3 MyBatis 2.SSM框架整合2.1 建库建表2.2 创建工程2.3 pom.xml2.4 log4j.properties2.5 db.properties2.6 applicationContext-dao.xml2.7.applicationContext-tx.xml2.8 applicationContex…

Redis-在springboot环境下执行lua脚本

文章目录 1、什么lua2、创建SpringBoot工程3、引入相关依赖4、创建LUA脚本5、创建配置类6、创建启动类7、创建测试类 1、什么lua “Lua”的英文全称是“Lightweight Userdata Abstraction Layer”,意思是“轻量级用户数据抽象层”。 2、创建SpringBoot工程 3、引入相…

新能源汽车CAN总线故障定位与干扰排除的几个方法

CAN总线是目前最受欢迎的现场总线之一,在新能源车中有广泛应用。新能源车的CAN总线故障和隐患将影响驾驶体验甚至行车安全,如何进行CAN总线故障定位及干扰排除呢? 目前,国内机动车保有量已经突破三亿大关。由于大量的燃油车带来严峻的环境问题,因此全面禁售燃油车的日程在…

汽车租赁系统

摘 要 随着汽车租赁市场的快速发展,为了提高汽车租赁服务的效率和用户体验,本论文设计与实现了一款基于Java的汽车租赁系统。 该系统采用B/S架构,利用JavaWeb技术和MySQL数据库实现了车辆信息管理、在线车辆租赁、门店出车模块、租赁订单信息…

Android Kotlin 中的闭包函数

闭包函数是现代编程语言中一个重要的概念,Kotlin 作为一种现代的 JVM 语言,自然也支持闭包函数。本文将详细介绍闭包函数的概念、在Kotlin 中的使用方法,以及一些常见的应用场景。 什么是闭包函数? 闭包函数,也称为闭…

React@16.x(42)路由v5.x(7)常见应用场景(4)- 路由切换动画

目录 1,实现路由切换基础样式 2,使用 CSSTransition 添加动画1,自定义动画组件 *TransitionRoute.jsx*2,*App.jsx*3,样式改动 3,注意点 通过一个例子来说明如何实现。 1,实现路由切换 基础样式…

亿发进销存管理系统+:多终端无缝协同,实现经营销售场景全覆盖

亿发软件凭借产品、市场、业务的深入理解,在进销存基础上进行了延伸,推出多终端、一体化的“进销存管理系统”多元产品矩阵。对企业经营中进货、出货、销售、付款等进行全程跟踪管理。有效辅助企业解决业务管理、销售管理、库存管理、财务管理等一系列问…

【大数据】—量化交易实战案例双均线策略(移动平均线)

声明:股市有风险,投资需谨慎!本人没有系统学过金融知识,对股票有敬畏之心没有踏入其大门,今天用另外一种方法模拟炒股,后面的模拟的实战全部用同样的数据,最后比较哪种方法赚的钱多。 量化交易…

【项目实训】各种反爬策略及爬虫困难点总结

在这里,我总结了本次项目的数据收集过程中遇到的反爬虫策略以及一些爬虫过程中容易出现问题的地方。 user-agent 简单的设置user-agent头部为浏览器即可: 爬取标签中带href属性的网页 对于显示岗位列表的页面,通常检查其源代码就会发现&…