损失函数
重建损失
\[\mathcal{L}_{\text{reconstructive}}=-\mathbb{E}_{Y \in \mathcal{D}}\left(\sum_{\forall i, m_{i}=1} \log p\left(y_{i} \mid Y_{M}\right)\right)
\]
重建损失通常用于处理不完整数据的模型中,例如变分自编码器(VAE)或其他生成模型。
- \(\mathbb{E}_{Y \in \mathcal{D}}\):对数据集 \(\mathcal{D}\) 中的样本 \(Y\) 进行期望计算
- \(Y\):一个数据样本
- \(Y_M\):样本 \(Y\) 中的已知部分(即未丢失的数据)
- \(m_i\):一个掩码变量,指示数据的可见性。如果 \(m_i = 1\),表示该数据点是未知的(需参照论文解释)
- \(y_i\):样本 \(Y\) 中的第 \(i\) 个元素
- \(p(y_i \mid Y_M)\):给定已知数据 \(Y_M\) 后,第 \(i\) 个元素 \(y_i\) 的条件概率
损失函数的含义:
- 这个损失函数的目标是最大化已知数据 \(Y_M\) 条件下,丢失数据 \(y_i\) 的对数概率的期望值。
- 损失函数中的负号表示我们实际上是在最小化负的对数概率,即最大化对数概率。
- 损失函数只对那些 \(m_i = 1\) 的数据进行计算,即只对未知数据进行重建。
参见:对数似然
对比损失
InfoNCE 损失(Information Noise-Contrastive Estimation,对比损失):
\[\mathcal{L}_{\text{contrastive}}=-\frac{1}{B} \sum_{i=1}^{B} \log \frac{e^{z_{i}^{T} \cdot z_{i}^{+} \tau}}{\sum_{j=1}^{B} e^{z_{i}^{T} \cdot z_{j} \tau}}
\]
- \(B\):批次大小(batch size)。
- \(z_i\):第 \(i\) 个样本的特征向量
- \(z_i^+\):与 \(z_i\) 相关的正样本的特征向量,通常是通过数据增强等方式得到的
- \(\tau\):温度参数,用于缩放内积的结果
损失函数的计算步骤:
-
计算正样本对的相似性:对于每个样本 \(z_i\),计算它与其正样本 \(z_i^+\) 的相似性,即 \(z_i^T \cdot z_i^+\)。这里的相似性是通过向量内积计算的。
-
计算分母:对于每个样本 \(z_i\),计算它与批次中所有样本的相似性,即 \(\sum_{j=1}^{B} e^{z_{i}^{T} \cdot z_{j} \tau}\)。这包括与自身、正样本以及其他样本的相似性。
-
计算对比损失:对于每个样本,计算其对比损失为 \(-\log\) 正样本对的相似性与所有样本相似性之和的比值,即 \(\log \frac{e^{z_{i}^{T} \cdot z_{i}^{+} \tau}}{\sum_{j=1}^{B} e^{z_{i}^{T} \cdot z_{j} \tau}}\)。
-
平均损失:对整个批次的损失取平均,得到最终的对比损失。
这个损失函数的目标是最大化正样本对的相似性,同时最小化与其他样本的相似性,从而学习到更有判别力的特征表示。通过这种方式,模型能够在没有标签的情况下学习到有意义的特征。

浙公网安备 33010602011771号