损失函数

重建损失

\[\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\):温度参数,用于缩放内积的结果

损失函数的计算步骤:

  1. 计算正样本对的相似性:对于每个样本 \(z_i\),计算它与其正样本 \(z_i^+\) 的相似性,即 \(z_i^T \cdot z_i^+\)。这里的相似性是通过向量内积计算的。

  2. 计算分母:对于每个样本 \(z_i\),计算它与批次中所有样本的相似性,即 \(\sum_{j=1}^{B} e^{z_{i}^{T} \cdot z_{j} \tau}\)。这包括与自身、正样本以及其他样本的相似性。

  3. 计算对比损失:对于每个样本,计算其对比损失为 \(-\log\) 正样本对的相似性与所有样本相似性之和的比值,即 \(\log \frac{e^{z_{i}^{T} \cdot z_{i}^{+} \tau}}{\sum_{j=1}^{B} e^{z_{i}^{T} \cdot z_{j} \tau}}\)

  4. 平均损失:对整个批次的损失取平均,得到最终的对比损失。

这个损失函数的目标是最大化正样本对的相似性,同时最小化与其他样本的相似性,从而学习到更有判别力的特征表示。通过这种方式,模型能够在没有标签的情况下学习到有意义的特征。

论文:Generating Diverse High-Fidelity Images with VQ-VAE-2

posted @ 2025-07-21 17:04  Undefined443  阅读(19)  评论(0)    收藏  举报