CLIP__视频笔记

2023-10-27

learning transferable visual models from natural language supervision

高新能的迁移学习模型,结合了文本和图像信息

CLIP不在imagenet 128k的数据集上做预训练,能取得与预训练的ResNet50有同样的效果

clip的监督信号来自自然语言处理

网络的输入是图片-文本对,分别经过encoder提取特征,这个encoder可以是一个resnet,或者是一个vision transformer。然后在这些特征上进行对比学习,文本里的encoder可以是CBOW或者是tesxt trnaosformer。

在clip的对比学习中,配对的样本是正样本,如上图左矩阵中对角线的部分,所以共有n^2-n个副样本,clip的训练是在4亿张数据上进行的

clip的推理

Prompt template: 首先使用一组单词,将之加入句式中组成句子,然后进入test encoder编码器抽取特征,其实直接使用单词抽取特征也是可以的,但是clip在训练的过程中,text encoder接受的是一组句子,所以推理为了与训练的过程保持一致,还是采取了将单词编码成句子的方式。

于是将imagenet上1000类的图片,编码成这样的1000类文本特征

在分类过程中,网络接受任意一张图片,经过image encoder抽取特征,将得到的特征与文本特征计算 cosine similarity,取出最相似的文本特征,就得到了那个对应的类别。

在Prompt template的过程中,类别单词可以不仅限于imageent的1000类,所以clip做到了类别的拓展。 这是之前任何一个在imagenet上预;训练的模型都做不到的,摆脱了categorical label的限制。

由于clip把视觉的语义和文字的语义联系到了一起,学习到的特征语义性非常强,迁移的效果也非常好。

clip的有趣应用

style clip:把stylegan和clip结合到了一起,使用文字信息引导图像的生成

clip draw:做法更简单,用文字信息生成抽象的画,在普通的gpu上不到一分钟就可以生成

open-vocabulary object detection via vision and language knowledge distillation: 使用clip来做目标检测,

 原来的目标检测只能分辨玩具,clip的数据能做更细粒度的分类

github:johanmodin/clifs 用于视频检索,直接输入关键词,网络模型就检索视频里的每一帧,与文本特征相匹配,返回包含检索目标的图片。

———————————————————————————————————————————

有限制的类别限制了模型的泛化性,灵感来自于自然语言处理。

在自然语言处理的自监督训练模型中,不论使用atuoregessive(自回归预测)还是masked language(掩码完形填空)的方式,目标函数与下游任务无关,目的仅仅在于提取出一个高效有用的特征

作者尝试了小模型resnet 大模型vision transformer两种模型,结果发现迁移学习的性能和网络模型的大小是成正比的

作者为了进一步验证clip学习到特征的有效性,尝试了liner-prob,在模型训练好了之后,freeze the backbone,只训练分类头,发现clip也比之前的工作性能好,计算更高效。

这种多模态模型的训练是很困难的,首先作者借鉴了VirTex的多模态训练工作,在图像中使用CNN进行训练,在文本中使用Transformer训练。同时对比学习对无监督的训练也有诸多好处,把预测性任务转为对比学习的任务之后,学习效率提高了4倍

 由于数据集过大,temperature被设计为一个可学习的参数,没有调节。除了使用random crop之外没有使用其他数据增强的方式,在moco simlcr中十分重要的非线性投射层,也被简化为了linear-projection

有关如何在多个gpu上训练大模型

How to Train Really Large Models on Many GPUs? | Lil'Loghttps://lilianweng.github.io/posts/2021-09-25-train-large/

第3节

zero-shot研究动机,原来的对比学习目标都是抽取特征,如moco  simCLR DINO这些方法,但是对比学习想迁移到其他数据还是需要有标签的finetune,还有可能遇到数据集不好迁移,distribution shift的问题。那如何只做一次 训练一个模型,这就是zero-shot transfer。

Prompt engineering :一个模型微调中很流行的概念,在CLIP中,就是使用文本信息引导图片分类

另外,如果使用一个单词作为图片的prompt,经常会有歧义性的这个问题

所以把每一个单词都放到提示模板里 "a photo of {label}",具体的使用中,作者使用了80个这样的模板,最后把结果综合起来会是更好的结果

CLIP的局限性

CLIP只能和resnet50这种basline模型打成平手,但是和真正的state of art还有10几个点的差距,当然可以通过增大数据规模的方式来弥补这个差距,但是得还需要在4亿的基础上再*1000,所以对于openAI这种硬件条件来说也是无法训练的,所以需要找到提高训练效率的方法

另外,clip不是万能的方法,在很多困难的数据集中,例如找出图片中有多少个物体、区分视频中的异常帧,在这些数据集中,clip的性能和瞎猜差不多

另外虽然clip的泛化性能很好,但是如果训练数据和测试数据之间真的已经out of distribution的话,那clip的泛化性能也会变得很差,例如clip在minst数据集上性能很差

clip的分类任务还是从给定的类别里作选择,选出相似或者不相似,另外一种更灵活的方式是直接为图片生成标题,以后可能会将生成式模型的损失函数和对比模型的损失函数结合

clip利用数据效率不高,训练一共用了128亿张图片,自监督学习和self-training(伪标签的方式可能会有更高的利用效率

虽然clip一直在做zero-shot,但是是一直在imagenet上做测试的,网络和超参的调整也都以imagenet的性能为导向,所以可能imagenet给予了一种隐含的指示

OpenAI这批的clip训练数据是网上爬的,所以会有种族社会和宗教的偏见

clip存在一种很奇怪的现象,从zero-shot迁移到few-shot的过程中,不给训练样本的性能反而比给了样本的性能还要差

1:34简短的代码实战

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CLIP__视频笔记 的相关文章

  • LinearLayout.LayoutParams动态设置子控件属性

    LayoutParams相当于一个Layout的信息包 它封装了Layout的位置 高 宽等信息 假设在屏幕上一块区域是由一个Layout占领的 如果将一个View添加到一个Layout中 最好告诉Layout用户期望的布局方式 也就是将一
  • JAVA常量、变量和基本数据类型

    常量 常量 是指在Java程序中固定不变的数据 常量的分类 类别 含义 举例 整数常量 所有的整数 1 0 1 100 1000 浮点数常量 所有的小数 0 1 1 5 6 8 1 2 字符常量 单引号引起来 只能写一个字符 必须有内容 A
  • 西门子PLC用TIA博途SCL语言写的一个产生随机实数的指令块(学习1)

    这是西门子的一个功能FC 我们可以用它来学习SCL语言 也可以用来分析和学习怎样做一个比较合理且完整的功能FC 1 在设计该功能时 先确定好 它的具体功能 比如 此例的功能是获取一个随机实数 该随机实数是可以定义在自己想要的数值范围内的 还

随机推荐

  • Redis的数据类型

    Redis的数据类型 redis支持五种数据类型 string 字符串 hash 哈希 list 列表 set 集合 及zset sorted set 有序集合 String 字符串 是key value 方式 可以包含任何数据 包括图片或
  • Echart提示框组件tooltip的formatter属性中params的值

    Echart提示框组件tooltip的formatter属性中params的值 其中params的值就是seriesData的值 function test var seriesData 数据封装 var ret tooltip forma
  • springboot 配置templates并放行swagger页面

    import org springframework context annotation Configuration import org springframework web servlet config annotation Res
  • R语言入门——笔记(三)创建数据集

    第一部分 数据结构 1 创建向量 c c recursive FALSE use names TRUE 根据元素坐标访问 2 创建矩阵 matrix matrix data NA nrow 1 ncol 1 byrow FALSE dimn
  • 使用GCC编译STM32工程

    一 STM32在linux环境编译 STM32等arm芯片的工程编译环境比较多 类似于keil IAR等成熟的MDK集成环境被大部分开发者所使用的 但是如果要在linux在开发 或者使用的芯片不是stm32芯片 需要自己搭建编译环境 本文将
  • const的一些用法和理解

    首先先说一下const常量的用处 我们知道宏定义 define是没有数据类型的 编译器在编译的时候 不会对宏常量进行类型检查 只进行简单的字符串替换 字符串替换时极易产生意想不到的错误 所以这个时候 我们用需要用到某种声明了数据类型的常量
  • 时隔两三年之后重新思考“写博客”的意义所在,为什么还是选择使用csdn

    重新开始写博客的理由 在推上看了很多大佬的博客 如迟先生 他们的博客上并不会包含很多基础内容 更多的都是个人实践 论文阅读 底层原理 然后回想我大学时期写博客的动机 只是为了从阅读量和排名中获取满足感 那个时期写的博客 不例外如抄书 转载
  • linux下git怎么保存账号密码

    我是用 shell 命令来执行 git 操作的 所以就决定在 global 配置一下用户名和密码 不用每次手动输入了 设置步骤 1 首先需要 ftp 连接到你的 Linux 服务器 在根目录 下 使用 touch 命令创建文件 git cr
  • 目标检测与识别算法综述:从传统算法到深度学习(三)

    作 者 XJTU Ironboy 时 间 2018年12月 联系方式 tzj19970116 163 com 本文结构 摘要 介绍 2 1 大致框架 2 2 测试评价指标 2 3 相关比赛介绍 2 4 相关数据集介绍 基于图像处理和机器学习
  • CentOS7 时间与网络时间同步

    问题描述 使用date命令查看之后 发现时间与本地时间不一致 三步解决方法 1 安装ntpdate工具 yum y install ntp ntpdate 2 设置系统时间与网络时间同步 ntpdate 0 asia pool ntp or
  • YTU2897:E--外星人供给站 C++ 贪心

    目录 编辑 题目描述 输入 输出 输入输出样例 样例输入 样例输出 代码C 题目描述 外星人指的是地球以外的智慧生命 外星人长的是不是与地球上的人一样并不重要 但起码应该符合我们目前对生命基本形式的认识 比如 我们所知的任何生命都离不开液态
  • ubuntu使用技巧总结(长期更新)

    1 新装系统 需要先更新软件源 再下载程序 sudo apt update 2 安装中文输入法 右上角下拉框 gt 点击设置 gt 区域和语言 gt 输入源下的 gt 点击汉语 gt 双击中文 智能拼音 随后在输入列表中有智能拼音选项 可以
  • vue 实现微信分享

    引入微信JS SDK 在Vue应用的index html文件中 可以使用script标签引入微信官方提供的JS SDK 例如 在Vue组件中配置微信分享参数 在需要进行分享的Vue组件中 可以使用Vue的生命周期钩子函数 如created或
  • sql-labs详细解题过程(less1-less10)

    sql labs详细解题过程 前言 less1 less4 预备知识内容 less1 less2 less3 less4 less5 less8 预备知识 less5 less6 less7 less8 less9 less10 预备知识
  • Tcp是怎样进行可靠准确的传输数据包的?

    概述 很多时候 我们都在说Tcp协议 Tcp协议解决了什么问题 在实际工作中有什么具体的意义 想到了这些我想你的技术会更有所提升 Tcp协议是程序员编程中的最重要的一块基石 Tcp是怎样进行可靠准确的传输数据包的呢 看过很多文章里都提到过T
  • CTF知识总结--CRYPTO

    CTF知识总结 CRYPTO 1 常见编码 ASCII编码 URL编码 MD5 base家族编码 Hex编码 unicode编码 shellcode编码 XXencode编码 UUencode编码 aaencode编码 jjencode编码
  • java log日志配置文件记录

  • 微信小程序:变量自加(变量++)和自减(变量--)无法在页面刷新数据

    让一个变量自加或者自减 不能使数据在页面实时地更新 举个例子 js文件 Page data num 1 用于自加的变量 timer null 定义定时器的返回值 onLoad function options 使用定时器 每隔一秒让num自
  • 【web素材】11—15套免费网站后台管理模板

    来源 web前端开发 ID web qdkf 整理 杨小爱 前面 我跟大家分享过一期关于网站后台管理的素材内容 web素材 08 这50套高大上的后台管理系统模板 瞬间提升你的专业水平与审美能力 今天 我再跟大家分享15款网站后台源码模板
  • CLIP__视频笔记

    learning transferable visual models from natural language supervision 高新能的迁移学习模型 结合了文本和图像信息 CLIP不在imagenet 128k的数据集上做预训练