対照研究シリーズ論文

教師あり対照学習論文

最近、分類に関する関連論文を読んでいると、優れたアルゴリズムがたくさんありますが、そのうちの 1 つが対照学習に基づいています。先週の毎週のグループ会議で、ジュニア シスターは、 2021 年に Google Research によって Machine Learning に掲載された、教師あり対照学習に関する論文を共有しました。これは、対照学習のアイデアを完全教師あり学習のパラダイムにまで拡張し、ラベル情報。この論文の現在の引用数は 800 以上です。妹の講義は非常に充実しており、浅いところから深いところまで、妹の話と合わせて、さらにアレンジを加えました。ちなみに、比較学習のいくつかの展開も整理しました。
ジュニアジュニアシスターの初期の作品を読むことを歓迎します。彼女の個人ホームページはこちらhttps://blog.csdn.net/qq_42311648

1. 対照学習とは何ですか? なぜ機能するのですか?

分類といえば、誰もが自然に、猫と犬の分類など、特定の類似した特徴に基づいて分類され、犬と猫では耳や尻尾などの形態学的特徴にいくつかの違いがあり、ニューラル ネットワークは 2 つを区別すると考えるでしょう。犬に共通で猫とは違う特徴を見つけ、

特徴抽出器としてのニューラル ネットワークは、各画像に対応する特徴表現を学習し、通常、最終結果は 512x1 次元ベクトルなどの多次元ベクトル (つまり、最終的に送信される特徴) になることがわかっています。分類子) を表します。このプロセスは、原データを抽象意味レベルの高次元特徴空間にマッピングし、抽象意味空間における原データの特徴表現を学習することです。

近年、教師なし分野で対比学習が盛んになってきており、下図(b)に示すように、CPCMoCoなどの対比学習に基づく教師なし作業では、ステージ1ではランダムなデータ展開で同じ画像が得られます。画像はサンプルのペアを構成します. モデル学習の目的は, ペアのサンプル間の距離を短くし, ペアでないサンプル間の距離を広げて, 各写真の特徴表現を取得し, ステージ 2 の分類器を通してこれらの特徴を分類することです. . .

この場合、当然ながらデメリットもあり、同じ画像に由来しない同種のサンプルについては、距離が伸びてしまうこともあります。

ここに画像の説明を挿入

この問題は、教師あり学習に対照学習を導入することで解決できます。上の図©に示すように、教師なし比較学習と同じように、学習は 2 つの段階に分けられます。違いは、ペア サンプルの構成です。画像に同じラベルが付いている限り、ペア サンプルです。モデル学習の目標は、同じタイプのサンプルの距離を引き込み、異なるタイプのサンプルの距離を引き抜くことです。これにより、モデルによって学習された特徴がよりクラスを区別するようになります。このプロセスは、同じクラスのフィーチャ表現がクラスターにまとめられ、異なるクラス間の距離が可能な限り離れているクラスタリングとして想像できます。

ここに画像の説明を挿入
(教師あり学習と自己教師あり学習の違いについては、セクション 4 で展開します)

エンコーダーの観点から見ると、対照学習の目標は、同じクラスの類似したデータをエンコードし、異なるクラスのデータのエンコード結果を可能な限り異なるものにするエンコーダーを学習することです

2. トリプレット損失 – 単一の陽性サンプルと単一の陰性サンプルを比較します

2015 年に CVPR について Google が発表したこの論文 - 「FaceNet: 顔認識とクラスタリングのための統合埋め込み」では、トリプレット損失を提案しました: L
= max ⁡ { d ( x , x + ) − d ( x , x − ) + margin , 0 } L = \max \{d(x,x^+)-d(x,x^-)+マージン,0\}L=最大{ d ( x ,バツ+ )d ( x ,バツ )+マーガリン_ _ _ _ _0 }
三重項損失による比較(アンカー: x , 正: x + , 負: x − ) (アンカー:x, 正:x^+, 負:x^-)(アンカー_ _ _ _ _:× ポジティブ_ _ _ _ _ _ _:バツ+ ,ネガティブ_ _ _ _ _ _ _:バツ )x + x^+を近づけるためバツ+アンカーからの距離、負のサンプルを引き離すx − x^-バツアンカーからの距離。

ここに画像の説明を挿入

任意のサンプルxxについて、モデルによって最終的に学習された機能を作成します。基本的に、 x は次の状態に到達できます:
d ( x , x − ) > d ( x , x + ) + margind(x,x^-)>d(x,x^+)+margind ( x ,バツ )>d ( x ,バツ+ )+ここでマージン果たしいる役割
:

1. モデルの近道を避ける. マージンはモデルにアンカーとネガティブサンプル間の距離を大きくさせ, アンカーとネガティブサンプル間の距離を小さくさせ, ポジティブとネガティブの差をなくす.モデルによって学習されたサンプル表現はより大きくなります。

margin=0 の場合、トリプレット損失はL = max ⁡ { d ( x , x + ) − d ( x , x − ) , 0 } L = \max \{d(x,x^+)-d (x, x^-),0\}L=最大{ d ( x ,バツ+ )d ( x ,バツ )0 }の場合、正のサンプルと負のサンプルからアンカーまでの距離が等しい場合、損失も 0 になるため、モデルは正のサンプルと負のサンプルを区別することが困難になります。

2. 同様のサンプル (セミハード トリプレット、ハード トリプレット) に対してより良いプッシュ効果があります。

ここに画像の説明を挿入
(ブログの写真をそのまま引用します。不適切な場合は、写真の正しい引用方法をご指摘ください。よろしくお願いします)

  • 簡単なトリプレット: このとき、損失は [外部リンクの画像を転送できませんでした。ソース サイトにはリーチング防止メカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-c6GmuS7p-1654435367008) (https ://www.zhihu.com/equation? tex=0)] 、この状況は私たちが最も見たいものであり、区別しやすいトリプレットとして理解できます。つまり、[外部リンクの画像転送に失敗しました。ソース サイトにアンチリーチング メカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-l4uNEIs7-1654435367009) (https://www.zhihu.com/式?tex=d%28a% 2Cp%29%2Bマージン+%3C+d%28a%2Cn%29)]
  • ハード トリプレット: この時点で、ネガティブはポジティブよりもアンカーに近い. この状況は、私たちが見たい最後のものです. これは、あいまいな領域のトリプレットとして理解できます. つまり、[外部リンクの画像転送に失敗しました。ソース サイトにはリーチング防止メカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-cCwF3cAD-1654435367009)(https://www.zhihu.com/式?tex=d%28a% 2Cn%29+%3C+d%28a%2Cp%29)]
  • セミハードトリプレット: この時、ネガはポジよりもアンカーから離れていますが、距離の差は余裕に達しておらず、誤認されなければならないトリプレットとして理解できます。

たとえば、下図のセミハード トリプレットでは、マージンが存在するため、損失によってモデルが誘導され、陽性サンプルとアンカーの間の距離がさらに短くなり、陰性サンプルとアンカーの間の距離が短くなります。 、つまり、同様のサンプル間の違いを拡大し、最終的に目的の状態を達成します。

ここに画像の説明を挿入
もちろん, トリプレット損失にもいくつかの欠点があります. 各トリプレットには1つのネガティブサンプルしか含まれていないため, 損失を計算するとき, 1つのネガティブサンプルのみが現在のポジティブサンプルと比較され, 他のネガティブサンプルは考慮されません. 生成されたデータペアでは, それぞれデータペアは、現在の最適化方向がすべての負のサンプルの距離を拡張できることを効果的に保証することはできません。これにより、トレーニングプロセス中に収束が不安定になったり、局所最適に陥ったりします。

3. N 対損失 – 単一の陽性サンプルをすべての陰性サンプルと比較します

N ペア損失の提案は、この問題を解決することであり、開始点は、同時に使用されるすべてのネガティブ クラスを最適化することです。

ここに画像の説明を挿入
fi , fj f_i, f_j2 つのベクトルの類似度 (コサイン類似度) を示します。
ここに画像の説明を挿入
ここでは, コサイン類似度を使用して 2 つのベクトルの類似度を測定し,ユークリッド距離を使用してトリプレット損失のベクトル間の類似度を測定します. また, ベクトルの内積を使用してサンプルの類似度を測定することもわかります. 選択できます.さまざまなシナリオに応じた適切な同様の測定方法。

4. 自己教師あり対照学習から教師あり対照学習へ

自己教師あり学習では、対照学習の損失関数は次のように一般化できます。

ここに画像の説明を挿入
自己教師あり学習では、データにラベルが付けられていないため、通常はiiをサンプリングする必要があります。i はサンプルペア[ i , i + ] [i,i^+][,+ ]i , i + i,i^+私は+はすべて同じ画像からのものであり、互いに正のサンプルです。

バッチ (batch_size=N) の場合、データ増幅によって 2 つのバッチのデータが取得され、サンプルは 2 つのバッチからランダムに選択されますiii 作为anchor, i ∈ I = { 1....2 N } i\in I=\{1....2N\} ε={ 1 . . . . 2 N }i + i^++ i i iに対応するポジティブ サンプル2 N − 2 2N-22N _2 つのサンプルペアiii の場合、これは負のサンプルであり、集合A ( i ) A(i)A ( i )はサンプルiiiを除くすべてのサンプルzi z_iサンプルiiを示します畳み込みニューラル ネットワークτ \tauを通じてiによって取得された表現ベクトルτは温度係数です。ここでは、内積を使用してzi 、zk ( k ≠ i 、k ∈ A ( i ) ) z_i,z_k(k \not =i,k \in A(i)) を表します。k( k=私はkεA ( i ) )間の類似度次の分析では、si , k s_{i,k}s kzi , zk z_i,z_kを表すk類似性。

直観的に、損失関数は、i 番目のサンプルと正のサンプル j(i) の間の類似性ができるだけ大きく、他の 2N-2 負のサンプルとの類似性ができるだけ小さいことを必要とします。

次に、勾配レベルからこの関数の利点を分析しましょう。

サンプルxi x_iの場合バツL ( xi ) L(x_i)の場合L ( ×)から正のサンプル勾配と負のサンプル勾配は:
∂ L ( xi ) ∂ si , i + = − 1 τ ∑ k ≠ i + P i , k \frac{ \partial L(x_i)}{ \partial s_ {i ,i^+}}=- \frac{1}{ \tau} \sum_{k \not =i^+} P_{i,k}∂s _+L ( x)=t1k=+P k
負のサンプル勾配は次のとおりです。
∂ L ( xi ) ∂ si , j = 1 τ P i , j , ( j ≠ i + , j ∈ A ( i ) ) \frac{\partial L(x_i)}{\ partial s_ {i,j}}=\frac{1}{\tau} P_{i,j}, (j \not =i^+,j \in A(i))∂s _ jL ( x)=t1P j( j=+ ,jεA () )

份位:
P i , j = exp ( si , j / τ ) ∑ k ≠ i + exp ( si , k / τ ) + exp ( si , i + / τ ) P_{i,j}= \frac {exp (s_{i,j}/\tau)}{\sum_{k \not=i^+}exp(s_{i,k}/\tau)+exp(s_{i,i^+}/\tau) )}P j=k=+e × p s k/トン+e × p s+/トンe × p s j/トン)。

数式の導出:

∂ L ( xi ) ∂ si , i + = ∂ [ − log ⁡ f ( x ) A + f ( x ) ] ∂ x , 其中 x = si , i + , A = ∑ k ≠ i + exp ( si , k / τ ) , f ( x ) = exp ( si , i + / τ ) = ∂ { − log ⁡ f ( x ) + log ( A + f ( x ) ) } ∂ x = − f ' ( x ) f ( x ) + f ′ ( x ) A + f ( x ) = − 1 τ + 1 τ exp ( si , i + / τ ) ∑ k ≠ i + exp ( si , k / τ ) + exp ( si , i + / τ ) = − 1 τ ∑ k ≠ i + exp ( si , k / τ ) ∑ k ≠ i + exp ( si , k / τ ) + exp ( si , i + / τ ) \begin {整列} \frac{\partial L(x_i)}{\partial s_{i,i^+}}&= \frac{\partial [- \log \frac {f(x)}{A+f(x )}]}{\partial x}, 其中 x=s_{i,i^+}, A=\sum_{k\not = i^+} exp(s_{i,k}/\tau),f( x)=exp(s_{i,i^+}/\tau)\\ &=\frac{\partial \{-\log f(x)+log(A+f(x))\}}{\部分 x}\\ &=-\frac{f'(x)}{f(x)}+\frac{f'(x)}{A+f(x)}\\ &=-\frac{1 }{\tau}+\frac{1}{\tau}\frac{exp(s_{i,i^+}/\tau)}{\sum_{k\not = i^+} exp(s_{i,k}/\tau)+exp(s_{i,i^+}/\tau)}\ \ &=-\frac{1}{\tau} \frac{\sum_{k\not = i^+} exp(s_{i,k}/\tau)}{\sum_{k\not = i^ +} exp(s_{i,k}/\tau)+exp(s_{i,i^+}/\tau)} \end{aligned}∂s _+L ( x)=×[ ログ_A + f ( x )f ( x )]ここでx=s+=k=+e × p s k/ τ ) f ( x )=e × p s+/トン=×{ ログ_f ( x )+ログ( A _ _+f ( x ) ) }=f ( x ) (×)++f ( x ) (×)=t1+t1k=+e × p s k/トン+e × p s+/トンe × p s+/トン)。=t1k=+e × p s k/トン+e × p s+/トンk=+e × p s k/トン)。

令 P i, j = exp ( si , j / τ ) ∑ k ≠ i + exp ( si , k / τ ) + exp ( si , i + / τ ) , 则有 ∂ L ( xi ) ∂ si , i + = − 1 τ ∑ k ≠ i + P i , k 等 的 有 ∂ L ( xi ) ∂ si , j = 1 τ P i , j ( j ∈ A ( i ) , j ≠ i + ) \ \令P_{i,j}= \frac {exp(s_{i,j}/\tau)}{\sum_{k \not=i^+}exp(s_{i,k}/\tau)+ exp(s_{i,i^+}/\tau)},则有\frac{\partial L(x_i)}{\partial s_{i,i^+}}=- \frac{1}{\tau } \sum_{k \not =i^+} P_{i,k} \\类類似有\frac{\partial L(x_i)}{\partial s_{i,j}}=\frac{1}{ \tau} P_{i,j} (j \in A(i),j \not =i^+)オーダーP j=k=+e × p s k/トン+e × p s+/トンe × p s j/トン)。それからあります∂s _+L ( x)=t1k=+P k_似ている∂s _ jL ( x)=t1P j( jεA () ,j=+ )

以上で式の導出は終了です。上記の導出をもとにポジティブサンプルとネガティブサンプルの勾配を見て、infoNCEの特徴を分析してみましょう。

すべての否定的な比較について、P i , j P_{i,j}P j分母の項は同じです。次にsi , j s_{i,j}s j大きいほどP i , j P_{i,j}P jの分子項が大きいほど、勾配が大きくなります。つまり、対照的な損失は、より類似した (困難な) 負のサンプルに、そのサンプルから離れた大きな勾配を与えます。ここでτ \tauτ は、困難なサンプルにどれだけ注意を払うかを制御する温度係数です。

ポジティブ サンプルとネガティブ サンプルの勾配を比較すると、ポジティブ サンプルに対する損失の勾配の絶対値が、すべてのネガティブ サンプルの勾配値の絶対値の合計に等しいことがわかります。すなわち: ∣ ∑ k ≠ i + ∂
L ( xi ) ∂ si , k ∣ ∣ ∂ L ( xi ) ∂ si , i + ∣ = 1 \frac {|\sum_{k \not=i^+} \frac{ \partial L(x_i)}{\partial s_{i,k}} |}{|\frac{\partial L(x_i)}{\partial s_{i,i^+}}|}=1∂s _+L ( x)k=+∂s _ kL ( x)=1したがって、負のサンプルjj
ごとにjの惩罚权重:
ri ( si , j ) = ∣ ∂ L ( xi ) ∂ si , j ∣ / ∣ ∂ L ( xi ) ∂ si , j ( i ) ∣ = exp ( si , j / τ ) ∑ k ≠ i + exp ( si , k / τ ) + exp ( si , i + / τ ) r_i(s_{i,j})=|\frac{\partial L(x_i)}{\partial s_{i, j}}|/|\frac{\partial L(x_i)}{\partial s_{i,j(i)}}|= \frac {exp(s_{i,j}/\tau)}{\sum_ {k \not=i^+}exp(s_{i,k}/\tau)+exp(s_{i,i^+}/\tau)}r( s j)=∂s _ jL ( x)/ ∂s _i , j ( i )L ( x)=k=+e × p s k/トン+e × p s+/トンe × p s j/トン)。
これまでのところ、これはソフトマックス関数ではないことがわかります! ところで、ソフトマックス関数における温度係数の影響を復習しておきましょう。温度係数が小さい場合、例えば下図の青い曲線τ = 0.07 \tau=0.07t=0 . 0 7si , j s_{i,j}s jの増加により、ペナルティ勾配が急激に増加します。つまり、大きな類似性を持つ負のサンプルにより多くの注意が向けられます。温度係数が徐々に増加すると、相対勾配のエントロピーが徐々に増加し、図の緑の線のように確率分布が徐々に一様分布に近づき、類似度の大きいネガティブ サンプルへの注目度が徐々に低下します。

ここに画像の説明を挿入

自己教師ありコントラスト損失を理解した後、論文「教師ありコントラスト学習」で提案されている教師ありコントラスト損失は、はるかに理解しやすくなります。

論文の導入部では、次の図を公開しています。これは、教師ありコントラスト損失と自己教師ありコントラスト損失の違いを鮮やかに説明しています。

ここに画像の説明を挿入

自己教師あり比較損失の場合、同じバッチにアンカーと同じタイプのサンプルが含まれていても、アンカーの負のサンプルとして認識され、引き離されます。しかし、教師あり対照学習では、アンカーと同じクラス、つまり同じバッチにあり、同じカテゴリ ラベルを持っている限り、より近くなります。

この論文では、2 つの教師付き対照損失が示されています。

ここに画像の説明を挿入

P ( i ) P ( i )ここでのP ( i )は、同じバッチの中和サンプルiii は、同じクラス ラベルを持つすべてのサンプルのセットです。

どちらの損失にも 3 つの特徴があります。

• 任意の数の陽性サンプルを受け入れます。

• 負のサンプルが多いほど、コントラスト能力が強くなります。負のサンプルの蓄積は保持されます。

• ハード サンプル マイニング。

しかし、これら 2 つの式は等価ではありません。L outの場合L_{out}Lあなた_1 / ∣ P ( i ) ∣ 1/|P(i)|1 / P ( i ) ∣ は、マルチビュー バッチ内の複数のポジティブおよびネガティブ コピーによって生じるバイアスを排除するために使用されます。簡単に言えば、複数の陽性サンプルの損失を平均化することで、大きなバイアスを持つ一部の陽性サンプルの影響をある程度排除できます。

ただし、L in L_{in}L同じ係数も含まれていますが、対数で表され、対数∑ − log ( p ( i ) ) log{\sum{}}-log(p(i)) と同等です。ログ _ _l o g ( p ( i ) ) (省略形、ご了承ください)。したがって、勾配に影響を与えることなく、正規化効果なしで、総損失に追加の定数を与えるだけです。

この論文では、ImageNet の分類タスクに基づいた実験結果も示しており、L out L_{out}を証明しています。Lあなた_L_{in} で Lより優れているL、詳細な理論的導出と分析があるため、ここでは詳しく説明しません.

ここに画像の説明を挿入

最後に、温度係数τ \tauについて話しましょう。τの効果:

  • 無限: ∣ ∇ L ∣ ∝ 1 τ |\nabla L| \propto\frac{1}{\tau}_t1、勾配およびτ \tauτ は反比例します。より大きなτ \tauτ を使用すると、勾配が小さくなり、学習率も大きくなるため、最適化の問題がより単純になります。正と負のサンプルが 1 つの場合、τ \tauτは三重項損失のマージンに相当し、温度が大きいほどクラスを分離しやすくなります。

  • 困難なサンプルのマイニング: infoNCE 構造と同様に、困難なサンプルをマイニングする機能があります.サンプルのバッチと特定のアンカーについては、τ \tauを下げますτ、内積が大きいサンプルの場合、P i , j P_{i,j}P j増加すると、勾配が増加します; 内積が小さいサンプルの場合、P i , j P_{i,j}P j減少、勾配が減少します。

    この論文では、エンコーダとして ResNet-50 を使用して、ImageNet 分類タスクに基づいたテスト結果を示しています。τ = 0.1 \tau =0.1t=0 . 1が最適

    ここに画像の説明を挿入

    著者はまた、次のように述べています。温度が低いほど、高い温度よりも難しい例を区別するのに役立ちますが、数値が不安定なため、極端に低い温度はトレーニングが難しく、学習率などのパラメーターの設定に敏感です。したがって、特定のデータセットと問題については、実験結果に従って適切なτ \tauを決定する必要もあります。トン

実験中、バッチサイズの影響についても考えていました.バッチサイズが大きいほど良いですか?
ここに画像の説明を挿入

著者はまた、実験結果を論文で発表しました。バッチ サイズが大きくなるにつれて、トップ 1 精度も増加していることがわかりますが、成長率はますます遅くなっています。

Top-1 Accuracy の成長は、各比較学習中の標準的な陽性サンプルと陰性サンプルの増加によるものであり、各比較学習の学習はより差別化されています。

さらに、著者は論文 4.5Training Details で、固定バッチ サイズの場合、トレーニングに SupCon を使用し、交差エントロピー損失で必要とされるよりも大きな学習率を使用すると、同様のパフォーマンスが得られることにも言及しました。

参照リンク

この記事の一部の写真と理解は、主に次のブログ投稿から得られたものです

対照学習のまとめ:https://zhuanlan.zhihu.com/p/346686467

トリプレットロス:https://zhuanlan.zhihu.com/p/295512971

おすすめ

転載: blog.csdn.net/qq_40924873/article/details/125136949