【多模态】CLIP-KD: An Empirical Study of CLIP Model Distillation

论文:CLIP-KD: An Empirical Study of CLIP Model Distillation
链接:https://arxiv.org/pdf/2307.12732
CVPR 2024

Introduction

  1. Motivation:使用大的Teacher CLIP模型有监督蒸馏小CLIP模型,出发点基于在资源受限的应用中,通过teacher模型改进有价值的小CLIP模型。
  2. 贡献点:提出了多种蒸馏策略,包括relation, feature, gradient and contrastive paradigms四种,检查CLIP-Knowledge Distillation (KD)的有效性
  3. MSE(Mean Squared Error)loss有效,但是文中证明teacher和student encoder间通过交互式对比学习也很有效。原因归结为最大化了teacher和student模型的特征相似性。
  4. 在zero shot上取得了较好的效果
  5. 主要对比基线:TinyCLIP,作者认为该模型受限于weight inheritance,teacher和student模型必须same architecture-style。
  6. 整个过程分为两个视角:mimicry learning和interactive learning
    a. Mimicry learning阶段引导student对齐teacher生成的对应知识,其核心问题在于如何构建有意义的知识。contrastive image-to-text relationships, (image, text) features and gradients
    b. Interactive learning阶段将teacher和student结合起来进行联合对比学习,进行隐式学习。aggregate the student and teacher features

Method

  1. CLIP,其目标为图像到文本的对比损失和文本到图像的对比损失。
    在这里插入图片描述

  2. Overview
    在这里插入图片描述

  3. Contrastive Relational Distillation(CRD):对比关系蒸馏
    一个好的teacher模型将有a well-structured feature space,所以让student更好地模仿 structured semantic relations from the teacher。
    在这里插入图片描述
    a. 以图像为anchor
    在这里插入图片描述
    b. 以文本为anchor
    在这里插入图片描述
    在这里插入图片描述
    c. 最终损失,KL散度损失
    在这里插入图片描述

  4. 特征蒸馏Feature Distillation
    对齐teacher和student的feature embedding,如果teacher和student的embedding维度不同,需要一个额外的线性层将其映射到同一个维度。
    在这里插入图片描述

  5. Masked Feature Distillation
    根据上下文信息恢复masked视觉区域的embedding,mask策略同MAE。
    在这里插入图片描述

  6. Gradient Distillation
    保持teacher和student视觉和文本embedding的梯度一致性。the student could better understand how the output should change according to the input。
    在这里插入图片描述

  7. Interactive Contrastive Learning
    为了利用teacher和student之间的交互行,对encoders进行交互式对比学习。It regards the student as an anchor to contrast the teacher’s embeddings.

  • 举例:给定student的图像embedding,对比的文本embedding为teacher文本编码器输出的embedding而非student。同理,给定student的文本embedding,对比teacher的图像embedding。公式如下
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    最小化该损失等于最大化教师网络和学生网络之间的互信息的下界。以stundet的embedding为anchor,互信息衡量teacher的对比特征的不确定性降低。作者认为这可以learns more common knowledge from teacher。
  1. Augmented Feature Distillation
    引入fusion encoder强化student embedding,teacher可以指导student优化一个visual-text向量空间。引入visual fusion encoder和text fusion encoder。|| is the concatenation operator,the fusion encoder is a simple linear projection layer。然后融合后的视觉和文本特征计算通用clip的对比损失函数。
    在这里插入图片描述
  2. Overall Loss of CLIP Distillation
    集合所有损失函数。
    在这里插入图片描述

Experiment

  1. 实验配置
  • 视觉文本预训练数据:Conceptual Captions 3M (CC3M) and Conceptual 12M (CC12M)
  • run over 8 NVIDIA A800 GPUs. The batch size is 1024, where each GPU holds 128 samples.
  • set λCRD = 1, λF D = λM F D = 2000,λGD = 108 and λICL = 1. The learnable temperature τis initialized from 0.07.
    在这里插入图片描述
  1. 消融实验
    表一显示Feature Distillation (FD) 只用一个简单的 MSE损失就达到了最好的效果,MFD效果与其最接近。其次是ICL和CRD。
    进一步融合这些损失,FD+CRD+ICL效果最好。FD+ICL超过单纯FD效果,可以看出这两个损失函数互补。基础上再加CRD,效果继续得到了提高。将GD or AFD 到FD+ICL+CRD未有新的提高。
    在这里插入图片描述
  2. 实验结果
    改变不同的模型结构如下所示。可以看到蒸馏对于以下模型均有提升。(检索任务)
    在这里插入图片描述
    Zero-Shot ImageNet-Related Classification(分类任务):
    在这里插入图片描述
    为了证明本方法可以有效地将知识从大规模数据集转移到改进在小规模数据集上训练,实行以下实验:
    实验中分别使用了两个teacher模型,ViT-T/16实验中小的teacher模型的蒸馏效果更好,可能是因为teacher与student的gap过大,不易学习。整体上,clip-kd均超过了tiny-clip的结果。
    在这里插入图片描述
  3. 结果分析
    左图为收敛曲线,右图正样本减负样本相似度曲线,其相对距离越大越好说明正负样本区分度越高
    在这里插入图片描述
  4. 解释为什么不同的KD方法性能不同:下图是蒸馏后teacher和student的相似度统计。FD相似度最高,因为其蒸馏目标就是增加teacher 和student的特征相似度。
    在这里插入图片描述

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

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

相关文章

【WPF开发】控件介绍-button(按钮)

基本介绍 按钮(button)控件的作用 按钮控件(Button)是用户界面(UI)设计中最基本的元素之一,其主要作用包括: 触发操作:用户通过点击按钮来执行一个命令或触发一个事件&…

【网络】tcp_socket

tcp_socket 一、tcp_server与udp_server一样的部分二、listen接口(监听)三、accept接收套接字1、为什么还要多一个套接字(明明已经有了个socket套接字文件了,为什么要多一个accept套接字文件?)2、底层拿到新…

从R-CNN到Faster-R-CNN的简单介绍

1、R-CNN RCNN算法4个步骤 1、一张图像生成1K~2K个候选区域(使用Selective Search方法) 2、对每个候选区域,使用深度网络提取特征 3、特征送入每一类的SVM分类器,判别是否属于该类 4、使用回归器精细修正候选框位置 R-CNN 缺陷 : 1.训练…

MySQL 存储引擎详解

MySQL 存储引擎详解 MySQL 是一个关系数据库管理系统,它的一个显著特性是支持多种存储引擎。每种存储引擎都有其独特的功能、优点和限制。选择合适的存储引擎对于数据库性能、可靠性和可维护性至关重要。下面详细介绍几种常见的 MySQL 存储引擎,包括 In…

Java使用AsposePDF和AsposeWords进行表单填充

声明:本文为作者Huathy原创文章,禁止转载、爬取!否则,本人将保留追究法律责任的权力! 文章目录 AsposePDF填充表单adobe pdf表单准备引入依赖编写测试类 AsposeWord表单填充表单模板准备与生成效果引入依赖编码 参考文…

【语音识别和生成】语音识别和语音合成技术

语音识别和生成:语音识别和语音合成技术 目录 引言语音识别技术 语音识别的基本原理语音识别系统的组成语音识别的关键技术 语音合成技术 语音合成的基本原理语音合成系统的组成语音合成的关键技术 语音识别和生成的应用 智能助理智能家居语音翻译医疗健康教育和学…

【C语言】链式队列的实现

队列基本概念 首先我们要了解什么是队列,队列里面包含什么。 队列是线性表的一种是一种先进先出(First In Fi Out)的数据结构。在需要排队的场景下有很强的应用性。有数组队列也有链式队列,数组实现的队列时间复杂度太大&#x…

qt 应用正在运行时,如何更新升级exe文件

在Qt应用正在运行时,直接替换同名的.exe文件可能会导致文件正在使用中的错误。为了安全地更新.exe文件,你可以采取以下步骤: 创建一个临时的.exe文件。 等待当前.exe文件的进程关闭。 删除原有的.exe文件。 将临时.exe文件重命名为原有的.…

【数据结构 | 哈希表】一文了解哈希表(散列表)

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…

国科大作业考试资料-人工智能原理与算法-2024新编-第五次作业整理

1、本题以井字棋(圈与十字游戏)为例练习博弈中的基本概念。定义X_n为恰好有n个X而没有O 的行、列或者对角线的数目。同样O_n为正好有n 个O的行、列或者对角线的数目。效用函数给 X_3=1的棋局+1, 给O_3=1的棋局-1。所有其他终止状态效用值为0。对于非终止状态,使用线性的 …

虚拟局域网配置与分析-VLAN

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除 一、相关知识 虚拟局域网(Virtual Local Area Network,VLAN)是一组逻辑上的设备和用户;不受物理位置的…

vue网络请求

post网络请求 import axios from axios import {ElMessage, ElLoading} from "element-plus" import { nextTick } from "vue" import JSONbig from json-bigint import { userToken } from "/constants/Constant.js";const defaultConfig {bas…

浅谈监听器之保存响应到文件

浅谈监听器之保存响应到文件 JMeter 提供了一个实用的监听器——“保存响应到文件”,该监听器能够自动将取样器的响应数据直接保存到指定的文件中,便于后续分析或存档。本文档旨在详细介绍如何配置和使用此监听器功能。 适用场景 ● 长时间运行的测试…

TCP协议之三次握手,四次挥手!

VLSM:可变长子网掩码划分 DOS攻击:拒绝服务攻击 SYN:DDOS攻击(分布式拒绝服务攻击) 私有IP严禁进行子网掩码划分 TCP协议: 三次握手: 第一次握手:Client将标志位SYN置1&#xf…

Java 代码规范:优化 if 嵌套的技术博客

黑马2024软考软件设计师核心知识点精讲 ​​https://pan.baidu.com/s/1lD9aXMr5NPG-x_GKJnwExg?pwd0cbj ​​ 在Java编程中,​​if​​​语句是控制流程的基本结构之一。然而,过多的​​if​​​嵌套会使代码变得难以阅读和维护。本文将介绍如何优化​…

昇思25天学习打卡营第n天|本地安装mindspore之二|开始第一课的代码。以及对比xshell,MobaXterm

开始准备在本地的系统上跑例子了。从第一课开始吧。 1,下载代码 打开课程。 下载样例代码 https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/notebook/r2.3/tutorials/zh_cn/beginner/mindspore_quick_start.py 2,在本地Linux上输入并运…

Python新手如何制作植物大战僵尸?这篇文章教会你!

引言 《植物大战僵尸》是一款非常受欢迎的塔防游戏,玩家需要种植各种植物来抵御僵尸的进攻。在这篇文章中,我们将使用Python编写一个简化版的植物大战僵尸游戏,以展示如何使用Python创建游戏。 游戏规则 玩家将种植不同类型的植物来防御僵尸…

好用的电脑录屏软件免费推荐,拥有这3款就能高效录屏!

电脑录屏软件已成为我们记录生活、分享知识的得力助手。但是,市面上琳琅满目的录屏软件令人眼花缭乱,如何才能选择到一款好用的电脑录屏软件免费神器呢?今天,就让我来为您揭晓这个秘密! 首先,我们得明确一…

以太网(Ethernet)

目录 1. What is Internet?1.1. What is Ethernet?2. TCP/IP3. Physical Layer(PHY)4. Data Link Layer4.1. MAC Sublayer5. Network Layer5.1. IP5.2. ARP6. Transport Layer6.1. UDP6.2. TCP7. Application LayerFPGA实现以太网(一)——以太网简介 网络与路由交换 菜鸟FP…

sdut-C语言实验——数位数

给定一个正整数 n &#xff0c;请你求出它的位数。 输入格式: 单组输入&#xff0c;输入一个整数 n 。&#xff08;1< n < 2147483647&#xff09; 输出格式: 输出一行&#xff0c;包含一个整数&#xff0c;即为 n 的位数。 输入格式: 单组输入&#xff0c;输入一个整数 …