NT-Xent損失は、正例は近く・負例は遠く——Contrastive Lossの思想——を、正規化した類似度のソフトマックスとして書き下した対照学習用の損失関数です。MoCoがキューと慣性エンコーダで「負例を太くする」なら、NT-Xentは「どの負例をどれだけ押し返すか」を温度τで調整する——本記事は数式の暗記より、正規化・温度・交差エントロピーの三つ組に焦点を当てます。
類似度のソフトマックス
対照学習では、同じ画像の2つの拡張ビューから得た埋め込みを正例ペアにします(G-384)。バッチ内の他画像は負例——G-163が示す「似ているペアは近く、似ていないペアは遠く」という距離学習の発想です。
NT-Xentは、この比較を「正例が正解クラスになる分類」に見立てます。Query埋め込みから見て、多数の候補(正例Key+負例Keys)のうち正例だけを当てる——損失はソフトマックス交差エントロピーの形——だから名前にCross Entropyが入ります。
三つの部品
NT-Xentの頭文字は、設計の三要素をそのまま表しています。
| 部品 | 意味 | なぜ要るか |
|---|---|---|
| N(Normalized) | 埋め込みをL2正規化 | ベクトルの長さではなく向き(コサイン類似度)で比較する |
| T(Temperature-scaled) | 類似度を温度τでスケール | τが小さいと正例・負例の差が強調され、大きいと分布がならす |
| Xent(Cross Entropy) | ソフトマックス+交差エントロピー | 多数負例の中から正例を選ぶ確率的な当て推量として最適化 |
温度τはハイパーパラメータ——試験ではτの値より、「正規化+温度付きの対照交差エントロピー」という位置づけが要点です。
自己教師ありでの使われ方
NT-Xentはラベルなしデータで表現を学ぶ自己教師ありのレシピに組み込まれます(TF-0161)。
- 1. 拡張 — 同じ画像にクロップ・色変換などを施し2ビュー作成
- 2. エンコード — 各ビューをCNNなどで埋め込みへ
- 3. NT-Xent — 正例ペアの類似度を上げ、負例との類似度を相対的に下げる
- 4. 転移 — 学習したエンコーダを下流の分類・検出へ
MoCo v2やSimCLRなど、画像の対照学習ブームの背後にはこの損失がいます——手法(MoCo)と損失(NT-Xent)は別レイヤー、と切り分けて覚えましょう。
他の損失との違い
| 損失 | 課題 | NT-Xentとの差 |
|---|---|---|
| Contrastive Loss(総称) | 正例近・負例遠 | 思想は同じ。NT-Xentは正規化+温度+ソフトマックスCEの具体形 |
| 分類の交差エントロピー | クラスラベル予測 | 教師あり。NT-Xentは正例ペアが擬似ラベル |
| Huber損失 | 回帰の外れ値耐性 | 別タスクの回帰損失 |
| Dice Loss | セグメンテーション重複 | 画素マスク向け。対照学習とは無関係 |
InfoNCEと呼ばれる系譜の損失とも近い——試験では細かい別名より、自己教師あり対照学習の損失と答えれば十分です。
試験で押さえるポイント
- 定義 — Normalized Temperature-scaled Cross Entropy=対照学習用の損失
- 三要素 — 正規化、温度スケール、交差エントロピー
- 文脈 — 自己教師あり表現学習(SimCLR、MoCoなど)
- 対比 — Contrastive Loss(総称)、MoCo(手法)、分類CE(教師あり)
すり替えに注意
| 誤った説明 | 正しい理解 |
|---|---|
| NT-Xent=MoCo | 損失関数 vs 対照学習手法 |
| NT-Xent=Contrastive Lossそのもの | 総称 vs 正規化温度付きの具体実装 |
| NT-Xent=教師あり分類損失 | ラベルなし正例ペアの自己教師あり |
| NT-Xent=CLIP | 損失の一種 vs 画像―テキストモデル |
| 温度=推論時のTemperature | 対照学習のハイパーパラメータτ(別文脈の同名語に注意) |
よくある質問
NT-Xent損失は何をする損失関数ですか?
対照学習で、正例ペアの埋め込みは近く、負例の埋め込みは遠くなるように学習させる損失関数です。正規化した類似度を温度でスケールし、ソフトマックス交差エントロピーとして正例を当てはめる形で最適化します。自己教師ありの視覚表現学習で広く使われます。
NT-Xent損失とContrastive Lossは同じですか?
同じではありません。Contrastive Lossは正例を近づけ負例を遠ざける損失の総称です。NT-Xentはその一実装で、正規化・温度スケール・ソフトマックス交差エントロピーを組み合わせた具体形です。思想は共通ですが、名称と設計の詳細が異なります。
NT-Xent損失とMoCoは同じですか?
同じではありません。NT-Xentは損失関数の名称です。MoCoは動量エンコーダと負例キューを使う自己教師ありの対照学習手法の名称です。MoCo v2などではNT-Xentを損失として採用しますが、損失と手法は別物です。