softmax函数的公式如下:
s o f t m a x ( z i ) = e z i / T ∑ j = 1 K e z j / T softmax(z_i) = \frac{e^{z_i/T}}{\sum\limits_{j=1}^K e^{z_j/T}} softmax(zi)=j=1∑Kezj/Tezi/T
其中, z i z_i zi 是输入向量的第 i i i 个元素, T T T 是温度参数, K K K 是向量的长度。 s o f t m a x ( z i ) softmax(z_i) softmax(zi) 表示将向量 z z z 转化为概率分布的第 i i i 个元素的概率,其中 i ∈ [ 1 , K ] i \in [1, K] i∈[1,K]。在CLIP中,我们可以将 z i z_i zi 理解为图像和文本之间的相似度, T T T 的值是由网络学习得到的,用于调整相似度的度量。
用于计算相似度的余弦相似度公式:
x
⋅
y
∣
x
∣
×
∣
y
∣
\frac{x\cdot y}{|x| \times |y|}
∣x∣×∣y∣x⋅y
其中, x x x 和 y y y 分别表示两个向量, ⋅ \cdot ⋅ 表示向量的点积, ∣ x ∣ |x| ∣x∣ 和 ∣ y ∣ |y| ∣y∣ 表示向量的模长。
用于计算 softmax 函数的公式:
s
o
f
t
m
a
x
(
z
i
)
=
e
z
i
/
T
∑
j
=
1
K
e
z
j
/
T
softmax(z_i) = \frac{e^{z_i/T}}{\sum\limits_{j=1}^K e^{z_j/T}}
softmax(zi)=j=1∑Kezj/Tezi/T
其中, z i z_i zi 是输入向量的第 i i i 个元素, T T T 是温度参数, K K K 是向量的长度。
用于计算对比损失的公式:
L
contrastive
(
v
,
u
,
τ
)
=
−
log
e
v
⋅
u
τ
∑
j
e
v
⋅
u
j
τ
\mathcal{L}_{\text{contrastive}}(v, u, \tau) = -\log\frac{e^{\frac{v\cdot u}{\tau}}}{\sum_j e^{\frac{v\cdot u_j}{\tau}}}
Lcontrastive(v,u,τ)=−log∑jeτv⋅ujeτv⋅u
其中, v v v 和 u u u 分别表示图像和文本的嵌入向量, u j u_j uj 是负样本的文本向量, τ \tau τ 是温度参数。
用于计算交叉熵损失的公式:
L
cross-entropy
(
y
,
p
)
=
−
∑
i
y
i
log
p
i
\mathcal{L}_{\text{cross-entropy}}(y, p) = -\sum_i y_i \log p_i
Lcross-entropy(y,p)=−i∑yilogpi
其中, y y y 是真实标签的向量, p p p 是模型预测的概率分布向量。