CLIP 计算过程图解
CLIP模型是OpenAI开发的一种多模态学习模型,它通过学习文本和图像之间的关联,实现了跨模态的语义理解。下面是CLIP模型计算过程的简化描述:
1 数据准备
选取包含文本和图像对的mini-batch,例如"big table", “mini chair”, “top hat”。
2 文本嵌入
使用word2vec技术将文本转换为向量形式,如将"big", "table"转换为[1 0 1]‘和[0 1 1]’。
3 图像处理
将图像分割并展平为向量,如将图像分割为[1 1 1 0]‘和[1 1 0 1]’。
重复二、三,处理其他图文对。
4 特征编码
文本和图像向量通过编码器(如transformer)转换为特征向量。
5 特征聚合
将编码后的特征向量通过某种方式(如列平均)聚合为单一向量。
6 特征投影
将聚合后的特征向量通过线性层投影到共享的低维嵌入空间。
7 相似度计算
在共享嵌入空间中,计算文本和图像特征向量的点积,得到相似度得分。
8 Softmax归一化
通过Softmax函数将相似度得分转换为概率分布,使得每一行(或列)的和为1。
9 损失计算
使用Softmax输出和理想的单位矩阵目标之间的差异来计算损失。
10 反向传播
根据损失计算梯度,并反向传播更新模型参数(图中所有红框区域)。
CLIP模型的核心是通过对比学习的方式,最小化文本和图像对的损失,使得模型能够学习到能够准确匹配文本描述和图像内容的嵌入表示。