More Related Content Similar to [DL輪読会]SoftTriple Loss: Deep Metric Learning Without Triplet Sampling (ICCV2019) (20) More from Deep Learning JP (20) [DL輪読会]SoftTriple Loss: Deep Metric Learning Without Triplet Sampling (ICCV2019)1. 1
DEEP LEARNING JP
[DL Papers]
http://deeplearning.jp/
SoftTriple Loss: Deep Metric Learning Without Triplet
Sampling (ICCV2019)
MasashiYokota, RESTAR Inc.
2. 書誌情報
• 著者
– Qi QianらAlibabaの研究チーム
– ICCV2019 採択
• Softmaxを応用し、tripletのサンプルをせずに距離学習を
可能にするSoftTriple Lossを提案。Visual categorizationにおいて、
SOTAな精度を達成。
2
4. 1.1 背景
4
Distance Metric Learning(距離学習)はデータを変換したときに似ているデータを近くに、
そうではないデータは遠くに配置されるようにモデルを学習させることを目的としており、
retrievalや推薦システムなど様々なアプリケーションに応用できる。
画像の引用 ( https://medium.com/mlreview/how-to-apply-distance-metric-learning-for-street-to-shop-problem-d21247723d2a )
5. 1.1 距離学習
• 距離学習には主に2種類の方法がある
– hand-creaftedな特徴量を使う(ex: PCA + マハラノビス距離)
• 特徴量抽出時に情報が欠損してしまい、データが複雑な場合、上手く学習できな
い場合がある
– DLモデルでの特徴抽出 + Triplet Loss
• データセットが大規模になるほどtripletの組み合わせは爆発的に多くなり
tripletの組み合わせのカバー率が低くなる
→tripletのサンプリング方法によって性能が大きく変わることも。
5
6. 1.2. Triplet Loss
6
遠ざける
• ニューラルネットワークを用いた類似度の学習にはTriplet Lossがよく
使われる。一方で、その効率的な学習にはmini-batchのサンプリング
方法等が重要となる。
Negative
Anchor
Positive
学習
近づける
7. 1.2. 従来のtriplet lossでの問題点
7
• DLを用いた従来手法ではmini-batchからtripletを作成する。特に
大規模データセットだと各クラスのneighborhoodを効率的にサンプ
リングすることは難しいため以下の問題が発生
– minibatchサンプリング時点で情報が欠損
– 有益なtripletの作成が困難なため最適化が難しい
8. 1.3. 提案手法 概要: 従来手法との比較 1/2
8
クラスA
クラスA
クラスB
クラスA
アンカー
クラスC
× × ×
×
××
×
× ××
×
×
×
×
××
×
×
×
× ×
×
×
× ×
×
×
×
×
×× ×
×
×
×
×
×
×
異なるクラスのデータを一つサンプリング
同じクラスのデータを一つサンプリング
・従来手法 ※ ×: データ点
Tripletをサンプリングする従来手法では、データセット/ミニバッチからアンカーと同じクラス
のデータと異なるクラスのデータをそれぞれサンプリングしtripletを作成。
9. 1.3. 提案手法 概要: 従来手法との比較 2/2
9
提案手法では実際のデータポイントの代わりに上図のように各クラス領域の中心点を考え
る。Tripletのサンプリングせず、アンカーと同じクラスの領域かつ最も近い中心点を近づけ、
異なるクラス領域の中心点を遠ざける。
クラスA領域①
クラスA領域②
クラスB領域
クラスA
アンカー
クラスC領域
・提案手法 ※ ▲: 各領域の中心点
遠ざける
遠ざける
近づける
10. 1.3. 提案手法 概要
筆者らは論文中でSoftmax Lossの最小化は、Triplet Lossの最適化に等しい
ことを証明。つまり、分類問題の学習と同様にSoftmax Lossを
最小化することで距離学習ができることを示した。 10
Neural Network
FullyConnectedLayer
Softmax
Embedding
Triplet Lossで学習したときと
同じように距離学習できる
11. 1.3. 本論文での貢献
1. Softmax lossがsmoothedなtriplet lossであることを証明
2. Softmax lossをさらに拡張し、各クラスの中心点を複数持った
SoftTriple lossを提案
3. 各クラスの中心点の数を適応的に決定する正則化項も提案
11
13. 2.1. Deep Metric Learning
Deep Metric Learning with Hierarchical Triplet Loss [Ge et. al. ECCV 2018]
Tripletのサンプリングをhierarchical treeを元に行う。なお、 hierarchical tree
は学習時にモデルの学習と同時に最適化するため学習に有益なtripletのサ
ンプリングを可能にしているが、データセット全体の分布を捉えきれていると
は言い切れない。 13
14. 2.2. Learning with Proxies
No Fuss Distance Metric Learning using Proxies [Movshovitz-Attias et. al. ICCV 2017]
データセットからtripletのサンプリングを行う代わりに各クラスごとにproxyをそれ
ぞれ一つ用意。アンカーと同じクラスのProxyとの距離を近く、異なるクラスの
Proxyを遠くに配置されるように学習することで、サンプリングをせず距離学習を可
能にした。 14
15. 2.2. Learning with Proxies
No Fuss Distance Metric Learning using Proxies [Movshovitz-Attias et. al. ICCV 2017]
学習時のモデルやProxyの学習には、上記のようにNCA(Neighborhood Components
Analysis)と同じ損失関数を用いて距離学習を行っている。
しかし、損失関数が非有界かつクラス領域が複数に存在するときに対応不可能。
15
アンカーとProxyの類似度のexponential和
(※アンカーと同じクラスのProxyの類似度は除く。)
17. 3. 提案手法
1. Softmax Loss / Triplet Loss
2. Softmax Lossの最小化がsmoothedなTriplet Lossの最適化をす
ることに相当することの証明
3. Multiple Centers
4. Adaptive Number of Centers
17
18. 3.1.1. Softmax LossとTriplet Loss
• Softmax Loss:
• Triplet Loss:
18
𝒙𝑖: 𝑒𝑚𝑏𝑒𝑑された特徴量で単位ベクトル
𝒚𝑖: 𝒙𝑖に対応するラベル
[𝒘0… 𝒘 𝐶] ∈ ℛ 𝑑×𝐶
:最終FC層の重み
𝑑: embeddingの特徴量の次元数
𝐶: クラス数
𝒙𝑖, 𝒙𝑗: 同じクラスの特徴量
𝒙𝑗: 𝒙𝑖と異なるクラスの特徴量
𝛿: マージン
19. 3.1.2. Softmax Loss再考
• スケーリングファクターを導入し、normalized Softmax Lossは以下
のように示せる
• 上記を最小化することは、smoothedなtriplet lossを最適化するこ
とに相当することを筆者らは証明!(←面白い)
19
22. 3.2.2. Normalized Softmax Loss 解説 2/2
22
正則化項との
バランスを取る
このロスの最適化していくターゲットは
となるようロスを最大化すること。
→ 𝑥𝑖, 𝑤 𝑦 𝑖
, 𝑤𝑗 をそれぞれ特徴量ベクトルと考えると
triplet の最適化に相当すると考えられる。
23. 3.2.3. Normalized SoftmaxとProxyNCAの比較
• Softmax Loss:
• ProxyNCA Loss:
23
𝒙𝑖: 𝑒𝑚𝑏𝑒𝑑された特徴量で単位ベクトル
𝒚𝑖: 𝒙𝑖に対応するラベル
[𝒘0… 𝒘 𝐶] ∈ ℛ 𝑑×𝐶 :最終FC層の重み
𝑑: embeddingの特徴量の次元数
𝐶: クラス数
P20の変換
P20の変換
𝒙𝑖と同じクラスの中心点の
類似度だけ抜いている
24. 3.2.3. Normalized SoftmaxとProxyNCAの比較
• ProxyNCA Loss:
ProxyNCA LossはSoftmax Lossと比較すると、𝑦𝑖クラスに対応する値を排除し
ているため、lossが非有界となる。つまり、 が無限に大きくなるとロスを無限
に小さなってしまう。
→ Triplet Lossのようにヒンジ関数にかませると有界になるので良いので
は?と筆者らは言及。(これ以上の議論は論文の範囲外になるので詳しくはさ
れていない) 24
25. 3.2.4. Normalized Softmax Lossの問題点 1/2
Softmax Lossは各クラス領域に中心点が一つと考えて、Triplet Lossの最適化をしたのと
等しい。仮にintra-class内のバリアンスが大きく、上図のように同一クラスに複数クラスター
が存在する場合、Softmax lossでは上手く距離学習できないのではないか?
25
クラスA領域
クラスA領域クラスB領域
クラスC
領域
クラスD領域
どちらに中心点を
配置すればよいのか
分からない。。。
26. 3.2.4. Normalized Softmax Lossの問題点 2/2
Softmax Lossは各クラス領域に中心点が一つと考えて、Triplet Lossの最適化をしたのと
等しい。仮にintra-class内のバリアンスが大きく、上図のように同一クラスに複数クラスター
が存在する場合、Softmax lossでは上手く距離学習できないのではないか?
→ クラスの中心クラスタが複数あることを想定して、Softmax Lossを拡張する。
26
27. 27
3.3.1. Multiple Centers (HardTriple Loss)
クラスcにK個の中心点𝒘 𝑐
𝑘があるとし、
類似度を以下のように定義
上記の類似度を用いて従来のtriplet loss
のように異なるクラスとの類似度が
マージン𝛿以上離れるように制約を
立てる
最後に先のSoftmax lossに適用し
HardTriple lossを得る
Softmaxの各クラスに複数の中心点を
導入することで、HardTriple Lossは
改善しているが、max演算子を
使っているのでsmoothではない。
→類似度をsmoothにしていく
32. 3.4.1. Adaptive Number of Centers
32
初期に1クラス当たりの中心点を多めに用意しておき上記のように
同じクラスの中心点同士が近づきマージされていくような正則化項
を導入する。
クラスA領域① クラスA領域②
クラスB領域 クラスC領域
クラスA領域①+②
クラスB領域 クラスC領域
1.同じクラスの中心点同士を近づける 2.中心点同士が重なれば実質的に中心点を減らせる
33. 3.4.2. Adaptive Number of Centers
• 中心点 と同じクラスの中心点を用い次のような行列を定義
• と が完全に一致する時、以下を満たす事は明らか
• 近い中心点同士が上式を満たすようにするためL2ノルムを
応用し、次のように を定義する
33
34. 3.4.2. Adaptive Number of Centers
• 前ページで定義した を各中心点で合計する
• 上式の𝒘は単位ベクトルであるため、次のように簡略化できる
• 最後に各クラスごとに足し合わせ最終的に以下のlossを得る
34
36. 4. 実験
1. 実験条件
2. 実験結果 (visual categorization datasetを利用)
1. CUB-2011
2. Cars196
3. Stanford Online Products
36
37. 4.1. 実験条件
1. モデル: Inception with batch normalization
– ImageNetで事前学習
– batch size: 32
2. 検証する提案手法
– Softmax_norm:
– SoftTriple: τ=0.2, γ = 0.1, δ = 0.01, K = 10.
3. メトリクス: 正規化相互情報量(NMI)
37
38. 4.2.1. CUB-2011
• データセットについて
– 11, 788枚の200種の鳥の画像で構成されたデータセット
– 最初の100種のラベルを学習用、残りをテスト用として分割
• 実験内容
1. Embeddingの次元数が64であるメソッドでの比較
2. Embeddingの次元数が大きいメソッドでの比較
3. 正則化項の有効性検証
4. Softmax_norm/SoftTripleの定性評価
38
44. 4.2.2 Cars196
• データセット
– 16, 185枚の196モデルの車の画像データセット
– 最初の98クラスを学習用、残りをテスト用として利用
• 実験内容
1. Embeddingの次元数が64であるメソッドでの比較
2. Embeddingの次元数が大きいメソッドでの比較
44
47. 4.2.3. Stanford Online Products
• データセット
– 22, 634クラスを含む120,053の商品画像データセット
– 最初の11, 318クラスを学習用、残りをテスト用として利用
• 実験設定
– 各クラスに5つの画像しかないため、K=2に修正
– 中心点出力層の学習率を0.01から0.1に修正
• 実験内容
1. Embeddingの次元数が64であるメソッドでの比較
2. Embeddingの次元数が大きいメソッドでの比較
47
Editor's Notes 非有界: 実行可能階を持つが、どれだけでもよくできてしまうもの