SigLIP

Sigmoid Loss for Language Image Pre-Training[1]

作者是来自DeepMind的Xiaohua Zhai等人,论文引用[1]:Zhai, Xiaohua et al. “Sigmoid Loss for Language Image Pre-Training.” 2023 IEEE/CVF International Conference on Computer Vision (ICCV) (2023): 11941-11952.

Time

  • 2023.Mar

Key Words

  • sigmoid loss

总结

  1. 作者提出了一个简单的pairwise Sigmoid loss for Language-Image Pre-training(SigLIP),不同于标准的,用softmax normalization的contrastive learning,sigmoid loss仅对image-text pairs进行操作,不需要pairwise similarity for normalization的global view,这个sigmoid loss同时能够进一步scaling up batch sizes,和Locked-image tuning结合,只需要TPUv4 chips,作者训了一个SigLiT model,在ImageNet上 zero-shot,实现了84.5%的精度,将批量大小与损失函数解耦后,得以进一步研究样本与样本对的影响,以及负样本与正样本比例的作用。最后,作者将batch size设到一个极限,up to one million,发现增大的batch size的benefits的下降了,合理的batch size设为32k是足够了。
  1. 用web上的image-text pairs的弱监督的contrastive pre-training称为了一个得到通用CV backbones的必须的方法,逐渐代替了在大的标注的multi-class 数据集上的预训练,high-level的idea是用paired data,同时学习images和texts的对齐的representation space,经典的工作例如CLIP,ALIGN证明这个方法的可行性。标准的预训练的方法是利用image-text contrastive objective,将image和text embeddings对齐,用于匹配positive image-text pairs,同时确保不相关的(negative) image-text pairs在embedding space是不相关的,这通过一个batch-level softmax-based contrastive loss实现,第一次对所有的images中normalize pairwise similarity,然后是texts,一个softmax的naive的implementation存在numericaly unstable,在用softmax之前,通常减去最大的input value实现stabilize,但这需要对整个批次再进行一次遍历。

    在本文中,作者提出了一个更简单的alternative,sigmoid loss,不要求任何对full batch的操作,简化了distributed loss的implementation,提高了效率,另外,将batch size和task的definition进行了解耦,作者将提出的sigmoid loss和标准的softmax loss在多个setups下进行了比较,特别地,作者用两个著名的image-text learning的方法CLIP,LiT研究了sigmoid-base loss。将sigmoid language image-pretraining称之为(SigLIP)和sigmoidLiT(SigLiT)。作者发现,当batch size小于16k的时候,sigmoid loss大幅超过了softmax loss,当train batch size增加的时候,gap 变小了,重要的是,sigmoid loss是对称的,只要single pass,一个typical implementation只要less memory than softmax loss,这使得能够用1M的batch size训练SigLiT,然而,作者发现,当batch size增加的时候,性能饱和了。

  2. 之前的工作提出了一个类似的sigmoid loss用于无监督的降维任务,在contrastive image-text learning中,大多数的工作依赖于softmax-based InfoNCE loss,在监督的分类中,sigmoid loss证明比softmax loss更加有效。 作者首先回顾了广泛使用的softmax-based contrastive loss,然后引入pairwise sigmoid loss。 给定一个mini-batch \(B={(I_1, T_1),(I_2, T_2)}\),对比学习的objective 促使matching pairs的embeddings彼此对齐,同时使得不匹配的pairs的embeddings的远离,对于实际的目的,假定对于所有的images i,text和一个不同的image j相关联,不和i关联。

    • 当用softmax loss来formalize这个objective的时候,一个image model和一个text model被训练来最小化下面的objective, $$
    • {i=1}^{||} ( { } + _{ } ) $$

    \(\mathbf{x}_i = \frac{f(I_i)}{\|f(I_i)\|_2}\), \(\mathbf{y}_i = \frac{g(T_i)}{\|g(T_i)\|_2}\),在本文中,作者采用ViT架构用于images,transformer架构for texts,由于softmax loss的非对称性,normalization需要独立地执行两次,across images和across texts。

    作者提出的方法,不需要计算global normalization factors,sigmoid-based loss独立地处理每个image-text pair,有效地将learning problem转换为标准的二分类,positive labels for matching pairs \((I_i, T_i)\),negative labels for 所有其它的pairs \((I_i, T_{j\neq i})\),定义如下: \[ - \frac{1}{|\mathcal{B}|} \sum_{i=1}^{|\mathcal{B}|} \sum_{j=1}^{|\mathcal{B}|} \log \underbrace{\left( \frac{1}{1 + e^{z_{ij} \cdot (-t_{x_i} \cdot y_j + b)}} \right)}_{\mathcal{L}_{ij}} \]

    \(z_{ij}\) 是给定image和text input的label,如果它们是paired,就为1,否则就是-1。在一开始的时候,很多的negatives会主导这个loss,导致imbalance,为了缓解这个,作者引入了一个额外的可学习的bias term b,类似于temperature t,初始化 \(t`\) 和 b to log10和 -10。这使得training 开始的时候接近prior,不需要massive over-correction。