视觉理解
Visual Understanding
2.2 概述
图像骨干预训练 image backbone pretraining
- 标签监督 label supervision
- 语言监督 language supervision
- 仅图像自监督 image-only self-supervised Learning
- 对比学习 contrastive learning
- 非对比学习 non-contrastive learning
- 掩码图像建模 masked image modeling
进一步预训练多模态融合和细粒度的图像理解 Further pre-training for multimodal fusion andfine-grained image understanding
- 多模态融合 multimodal fusion
- 区域级预训练 region-level pre-training
- 像素级预训练 pixel-level pre-training
2.2 监督学习
监督学习 Supervised Learning
如何理解机器学习中的嵌入 (Embedding)
CNN中 patch 是什么?
大模型微调方法:冻结方法 Freeze、P-Tuning 系列、LoRA、QLoRA
浅析深度学习中的mask操作
2.3 对比图像-语言预训练
对比图像-语言预训练 Contrastive Image-Langeage Pre-training
多模态领域的开源图文数据集(持续更新中20230511)
nlp中常说的对齐-Alignment
零样本学习(Zero-Shot Learning)简介与分类
对比学习正负例在干什么?
2.3.1 CLIP 基础
CLIP 基础(Basic of CLIP)
- 训练 training:模型训练需要沿三个维度进行缩放:批量大小、数据大小和模型大小;模型大小上从 300M (Large) 到 1B (giant) 不等
- 零样本预测 zero-shot prediction:CLIP 将零样本图像分类任务变为检索任务,考虑标签背后的语义,从而实现零样本图像分类
2.3.2 CLIP 变体
CLIP 变体(CLIP Variants)
- 增大数据集规模 data scaling up
- 模型设计和训练方法 model design and training methods
- image tower:随机屏蔽高掩码率的patch,只编码可见patch
- text tower:丰富文本描述,比如 ChatGPT
- interpret ability:图像和文本向量映射到高维系数空间,提高可解释性
- more modalities:引入更多模态
- 目标函数 objective function
- 细粒度监督 fine-grained supervision:学习word-patch对齐,而不是点积计算text-image相似度
- contrastive captioner:对比损失和生成标题损失
- captioning loss only:仅生成标题损失
2.4 仅图像的自监督学习
仅图像的自监督学习(Image-only Self-supervised Learning)
2.4.1 对比学习和非对比学习
对比学习和非对比学习(Contrastive and Non-contrastive Learning)
对比学习 contrastive learning:比如 SimCLR、MoCo
SimCLR
- 给定一个图像,应用两个独立的数据增强(data augmentation)
- 基础编码器后跟着一个项目头(project head),训练时使用对比损失(contrastive loss)最大化一致性(agreement)
- 下游任务(downstream task)时去掉项目头
依赖负样本,需要大内存
非对比学习 non-contrastive learning:SimSiam、DINO
SimSiam:
- 给定一个图像,生成两个增强视图,使用相同的编码器网格处理
- 预测 MLP 运用于一个视图,另一个视图停止梯度操作
- 最大化两个视图间的相似性
非对称结构,不依赖负对和动量编码器
DINO:
- 给定一个图像,生成两个增强视图,分别输入到学生、教师网络中
- 两个网络共享相同的架构,但参数不同,教师网络输出为 batch 的均值
- 两个网络输出的特征向量使用带温度的 softmax 归一化(temperature softmax)
- 停止梯度向教师网络传播,仅通过学生网络传播,使用学生参数的指数移动平均(exponential moving average)更新教师参数
深度学习高温蒸馏:Softmax With Temperature
2.4.2 掩码图像建模
掩码图像建模(Masked Image Modeling):BERT 使用掩码语言建模进行预训练,启发了 BEiT 使用掩码图像建模(MIM)进行预训练
- 图像标记器 image tokenizer:图像转换为离散的视觉标记,比如 VQ-VAE、ViT-VQGAN
- 掩码后预测 mask-then-predict:模型输入掩码图像,预测掩码位置的内容
iBOT 将其描述为 image tokenizer (教师)和 BEiT 编码器(学生)之间的知识蒸馏(knowledge distillation)
MIM 的统一视图:教师模型、归一化层、学生模型、MIM 头、适当的损失函数。模型间的显著差别在于重建的目标(reconstruction target),可以是像素、离散的图像token、预训练模型输出特征、动量更新教师模型的输出。MIM 重建目标可以分为两大类:
- 低级像素/特征重建 low-level pixel/feature:MAE、SimMIM 等使用原始的或归一化的像素值作为重建目标,MaskFeat 引入定向梯度直方图(HOG)特征作为目标,Ge2-AE 使用2D离散傅里叶变换得到的像素值和频率信息作为目标。
- 高级特征重建 high-level feature:BEiT、CAE 使用学习的图像 token 作为重建目标,MaskFeat 直接将对从 DINO、DeiT 等模型学习到的特征作为目标,受此启发,EVA、MVP 使用 CLIP 的图像特征,其他方法提出了从动量更新的教师模型构建回归特征。
用于视频预训练的 MIM(MIM for vedio pre-training):将 MIM 扩展到视频预训练的工作,比如 BEVT、MAE 作为时空学习器、VedioMAE 等。
缺乏全局图像表示学习(Lack of learning global image representation):普通 MIM 对预训练和参数初始化有效,但是没有学习全局的图像表示。iBOT 提出使用 DINO 的自蒸馏损失(self-distillation loss)来增强全局图像表示学习,由此扩展出 DINOv2
MIM 的扩展属性(Scaling properties of MIM):MIM 可以认为是有效的正则化手段,帮助下游任务初始化十亿规模的 ViT
用transformer做视觉,具体是怎么把图片转成token的?
nlp 特殊标记符
一文讲解方向梯度直方图(hog)
2.5 不同模式之间的协同作用
不同模式之间的协同作用(Synery among Different Models)
结合标签监督的 CLIP(combine CLIP with label supervision):
- UniCL:在联合图像-文本-标签空间中,使用图像-标签和图像-文本数据进行统一对比学习
- LiT:教授文本模型从预训练好的图像模型中读到好的表示,用于新任务的完成
- MOI:从10亿个noisy的实体注释图像中学习图像表示,使用图像分类和对比损失进行训练,
结合仅图像(非)对比学习的 CLIP(combine CLIP with image-only (non-)contrastive learning):
- SLIP 结合 SimCLR 和 CLIP,在零样本迁移(zero-shot transfer)和线性探测(linear probe)上,SLIP 比 CLIP 更好;DeCLIP 在各个模态上挖掘自监督信号来增强 CLIP 训练。
- xCLIP 从仅图像的非对比学习中引入锐度(sharpness)和平滑(smoothness)正则项来实现 CLIP 非对比。
[【Linear Probing | 线性探测】深度学习 线性层](https://blog.csdn.net/LemonShy2019/article/details/125852323) |
结合 MIM 的 CLIP(combine CLIP with MIM):
- 浅交互(shallow interaction):从 CLIP 中提取的特征作为 MIM 训练的目标,因为 CLIP 图像特征可能会捕获 MIM 训练中缺少的语义(semantics),而 MIM 预训练图像主干用于初始化 CLIP 训练。在这方面的工作中,MVP、EVA 直接回归 CLIP 的特征,而 BEiTv2 先将 CLIP 特征压缩成视觉 token,然后进行常规的 BEiT 训练。MIM 表示用于微调各种下游任务,而冻结的 CLIP 嵌入可以实现零样本图像分类和其他应用。
- 更深的交互(deeper interaction):没什么用
2.6 多模态融合、区域级和像素级的预训练
多模态融合(Multimodal Fusion)、区域级和像素级的预训练(Region-level and Pixel-level Pre-training)
2.6.1 从多模态融合到多模态 LLM
Fom Multimodal Fusion to Multimodal LLM
对于 CLIP 等双编码器,图像和文本分别编码,通过二者的特征向量的点积处理进行模态交互,缺乏深度的多模态融合。在零样本图像分类、图像文本检索任务有效,在图生文、视觉问答任务效果表现不佳。
所以使用预训练的融合编码器(fusion encoder),增加额外的 transformer 层来模拟图像和文本表征的深度融合。
- 基于目标检测的模型(OD-based models):早期使用。UNITER 通过现成的对象检测器提取图像特征,并将图像特征视为文本输入的软提示(soft prompt),包括掩码语言建模(MLM)、掩码区域建模(MRM)、单词区域对齐(WRA)+ 图像文本匹配(ITM),然后传入多模态 transformer。其中对象检测器使用 R-CNN 加位置编码,文本令牌嵌入(token embedding)提取文本特征。
- 端到端模型(End-to-end models):已成为主流。Coca 使用对比损失进行对齐,字幕损失(captioning loss)多模态表征。其中图像编码器采用 ViT,使用共同注意力(co-attention)进行多模态融合。
- 多模态LLM的趋势(Trend to multimodal LLM):SimVLM 使用简单的 PrefixLM 损失预训练,从大规模预训练转为使用 LLM 进行指令调整(instruction tuning),在此之后多模态语言模型开始流行起来。
2.6.2 区域级的预训练
CLIP 通过预训练学习图像的全局表示,但是在细粒度图像理解任务中,比如目标检测,效果不佳。目标检测任务包括定位和识别,识别可以转化为 CLIP 的图像检索,实现通用的开放集目标检测,该主题在 4.2
节有更详细的展开。
2.6.3 像素级的预训练
SAM(segment anything model)模型是最近语义分割领域的视觉基础模型,使用了像素级(pixel-level)的预训练。SAM 可以适应许多分割任务,包括边缘检测、对象提议生成(object proposal generation)、实例分割、开放词汇分割(open-vocabulary segmentation)
Segment Anything 项目通过引入三个相关联的组件来构建用于分割的视觉基础模型:
- 可提示分割任务:能够在给定任何分割提示下,返回有效的分割掩码
- 分割模型:SAM 由三个组件组成
- 图像编码器,使用预训练的 ViT
- 提示编码器:使用 CLIP 文本编码器,处理点、框(box)、自由形式的文本等稀疏(sparse)数据类型;使用卷积算子,处理掩码等密集(dense)数据类型。
- 轻量级掩码解码器:基于 transformer
- 数据引擎:执行模型内循环(model-in-the-loop)的数据集注释(annotation),用于获取预训练的大规模数据(large-scale)
除了 SAM 外的其他工作:OneFormer 提出通用的图像分割框架,SegGPT 提出了通用的上下文学习框架,SEEM 扩展了支持的提示类型,包括点、框、涂鸦、掩码、文本、引用区域。
3 视觉生成
视觉生成(Visual Generation),T2I 基础模型:DALL-E 、Stable Diffusion、Midjourney、MUSE 等。
3.1 概述
3.1.1 视觉生成中的人类对齐
human-alignment in vision generation:文生图背景下的 AI 对齐是 T2I 模型的研究领域,主要有四个常见的研究问题:
- 空间可控的文生图(spatial-controllable T2I generation):文本是人机交互的强大媒介,但是单纯的文本不足以提供准确的空间参考,空间可控的 T2I 模型将文本输入和其他条件结合获得更好的可控性。
- 基于文本的图像编辑(text-based image editing):图像编辑是获取人类预期(human-intended)视觉内容的另一个方法,包括局部和全局的修改
- 更好的后续文本提示(better following text prompts)
- 视觉概念自定义(visual concept customization):视觉元素包含难以用单词描述的细节,已经有相关工作使用专门的 token嵌入和条件图像来生成图片,
3.1.2 文本到图像的生成
文本到图像的生成(Text-to-image Generation):使用图像-文本对进行训练,文本作为输入条件,配对图像作为输出条件
- 生成对抗网络(generative adversarial network,GAN):由两个组件组成,生成器(generator)和鉴别器(discriminator);生成器从随机噪声中创建合成图像,根据输入文本条件训练噪声,生成语义相关(semantically relevant)的图像;对抗过程中,鉴别器和生成器竞争,试图区分生成的图像和真实的图像,从而引导生成器提高图像创建能力。
- 变分自编码器(variational autoencoder,VAE):概率模型,通过编码器和解码器模块来生成图像;编码器将图像转换为潜在表示(latent representation),解码器将向量转换为图像。VAE 最小化原始图像和生成图像的 KL 散度(KL divergence)。矢量化 VAE(vector quantised VAE,VQVAE)利用适量量化离散的潜在空间提高了图像重建质量。
- 离散的图像 token 预测(discret image token prediction):图像 tokenizer 和 detokenizer 的组合,将连续的视觉信号转化为有限的离散 token,图像生成问题转化为离散 token 预测任务。一种策略是,使用自回归 transformer,从左上角开始顺序生成图像 token,以文本输入为提示逐行移动;另一种策略是,并行解码,加快预测过程。最后 detokenizer 解码得到预测的图像。
- 扩散模型(diffusion model):采用随机微分方程(stochastic differential equation)将噪声演化为图像,扩散模型在初始化时,使用完全随机的噪声,以输入的文本为条件,在去噪的过程中逐渐细化,每次迭代都会预测并删除噪声元素,图像连续演变。
SD 广泛使用的 T2I 模型:开源,基于扩散的生成模型,基于交叉注意力(cross-attention-based)的图像文本融合机制;主要包含*三个模块,图像 VAE、去噪 U-Net、条件编码器
- VAE:成对的编码器 $\mathcal{E}$ 和解码器 $\mathcal{D}$ ,编码RGB图像 $x\in R^{H\times W\times 3}$ 到潜在随机变量 $z\in R^{h\times w\times c}$ ,潜在变量 z 比图像 x 小48倍,通过在压缩的潜在紧凑空间(compressed compact latent space)中执行去噪处理,提高计算效率。
- Text Encoder:SD 是条件图像生成模型,使用条件编码器 $\tau(y)\in R^{N\times d_\tau}$
- Denoising U-Net:模块训练时,预测噪声 $\hat{\epsilon}(z_t,t)$ ,然后在潜在空间中减去噪声,逐步将随机初始噪声演化为有意义的潜在表示,使用 L2 比较实际噪声和目标噪声损失;模块推断时,从随机噪声开始对潜在表示 z 去噪。
降噪 U-Net 和传统 U-Net 相似,包括一系列跳跃连接的下采样/上采样块,每个块有一个交叉注意力层和2D卷积下采样/上采样层。交叉注意力层中,文本 $\tau$ 对图像 z 查询,交叉注意力图 $M=(hw\times d)\cdot(N\times d)^T=hw\times N$
论文解读(GAN)《Generative Adversarial Networks》
An In-Depth Guide to Denoising Diffusion Probabilistic Models DDPM – Theory to Implementation
由浅入深了解Diffusion Model
图像分割之U-Net
3.2 空间可控生成
空间可控生成(Spatial Controllable Generation)的三个思路
区域可控的 T2I 生成(Region-controlled T2I generation):
- ReCo:扩展文本编码器的文本词汇,位置标记和文本标记混合,使用空间修饰符表明后面的文本仅在指定的区域上,用以增强对文本标记的理解,然后对预训练的 T2I 模型微调。该方法提供了对象级的图像文本关联。
- GLIGEN:使用即插即用(plug-and-play)的方法,冻结原始 T2I 模型,使用文本语义和定位(grounding)信息,训练额外的门控注意力层(gated self-attention)学习新的联结(grounding)。支持多种空间信息(grounded control),包括边界框(bounding box)、关键点(keypoint)、图像提示(prompting)
密集条件的 T2I 生成(T2I generation with dense conditions):
ControlNet 建立在 SD 的基础上,额外引入可训练 ControlNet 模块,支持多种条件(reference 垫图)。
每个条件分支有独自的模型副本,分支从预训练的 SD 的下采样模块初始化,后接零初始化(zero-initialized)的 1×1 卷积层作为门控连接器,然后将输出合并到基础 SD 的上采样模块中。
整个过程概括为:克隆预训练模型,定义输入条件,训练可训练副本(trainable copy),合并输出,既包含从预训练中学到的通用知识,也包含从微调中学到的特定知识。
推理时的空间引导(Inference-time spatial guidance):类似于分类器指导,使用判别器损失(discriminator loss)指导扩散过程,判别器使用比如 Fast-RCNN 目标检测器。结果不如微调精细。
多模态NLP研究中的grounding怎么翻译比较好?
FLASH:高效Transformer解析(3)—GAU(Gate Attention Unit)
GiantPandaCV论文解读 Open-Set Grounded Text-to-Image Generation——GLIGEN
扩散模型大杀器 ControlNet 解析
深度学习中的初始化方法(Initialization)
3.3 基于文本的编辑
基于文本的编辑(Text-based Editing)
文本提示
文本提示(Text Prompts Following)
概念定制
概念定制(Concept Customization)
统一视觉模型
统一视觉模型(Unified Vision Models)
从封闭集模型到开放集模型
从封闭集模型到开放集模型(From Close-set to Open-set Models)
从特定任务到通用模型
从特定任务到通用模型(From Task-specific to Generic Models)
从静态模型到可提示模型
从静态模型到可提示模型(From Static to Promptable Models)
使用 LLM 进行大型多模态模型训练
使用 LLM 进行大型多模态模型训练(Large Multi-Modal Models training with LLM)
图像到文本的生成
图像到文本的生成(Image-to-text Generation)
多模式代理:使用 LLM 链接工具
多模式代理:使用 LLM 链接工具(Multimodal Agents: Chaining Tools with LLM)
多模式代理
多模式代理(Multimodal Agent)
相关资料
论文解读
- 【论文解读】多模态大模型综述
- 对比学习(Contrastive Learning)综述
- 【CLIP系列Paper解读】CLIP: Learning Transferable Visual Models From Natural Language Supervision
-
nerf 和高斯泼溅 五维度映射到实数值,相机的内参和外参,隐式;点云,显式表达;3d高斯结合显式和隐式,前者空间换时间,后者实值表达。nerf数据集,多张图合成3d,学习相机内参外参构建映射?有背景无背景数据集, 评价指标,PSNR峰值信噪比对比噪声和干净样本,ssim结构相似性对比图片相似度,lpips学习感知图像块相似度深度特征衡量相似度。隐式+静态,合成新视角。训练用了残差结构+位置编码,f(x,y,z,实现夹角)->f(颜色,密度权重),会出现对特定视角的过拟合(2d好但3d烂),所以视角最后加入训练;位置编码用于增强细节。体渲染:光吸收+光发射,构建3d,然后拍照计算误差,外参有了,算内参。colmap,三维高斯模型
-
融合时序,流式处理,tmm,多分辨率哈希编码