[DL輪読会]SoftTriple Loss: Deep Metric Learning Without Triplet Sampling (ICCV2019)

487 Views

September 20, 19

スライド概要

2019/09/20
Deep Learning JP:
http://deeplearning.jp/seminar-2/

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

DEEP LEARNING JP [DL Papers] SoftTriple Loss: Deep Metric Learning Without Triplet Sampling (ICCV2019) Masashi Yokota, RESTAR Inc. http://deeplearning.jp/ 1

2.

書誌情報 • 著者 – Qi QianらAlibabaの研究チーム – ICCV2019 採択 • Softmaxを応用し、tripletのサンプルをせずに距離学習を 可能にするSoftTriple Lossを提案。Visual categorizationに おいて、SOTAな精度を達成。 2

3.

1. 背景 3

4.

1.1 背景 Distance Metric Learning(距離学習)はデータを変換したときに似ているデータを近くに、 そうではないデータは遠くに配置されるようにモデルを学習させることを目的としており、 retrievalや推薦システムなど様々なアプリケーションに応用できる。 画像の引用 ( https://medium.com/mlreview/how-to-apply-distance-metric-learning-for-street-to-shop-problem-d21247723d2a ) 4

5.

1.1 距離学習 • 距離学習には主に2種類の方法がある – hand-creaftedな特徴量を使う(ex: PCA + マハラノビス距離) • 特徴量抽出時に情報が欠損してしまい、データが複雑な場合、上手く学習 できない場合がある – DLモデルでの特徴抽出 + Triplet Loss • データセットが大規模になるほどtripletの組み合わせは爆発的に多くなり tripletの組み合わせのカバー率が低くなる →tripletのサンプリング方法によって性能が大きく変わることも。 5

6.

1.2. Triplet Loss Negative 学習 Anchor 遠ざける 近づける Positive • ニューラルネットワークを用いた類似度の学習にはTriplet Loss がよく使われる。一方で、その効率的な学習にはmini-batchのサ ンプリング方法等が重要となる。 6

7.

1.2. 従来のtriplet lossでの問題点 • DLを用いた従来手法ではmini-batchからtripletを作成する。 特に大規模データセットだと各クラスのneighborhoodを効率 的にサンプリングすることは難しいため以下の問題が発生 – minibatchサンプリング時点で情報が欠損 – 有益なtripletの作成が困難なため最適化が難しい 7

8.

1.3. 提案手法 概要: 従来手法との比較 1/2 ・従来手法 ※ ×: データ点 × × × 異なるクラスのデータを一つサンプリング × クラスB × × × × × クラスA × × × × × × × クラスA アンカー × × × × クラスC × × × × × × × × × × × × クラスA × × × × × × 同じクラスのデータを一つサンプリング Tripletをサンプリングする従来手法では、データセット/ミニバッチからアンカーと 同じクラスのデータと異なるクラスのデータをそれぞれサンプリングしtripletを作 8 成。

9.

1.3. 提案手法 概要: 従来手法との比較 2/2 ・提案手法 ※ ▲: 各領域の中心点 クラスB領域 遠ざける クラスC領域 クラスA領域② クラスA領域① クラスA アンカー 遠ざける 近づける 提案手法では実際のデータポイントの代わりに上図のように各クラス領域の中心点 を考える。Tripletのサンプリングせず、アンカーと同じクラスの領域かつ最も近い 中心点を近づけ、異なるクラス領域の中心点を遠ざける。 9

10.

1.3. 提案手法 概要 Triplet Lossで学習したときと 同じように距離学習できる Softmax Fully Connected Layer Embedding Neural Network 筆者らは論文中でSoftmax Lossの最小化は、Triplet Lossの最適化に等 しいことを証明。つまり、分類問題の学習と同様にSoftmax Lossを 最小化することで距離学習ができることを示した。 10

11.

1.3. 本論文での貢献 1. Softmax lossがsmoothedなtriplet lossであることを証明 2. Softmax lossをさらに拡張し、各クラスの中心点を複数持った SoftTriple lossを提案 3. 各クラスの中心点の数を適応的に決定する正則化項も提案 11

12.

2. 関連研究 12

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の類似度のexponential和 (※アンカーと同じクラスのProxyの類似度は除く。) 学習時のモデルやProxyの学習には、上記のようにNCA(Neighborhood Components Analysis)と同じ損失関数を用いて距離学習を行っている。 しかし、損失関数が非有界かつクラス領域が複数に存在するときに対応不可能。 15

16.

3. 提案手法 16

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: 𝒙𝑖 : 𝑒𝑚𝑏𝑒𝑑された特徴量で単位ベクトル 𝒚𝑖 : 𝒙𝑖 に対応するラベル [𝒘0 … 𝒘𝐶 ] ∈ ℛ 𝑑×𝐶 :最終FC層の重み 𝑑: embeddingの特徴量の次元数 𝐶: クラス数 • Triplet Loss: 𝒙𝑖 , 𝒙𝑗 : 同じクラスの特徴量 𝒙𝑗: 𝒙𝑖 と異なるクラスの特徴量 𝛿: マージン 18

19.

3.1.2. Softmax Loss再考 • スケーリングファクターを導入し、normalized Softmax Lossは以下のように示せる • 上記を最小化することは、smoothedなtriplet lossを最適化 することに相当することを筆者らは証明!(←面白い) 19

20.

3.2.1. Softmax Lossの最小化がsmoothedなTriplet Loss を最適化することに相当することの証明 Proposition1: Normalized Softmax Lossは次式に等しい 証明 1. KKT条件から𝒑𝑗 は 以下の閉形式を持つ : pのエントロピー 2. 1.を用いることで、Softmax Lossと一致することがわかる。 20

21.

3.2.2. Normalized Softmax Loss 解説 1/2 エントロピー正則化項を入れることで Pが極端な分布になるのを防ぐ。 → 外れ値の影響を抑え、ロバスト性を向上 21

22.

3.2.2. Normalized Softmax Loss 解説 2/2 正則化項との バランスを取る このロスの最適化していくターゲットは となるようロスを最大化すること。 → 𝑥𝑖 , 𝑤𝑦𝑖 , 𝑤𝑗 をそれぞれ特徴量ベクトルと考えると triplet の最適化に相当すると考えられる。 22

23.

3.2.3. Normalized SoftmaxとProxyNCAの比較 • Softmax Loss: P20の変換 • ProxyNCA Loss: 𝒙𝑖 : 𝑒𝑚𝑏𝑒𝑑された特徴量で単位ベクトル 𝒚𝑖 : 𝒙𝑖 に対応するラベル [𝒘0 … 𝒘𝐶 ] ∈ ℛ 𝑑×𝐶 :最終FC層の重み 𝑑: embeddingの特徴量の次元数 𝐶: クラス数 𝒙𝑖 と同じクラスの中心点の 類似度だけ抜いている P20の変換 23

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 クラスB領域 クラスA領域 どちらに中心点を 配置すればよいのか 分からない。。。 クラスC 領域 クラスD領域 クラスA領域 Softmax Lossは各クラス領域に中心点が一つと考えて、Triplet Lossの最適化をし たのと等しい。仮にintra-class内のバリアンスが大きく、上図のように同一クラス に複数クラスターが存在する場合、Softmax lossでは上手く距離学習できないので はないか? 25

26.

3.2.4. Normalized Softmax Lossの問題点 2/2 Softmax Lossは各クラス領域に中心点が一つと考えて、Triplet Lossの最適化をし たのと等しい。仮にintra-class内のバリアンスが大きく、上図のように同一クラス に複数クラスターが存在する場合、Softmax lossでは上手く距離学習できないので はないか? → クラスの中心クラスタが複数あることを想定して、Softmax Lossを拡張する。 26

27.

3.3.1. Multiple Centers (HardTriple Loss) クラスcにK個の中心点𝒘𝑘𝑐 があるとし、 類似度を以下のように定義 上記の類似度を用いて従来のtriplet loss のように異なるクラスとの類似度が マージン𝛿以上離れるように制約を 立てる 最後に先のSoftmax lossに適用し HardTriple lossを得る Softmaxの各クラスに複数の中心点を 導入することで、HardTriple Lossは 改善しているが、max演算子を 使っているのでsmoothではない。 →類似度をsmoothにしていく 27

28.

3.3.1. Multiple Centers (類似度をSmoothにする) 先の類似度 よって、分布𝒒を用いて 類似度は次のように考え直せる は分布𝒒を導入することで と考え直せる。上式にエントロピーを 導入し 上記の類似度を使って次の SoftTriple Lossを得られる KKT条件から分布𝒒は以下の閉形式を 持つ 28

29.

3.3.2. 本論文に出てきた各損失関数の比較 max softmax FC層の重みを各クラスの中心点と考えるとFC層の出力は各中心点との類似度を表し ている。すなわち、Softmax Lossは各クラスに中心点が一つの場合と考えられる。 HardTriple LossとSoftTriple Lossは同一クラス内の中心点の選択するときの方法が異な る。(上図は各クラスに2つの中心点を持つ場合を図示) 29

30.

3.3.3. 中心点を導入したtriplet lossが元のtriplet lossを復 元できることの証明 定理1: • 証明 を満たすとき、次式が得られる 補足 L2-L3: コーシー=シュワルツの不等式( 𝑥𝑦 ≥ 𝑥 ※ 𝒙𝑖 は単位ベクトル L3-L4: 𝒙𝑖 は単位ベクトルなので 𝑥 2 2 𝑦 2 ) =1 30

31.

3.3.3. 中心点を導入したtriplet lossが元のtriplet lossを復 元できることの証明 定理1: を満たすとき、次式が得られる ※ 𝒙𝑖 は単位ベクトル • εを減らすには、極端にいうと サンプル数と同じだけ中心点が あればεはゼロとなり従来のTriplet をサンプリングする事と一致する • 一方で、中心点の数が増えると最 終レイヤーの計算量が増え、過学 習のリスクも増す ◆できるだけ中心点の数は少ない方 が良い 31

32.

3.4.1. Adaptive Number of Centers 1.同じクラスの中心点同士を近づける クラスB領域 クラスA領域① クラスC領域 クラスA領域② 2.中心点同士が重なれば実質的に中心点を減らせる クラスB領域 クラスC領域 クラスA領域①+② 初期に1クラス当たりの中心点を多めに用意しておき上記のよ うに同じクラスの中心点同士が近づきマージされていくような 正則化項を導入する。 32

33.

3.4.2. Adaptive Number of Centers • 中心点 と同じクラスの中心点を用い次のような行列を定義 • と が完全に一致する時、以下を満たす事は明らか • 近い中心点同士が上式を満たすようにするためL2ノルムを 応用し、次のように を定義する 33

34.

3.4.2. Adaptive Number of Centers • 前ページで定義した を各中心点で合計する • 上式の𝒘は単位ベクトルであるため、次のように簡略化できる • 最後に各クラスごとに足し合わせ最終的に以下のlossを得る 34

35.

4. 実験 35

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. 2. 3. 4. Embeddingの次元数が64であるメソッドでの比較 Embeddingの次元数が大きいメソッドでの比較 正則化項の有効性検証 Softmax_norm/SoftTripleの定性評価 38

39.

4.2.1. CUB-2011: Embeddingの次元数が64であるメソッドでの比較 39

40.

4.2.1. CUB-2011: Embeddingの次元数が大きいメソッドでの比較 1. 40

41.

4.2.1. CUB-2011 : 正則化項の有効性検証 1/2 クラスごとに正則化項の有無で学習後、中心点がどれくらい マージされずに残っているのかを比較。 41

42.

4.2.1. CUB-2011: 正則化項の有効性検証 2/2 クラスごとの中心点の数を増やしたときに正則化項の有無で、 どれくらい性能の違いがあるのかを比較。 42

43.

4.2.1. CUB-2011: Softmax_norm/SoftTripleの定性評価 43

44.

4.2.2 Cars196 • データセット – 16, 185枚の196モデルの車の画像データセット – 最初の98クラスを学習用、残りをテスト用として利用 • 実験内容 1. Embeddingの次元数が64であるメソッドでの比較 2. Embeddingの次元数が大きいメソッドでの比較 44

45.

4.2.2 Cars196: Embeddingの次元数が64であるメソッドでの比較 45

46.

4.2.2 Cars196: Embeddingの次元数が大きいメソッドでの比較 46

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

48.

4.2.3. Stanford Online Products: Embeddingの次元数が64であるメソッドでの比較 48

49.

4.2.3. Stanford Online Products: Embeddingの次元数が大きいメソッドでの比較 49

50.

感想 • 分類問題を解くことで、結果的に距離学習もできてしまうの は非常に面白い。 • 一方で、中心が一つの場合(Softmax_norm)と中心が複数の 場合(SoftTriple)の差があまりないので、クラスに複数の中心 点を考える必要なかったのでは?とも思う。 • 距離学習周りを初めてサーベイしたがtripletのサンプリング 方法の研究やembedding方法だけでなく、本論文みたいなの も出てきていて面白かった。 50