当前位置: 首页 > news >正文

终于有人将多模态重点内容做成了动画

        CLIP是入门多模态的最佳选择,后续多模态模型基本上都延续了它的思想:分别用图像编码器和文本编码器将图像和文本编码到一个共享的特征空间中,然后通过多模态融合方法将配对的图像文本特征向量拉进。

 

 

 

 

 

 

 

 

 

 

 

 

[1] 给定

↳ 一个包含3个文本-图像对的小批量数据(OpenAI 使用了4亿个文本-图像对来训练其原始CLIP模型)。

处理第一个对:"big table"

[2] 🟪 文本 → 2个向量(3维向量)

↳ 使用word2vec查找词嵌入向量。(word2vec可以使用Google提供的预训练模型)

[3] 🟩 图像 → 2个向量(4维向量)

↳ 将图像分成两个块。

↳ 将每个块展平

[4] 处理其他对

↳ 重复步骤 [2]-[3]

[5] 🟪 文本编码器 & 🟩 图像编码器(红框内的编码器参数通过训练得到)

↳ 将输入向量编码为特征向量

↳ 在这里,两个编码器都是简单的单层感知器(线性 + ReLU)

↳ 实际中,编码器通常是Transformer模型。

[6] 🟪 🟩 均值池化: 2 → 1 个向量

↳ 通过对列进行平均,将2个特征向量平均为一个向量

↳ 目标是用一个向量来表示每个图像或文本

[7] 🟪 🟩 -> 🟨 投影(投影矩阵通过训练得到)

↳ 注意,编码器输出的文本和图像特征向量维度不同(3维向量 vs. 4维向量)。

↳ 使用线性层将图像和文本向量投影到一个2D共享嵌入空间。

🏋️ 对比预训练 🏋️

[8] 准备矩阵乘法

↳ 复制文本向量(T1,T2,T3)

↳ 复制图像向量的转置(I1,I2,I3)

↳ 它们都位于2D共享嵌入空间中。

[9] 🟦 矩阵乘法

↳ 将T和I矩阵相乘。

↳ 这相当于计算每对图像和文本向量之间的点积。

↳ 目的是使用点积来估计图像-文本对之间的相似度。

[10] 🟦 Softmax: e^x

↳ 将e提升为每个单元格中的数的幂

↳ 为简化手动计算,我们将e^□ 近似为3^□。

[11] 🟦 Softmax: ∑

↳ 为 🟩 图像→🟪 文本 求每行之和

↳ 为 🟪 文本→ 🟩 图像 求每列之和

[12] 🟦 Softmax: 1 / 总和

↳ 将每个元素除以列总和,以获得 🟪 文本→🟩 图像 的相似度矩阵

↳ 将每个元素除以行总和,以获得 🟩 图像→🟪 文本 的相似度矩阵

[13] 🟥 损失梯度

↳ 相似度矩阵的“目标”是单位矩阵。

↳ 为什么?如果I和T来自同一个对(i=j),我们希望最高值为1,否则为0。

↳ 使用简单的[相似度 - 目标]公式来计算双向梯度。

↳ 为什么这么简单?因为当Softmax和交叉熵损失一起使用时,数学计算会神奇地如此简化。

↳ 这些梯度启动了反向传播过程,以更新编码器和投影层的权重和偏置(红色边框)。

CLIP简单的融合方法使其非常适合检索任务,而不适合生成任务,后续的一些模型为了提升融合效果,常采用Transformer编码器作为融合模块,为了具备图生文本的能力,后续模型也都增加了Transformer解码器;或者为了提升效率,则干脆直接使用训练好的大模型作为编解码器,然后使用一个适配器作为衔接。

多模态模型:

    CLIP

    ViLT

    ALBEF

    VLMO

    BeiT v3

    BLIP

    CoCa

    Flamingo

    BLIP-2

    IMAGEBIND

    Meta-Transformer

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • windows 编译libx264报错问题之解决
  • Large Language Models(LLMs) Concepts
  • 【最全深度学习介绍】基本概念、类型、应用、优缺点、与机器学习区别是什么?
  • springboot中根据id查询用户信息
  • SAP 查询中间表
  • 【Spring】Spring MVC 入门(2)
  • TeamTalk消息服务器学习
  • spring入门(一)spring简介
  • debian系统安装mysql
  • taro ui 小程序at-calendar日历组件自定义样式+选择范围日历崩溃处理
  • 阿里龙晰系统上将yum安装的myql_8.0.36升级到mysql_8.4.0的过程
  • 279.完全平方数
  • 【Qt 事件】—— 详解Qt事件处理
  • 代码随想录Day 31|leetcode题目:56.合并区间、738.单调递增的数字、968.监控二叉树
  • 【网络原理】从0开始学习计算机网络常识,中学生看了都能学会
  • C++类中的特殊成员函数
  • Github访问慢解决办法
  • Java IO学习笔记一
  • js学习笔记
  • Laravel核心解读--Facades
  • linux学习笔记
  • mysql中InnoDB引擎中页的概念
  • PHP的类修饰符与访问修饰符
  • Rancher-k8s加速安装文档
  • SpiderData 2019年2月25日 DApp数据排行榜
  • 不上全站https的网站你们就等着被恶心死吧
  • 从零开始学习部署
  • 关于List、List?、ListObject的区别
  • 回顾2016
  • 机器学习 vs. 深度学习
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 前端面试总结(at, md)
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 使用Swoole加速Laravel(正式环境中)
  • 学习笔记:对象,原型和继承(1)
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • ​力扣解法汇总946-验证栈序列
  • #HarmonyOS:Web组件的使用
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • #前后端分离# 头条发布系统
  • $GOPATH/go.mod exists but should not goland
  • (CPU/GPU)粒子继承贴图颜色发射
  • (Java企业 / 公司项目)点赞业务系统设计-批量查询点赞状态(二)
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (源码分析)springsecurity认证授权
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版
  • **《Linux/Unix系统编程手册》读书笔记24章**
  • .NET Remoting Basic(10)-创建不同宿主的客户端与服务器端