Prototypical Contrastive Learning of Unsupervised Representationsを読んだのでメモ
はじめに
Prototypical Contrastive Learning of Unsupervised Representationsを読んだのでメモ.
気持ち
近年流行しているContrastive Learning(例えばSimCLR)はpositive pairとnegative pariを元となるデータ点が等しいかどうかで識別的に分類することで表現学習を行う. この論文ではそのようなinstance-wiseなcontrastive learningでは例えどんなに似たデータだったとしても異なるデータとして扱うためデータに内在するsemanticな構造を得られないと考え,instance-wiseではなくprototypical contrastive learningを提案する.
一言で言ってしまえば,contrastive learningとself-labeling(DeepClusterなど)の組み合わせ.
Prototypical Contrastive Learning
データセットをで定義する. 学習対象のモデルをとする. 従来のinstance-wise contrastive learningでは次の損失を最小化する.
は番目のデータに対する埋め込みで,は一つのpositive pairの埋め込みと個のnegative pairの埋め込みを含む. は温度パラメータ.
prototypical contrastive learningではこのの代わりにprototype を利用する. さらにハイパーパラメータをprototype毎の集中度に置き換える.
ここでの目的は下記の対数尤度の最大化として表現される.
ここでは仮定として,観測されたデータは潜在変数に関係があるとし,対数尤度を次のように書き直す.
これを直接的に最適化するのは困難であるため,次の下界を考える.
はを満たす分布. この不等式はJensenの不等式から得られる. 等式はの中身が定数の場合に成り立ち,そこからが得られる.
定数を無視することで次の式の最大化として考えられる.
最適化は次のEMアルゴリズムで実現される.
- E-stepではの推定を行う.これは上の-meansとして実行される.prototype を番目のクラスターのセントロイドとし,として計算する.この時のはMoCoと同様にmomentum encoderを利用する.
- M-stepではE-stepで得られたを前述の目的関数の下界に代入してについて最大化する.
ここではに対し事前分布として一様分布を仮定することで次のように書き直す.
さらにに対して等方性のガウス分布を仮定する.
これを目的関数に代入すると,下記の目的関数が得られる.
ただしここではとのl2ノルムが1に正規化されていることを仮定した. また,practicalなところとして従来のInfoNCEをコストに加える,-meansによるセントロイドの計算は複数回繰り返すというのが効いたらしく,最終的な目的関数は以下のようになる.
ここまで説明が保留されていただが,これはprototype 内のデータに対するmomentum encoderの出力を使って次のように計算される.
は小さいクラスタが不当に大きなをもたないようにするためのパラメータ. 意味するところとして,相対的に分散が大きいクラスタは類似度が高くなりにくく,分散が小さいクラスタは低くなりにくいということ.
まとめ
実験結果を見ると,semi-supervisedの評価で異様に精度を向上させている. 論文の気持ちから,目的関数はprototypeを使った項だけで済まして欲しかった. そういった意味で,prototypeを使ったcontrastive lossのみの精度も気になる.