一般的に記述できる枠組みはよくわからない
ふんわりしすぎている印象 (なんでもMetric Learningと言ってしまえるような感じがする)
応用先によって問題設定が異なるので何とも言えないと思っている
雰囲気は、いい感じにデータを変換する関数を学習することをMetric Learningと呼んでいる気がする
顔認証
同一人物の画像どうしの距離を小さく、違う人物どうしの距離を遠くするように関数を学習する
情報検索(例えば画像検索)
同じような画像どうしの距離を小さく、違う感じの画像どうしの距離を遠くするように関数を学習する
異常検知
Learning to Rank
etc…
分類問題のロス(Cross Entropy)から派生したロス(Classification losses)とそうでないもの(Embedding losses)がある by [Musgrave20]
[Musgrave20] によると、Proxy族は Classification losses になっているが、Embedding lossesだと思う
Notation
\(S_{ij} := s(x_{i}, x_{j})\), サンプルiとサンプルjの類似度
\(x_{i}\) : サンプルiのembedding
\(s(\cdot, \cdot)\) : 2つのサンプルの類似度を測る関数 (例: 内積, cosine類似度)
\([x]_+ := \max(x, 0)\)
Contrastive loss [Hadsel06] - 同じラベルなら類似度が高く、違うラベルなら低くなるように学習する
\(I_{ij} := 1 ~~\text{if}~~ y_i = y_j ~~\text{else}~~ 0\)
\(y_i\) : サンプルiのラベル
\(m_p, m_n\) : positive pairのマージン(例: 1.0), negative pairのマージン (例: 0.5)
Triplet loss [Hoffer15] - aとpの類似度より、aとnの類似度が低くなるように学習する
\(a, n, p\) : a=anchorサンプル, n=aのnegative pair, p=aのpositive pair
N-pair loss [Sohn16] - N-pairに拡張したもの
Lifted Structure loss [Song16] Song CVPR’16 Deep Metric Learning via Lifted Structured Feature Embedding
\(\mathcal{X}\) : ミニバッチ (embeddingの集合)
\(\mathcal{X}^+_{x_i}\) : ミニバッチ内の \(x_i\) と同じクラスのembeddingの集合
\(\mathcal{X}^-_p\) : ミニバッチ内の \(x_i\) とは違うクラスのembeddingの集合
Multi Similarity loss [Wang19] Wang CVPR19 Multi-Similarity Loss with General Pair Weighting for Deep Metric Learning
\(\alpha, \beta\) : スケーリングパラメータ(ハイパーパラメータ)
Proxy族: 各クラスを代表するProxiesを使ったロス
Proxy NCA [Movshovitz17] Movshovitz ICCV’17 No fuss distance metric learning using proxies
\(\mathcal{P} = \{p_1, \ldots, p_L \}\), proxies (trainableな変数として、backpropの対象にして学習していく, L=クラス数)
\(d\) : 距離関数 (例: L2距離)
SoftTriplet [Qian19]
ProxyNCA like
proxyを各クラスK個用意して、relaxed similarityを導入している
softmax lossがsmoothedなtriplet lossであるとか言っていて興味深いが、詳しく読めていない
Proxy Anchor [Kim20] Kim CVPR’20 Proxy Anchor Loss for Deep Metric Learning
\(\mathcal{P}^+, \mathcal{P}^-\) : ミニバッチ内のデータのクラスのproxyの集合, ミニバッチ内のデータには存在しないクラスのproxyの集合
\(\mathcal{X}^+_p, \mathcal{X}^-_p\) : ミニバッチ内のproxy pと同じクラスのembeddingの集合, ミニバッチ内のproxy pとは違うクラスのembeddingの集合
\(\alpha\) : スケーリングパラメータ (ハイパーパラメータ)
Hadsell, S. Chopra, and Y. LeCun. Dimensionality reduction by learning an invariant mapping. In CVPR, 2006.
Hoffer and N. Ailon. Deep metric learning using triplet network. In SIMBAD, 2015.
Sohn. Improved deep metric learning with multi-class n-pair loss objective. In NIPS 2016.
Oh Song, Y. Xiang, S. Jegelka, and S. Savarese. Deep metric learning via lifted structured feature embedding. In CVPR, 2016.
Wang, X. Han, W. Huang, D. Dong, and M.R. Scott. Multi-similarity loss with general pair weighting for deep metric learning. In CVPR 2019.
Movshovitz-Attias, A. Toshev, T. K. Leung, S. Ioffe, and S. Singh. No fuss distance metric learning using proxies. In ICCV 2017.
Qi Qian, Lei Shang, Baigui Sun, Juhua Hu, Hao Li, Rong Jin. SoftTriple Loss: Deep Metric Learning Without Triplet Sampling. In ICCV, 2019.
Kim, D. Kim, M. Cho, and S. Kwak. Proxy Anchor Loss for Deep Metric Learning. In CVPR 2020.
Yandong Wen, Kaipeng Zhang, Zhifeng Li, Yu Qiao. A Discriminative Feature Learning Approach for Deep Face Recognition. In ECCV 2016.
Weiyang Liu, Yandong Wen, Zhiding Yu, Ming Li, Bhiksha Raj, Le Song. SphereFace: Deep Hypersphere Embedding for Face Recognition. In CVPR 2017.
Hao Wang, Yitong Wang, Zheng Zhou, Xing Ji, Dihong Gong, Jingchao Zhou, Zhifeng Li, Wei Liu. CosFace: Large Margin Cosine Loss for Deep Face Recognition. In CVPR 2018.
Jiankang Deng, Jia Guo, Niannan Xue, Stefanos Zafeiriou. ArcFace: Additive Angular Margin Loss for Deep Face Recognition. In CVPR 2019.