多模态——clip

clip:利用文本的监督信号,训练一个迁移能力强的视觉模型。基于nlp里gpt的通用能力,通过对比学习,将zero-shot能力关联到图像。

  • clip多模态融合网络结构:text encoder + image encoder 网络重,多模态特征融合网络轻。

  • 多模态融合前TE和IE都连一个project层,一是将不同模态的特征维度整合成相同维度(clip是线性层,但大部分是非线形层),二是做特征归一化方便后续计算余弦相似度。

  • zero-shot需要对文本特征做提示词工程,如在分类时需要将label单词拓展为句子。(①解决单个单词多个意思的歧义,②训练时都是句子,避免出现分布差异out-of-distribution。)

  • few-shot指冻住大量的参数,从中抽取部分层(一般指单纯训练分类头)在待迁移的数据集做微调(linear probe);fine tune指得是全量参数微调。

  • one-shot/two-shot,每个类别给模型一张/两张样例去学习。

  • cilp不足:①训练数据量大,在单一任务想提升性能需要扩充千倍数据。②social biases。

  • 开源api,可以直接调用。

### CLIP多模态算法概述 CLIP(Contrastive Language–Image Pre-training)是由OpenAI开发的一种用于连接图像和文本的多模态模型[^2]。该模型通过对比学习的方式,将不同形式的数据映射到同一特征空间内,在此空间中语义相近的内容会彼此靠近。 #### 算法原理 在训练过程中,CLIP接收成对的图片及其对应的描述作为输入,并尝试最小化正样本间的距离而最大化负样本间差异。具体来说: - **编码器结构**:分别构建了两个独立却参数共享的神经网络——一个是用来处理自然语言句子序列的文字编码器;另一个则是针对视觉信息设计的对象识别卷积神经网路(CNN)或Transformer架构的图像编码器。 - **损失函数定义**:对于每一对关联的图文组合而言,如果它们被正确配对,则视为正类;反之则属于错误匹配即为负类。整个过程旨在优化一个基于余弦相似度计算得到的概率分布下的交叉熵损失值。 ```python import torch.nn.functional as F def contrastive_loss(image_embeddings, text_embeddings): logits = image_embeddings @ text_embeddings.T / temperature labels = torch.arange(len(logits)) loss_i = F.cross_entropy(logits, labels) loss_t = F.cross_entropy(logits.T, labels) return (loss_i + loss_t)/2 ``` #### 实现细节 为了使模型能够泛化至未见过的任务上,CLIP采用了大量的互联网抓取数据来进行无标签式的自我监督预训练。这些海量且多样化的实例有助于捕捉广泛存在的跨模式联系规律,从而赋予模型强大的zero-shot迁移能力[^3]。 此外,由于引入了先进的注意力机制以及精心调整后的超参配置方案,使得最终产出的结果具备较高的鲁棒性和表达力。 #### 应用场景 得益于其出色的性能表现,CLIP已被广泛应用到了诸如零样本图像分类、文本引导的目标检测等领域之中。不仅如此,在一些创意生成任务里也能见到它的身影,比如根据给定提示词合成逼真的艺术作品等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值