SigLIP
SigLIP (Sigmoid Loss for Language-Image Pre-training) は、CLIP の softmax-based contrastive loss を pair-wise sigmoid loss に置き換えた image-text foundation model です。Google から提案され、CLIP より小さな batch でも強力な学習を可能にしました。
何が違うのか
CLIP の loss は softmax-based で、batch 内の全 image と全 text を同時に正規化します。これにより、大きな batch (32k〜64k) が必要になります。
SigLIP は、各 (image, text) pair に対して独立に sigmoid binary classification を行います。
- if (positive), otherwise
- は学習可能 temperature、 は bias
なぜ重要か
- Batch サイズに依存しない: 小さい batch でも収束しやすい
- Memory / compute 効率: Global softmax 不要
- 多言語、多モダリティへの拡張がしやすい
これらの性質により、SigLIP は CLIP 同等以上の性能を、より少ない計算資源で達成します。
SigLIP 2
後継の SigLIP 2 は、より大規模・多言語・dense feature を強化し、open-vocabulary 検出や Vision-Language Models の backbone として広く使われます。
CLIP との使い分け
| 観点 | CLIP | SigLIP |
|---|---|---|
| Loss | Softmax contrastive | Sigmoid pair-wise |
| Batch サイズ | 巨大が望ましい | 小さくても可 |
| Memory | 大きい | 小さい |
| Dense feature | やや弱い | 改善 |
| Open-vocab task の backbone | よく使われる | より広く使われる |
数式で見る pair-wise sigmoid loss
SigLIP は、batch 全体での softmax 正規化を使わず、各 (image, text) pair を独立な binary classification 問題として扱います。Pair に対する logit と label は次のように書けます。
ここで、 は学習可能 scale、 は bias、 は L2 正規化された embedding です。Loss は pair ごとの logistic loss として書けます。
各項の意味は次の通りです。
- の pair(正しい対)では を 1 に近づけ、 の pair(不正解)では を 0 に近づけます。
- Bias は、negative pair の方が圧倒的に多いという class imbalance を吸収します。
- は、内積をどれくらい鋭く扱うかを決める softmax temperature の役割です。
この式の気持ちは、「batch 全体を一気に正規化する代わりに、すべての pair を独立な yes/no 判定として学習する」ということです。Batch ごとの global softmax が不要になるため、batch 並列の通信や巨大 batch に依存せず学習できます。
関連ページ
主なソース
- SigLIP paper: https://arxiv.org/abs/2303.15343
- SigLIP 2 paper: https://arxiv.org/abs/2502.14786