DALL-E
CLIP
-
Diffused Attention
2.1 Denoise
2.1.1 Noise Predicter
1.CLIP
全称为Contrastive Language–Image Pre-training,是一种多模态预训练模型,旨在将文本和图像信息相结合,实现强大的跨模态理解和生成能力
CLIP是由OpenAI提出的多模态预训练算法,它的主要思想是通过一个超大的图像-文本数据集,来训练一个图像Encoder和一个文本Encoder。如果是相关的文本和图片,编码后的特征向量应该是相似的,如果是不相关的文本和图片,编码后的特征向量应该是不相似的。
主要用途:
1.将预训练好的模型用于下游任务:比如作为zero-shot图像分类任务;
2.模型可以用于图像查询;
3.可用于文字生成图片的任务:比如说AI绘画;
CLIP源码地址https://github.com/openai/CLIP
1.1 预训练
1.1.1 训练集:
这个数据集有超过4亿个图片和文本的pair,完全是大力出奇迹。
1.1.2 训练集原理:
CLIP模型包含一个Text Encoder和一个Image Ecnoder。它们用于分别提取文本和图片的特征向量到同一个特征空间。在预训练的过程中,通过计算余弦相似度(cosine similarity)作为损失函数。原论文中的伪代码作为参考(引用:https://controlnet.space/2023/01/07/reading/ai-painting/)
# image_encoder - ResNet or Vision Transformer # text_encoder - CBOW or Text Transformer # I[n, h, w, c] - minibatch of aligned images # T[n, l] - minibatch of aligned texts # W_i[d_i, d_e] - learned proj of image to embed # W_t[d_t, d_e] - learned proj of text to embed # t - learned temperature parameter # extract feature representations of each modality I_f = image_encoder(I) #[n, d_i] T_f = text_encoder(T) #[n, d_t] # joint multimodal embedding [n, d_e] I_e = l2_normalize(np.dot(I_f, W_i), axis=1) T_e = l2_normalize(np.dot(T_f, W_t), axis=1) # scaled pairwise cosine similarities [n, n] logits = np.dot(I_e, T_e.T) * np.exp(t) # symmetric loss function labels = np.arange(n) loss_i = cross_entropy_loss(logits, labels, axis=0) loss_t = cross_entropy_loss(logits, labels, axis=1) loss = (loss_i + loss_t)/2
1.对比预训练
2.如何匹配
2.diffused attention
扩散:是因为它是通过扩散过程来生成噪声,然后再训练模型去预测这个噪声来去噪,从而达到生成图片的目的
2.1初步去理解图像生成的过程
2.2前向过程:
生成噪声开始
高斯噪声
2.3反向过程
通过预测这个噪声来去噪
3.Denoise - Noise Predicter
降噪 - 噪声预测
3.1 内部做了什么
3.2如何训练Noise Predicter
3.3加上语义后
3.3.1 前向过程
3.3.2 反向过程
反向过程