Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Triplet Loss 徹底解説

5,768 views

Published on

ClassificationとMetric Learningの違い、Contrastive Loss と Triplet Loss、Triplet Lossの改良の変遷など

Published in: Data & Analytics
  • Be the first to comment

Triplet Loss 徹底解説

  1. 1. Deep Metric Learningの定番 Triplet Loss 徹底解説 2019/03/20 西野剛平 システム本部AIシステム部AI研究開発第一グループ 株式会社ディー・エヌ・エー
  2. 2. アジェンダ • ClassificationからMetric Learningへ • Contrastive Loss と Triplet Loss • Triplet Lossの変遷 • Triplet Lossの改良 2 Triplet Lossって何? という人でも、お気持ちを 理解してもらえる事をGoalとする。
  3. 3. ClassificationからMetric Learningへ 3
  4. 4. MetricLearning使ったApplication MetricLearningがよく使われるCVタスク • 人物同定 • 顔認識 • 画像検索 • 物体追跡 4 Metric Learningを使わなければいけない理由が、そこにはあるはず・・ => 人物同定(Person Re-Identification)をClassificationタスクとして考えてみる
  5. 5. Classificationを使ったRe-Identification 一般的なClassificationタスク 5
  6. 6. Classificationを使ったRe-Identification 人物画像でClassification 6
  7. 7. Classificationを使ったRe-Identification 同じ人物の別画像を入力 7
  8. 8. Classificationを使ったRe-Identification 違う人物の画像を入力 8 Classificationタスクでは知っているモノしか識別できない
  9. 9. Classificationを使ったRe-Identification 課題 • 知っているものしか識別できない。 • 知らない人物も判別する必要のあるPerson Re-Identificationにおいては、そも そもこの構造だとまずい。 • 1Classあたりのデータ数が少ないとoverfittingしてしまう可能性が高い。 • 汎化性能を高めるためには、学習時は大量のデータが必要。 => ちなみに、DeNAの連結社員数は、2,475人。Classificationやるとすると、一人 当り1,000枚ぐらいは欲しいが、現実的ではない。 9
  10. 10. Classification+ で Re-Identification Classificationの分類機から抽出した特徴量をMetricLearning 10 Embedding Space MetricLearning ・マハラノビス距離学習 ・KISSME ・XQDA
  11. 11. Classification+ で Re-Identification ClassificationとMetricLearningを一緒にやる 11 ・距離 ・類似度 ・2値分類(同じ or 違う) Classificationタスクとして学習され たモデルから、2つの画像の中間特 徴量を取得。その類似度や距離など を損失として学習
  12. 12. Classification+ で Re-Identification 課題 • 画像分類は2つ以上の画像の類似性を直接説明しているわけではない。したがって、 画像分類とMetric Learningで、相乗的もしくは相補的な効果が得られているのかは 不明 • 画像分類器の学習データに存在していないクラスは、そもそも特徴が学習されていな い。そのため、後続のMetric Learning部分で、もともと学習データに存在したもの と、そうでないものを、同等の条件で識別できるかは不明である。 12 画像分類の延長線上ではなく、Metric Learningに特化した損失関数を 使った学習が、主流となっている
  13. 13. Classification+ で Re-Identification(追加) と思っていたが、最近 SphereFaceや CosFaceやArcFaceといった手法がある事を知った。 見事にClassificationを学習しながらMetricLearningも行っていて、目からウロコだった。 詳細な説明は割愛しますが、簡単に言うと、 ClassificationのSoftmax1つ手前の層の重みベクトルが、そのクラスを表す特徴ベクトル として、超球面上にembeddingされていく。sotfmax手前のベクトルにマージンを設ける 事で、クラス間の距離が離れるうように、MetricLearningも行われている。 といったような内容です。 詳細を知りたい場合は下記の記事を読んでみてください。 https://qiita.com/yu4u/items/078054dfb5592cbb80cc 13
  14. 14. Contrastive Loss と Triplet Loss 14
  15. 15. Contrastive Loss • ContrastiveLossはSiameseNetで使われる事がほとんど • SiameseNetはパラメータ共有の同じ構造のモデルを利用 S. J. Rao, Y. Wang, G. W. Cottrell. “A deep Siamese neural network learns the human-perceived similarity structure of facial expressions without explicit categories.” in CogSci, 2016. 15
  16. 16. Contrastive Loss 16
  17. 17. Triplet Loss 17
  18. 18. Triplet Loss 18 下のような状態になるようにCNNの 最適化が行われる
  19. 19. Triplet Lossの変遷 19
  20. 20. Triplet Lossの登場(CVPR2014) Triplet Lossは、2014年4月にarxivで発表された論文で、画像検索における順位付けを学 習するために提案されたのが最初 3枚の画像を1セットにし、その中の一つの画像(Query)と似ている方をPositive、似 ていない方をNegative、という風に3枚毎にラベル付けを行っていけばミスもかなり減る。 20J. Wang, Y. Song, T. Leung, C. Rosenberg, J. Wang, J. Philbin, B. Chen, and Y. Wu. "Learning Fine-grained Image Similarity with Deep Ranking." In CVPR, 2014.
  21. 21. Triplet Network(ICLR 2015 workshop) 2014年12月にarxivに上げられた論文で、画像検索における順位付けといった限られた用 途だけではなく、Triplet LossはMetric Learningを必要とするタスクに対して広く有効な 手法であると紹介。損失関数は、PositiveとNegativeのユークリッド距離をSoftmaxして いる点が前例と異なっている。 21E. Hoffer, and N. Ailon. "DEEP METRIC LEARNING USING TRIPLET NETWORK." In ICLR workshop, 2015.
  22. 22. Triplet Network(ICLR 2015 workshop) Triplet NetworkはSamesNetの欠点を改善した手法であると言及 SamesNetでの学習は、2つの画像を近づけたいのか、遠ざけたいのかはコンテキストを 考慮する必要がある。 例えば、性別と名前といったマルチクラスのラベル付きデータセットをMetric Learningす る場合、 22
  23. 23. Triplet Network(ICLR 2015 workshop) TripletLossの場合は、基準となる画像に対して、類似度が低い方を、もう一方よりも相対 的に遠ざける形となるため、コンテキストの考慮は必要ない。 23
  24. 24. FaceNet(CVPR2015) 2015年3月に顔認識のSOTAを記録した手法としてGoogle Inc.から発表 • 全体の構造はCVPR2014で提案されたものとほとんど同じ オリジナル要素は、 • 顔の情報(Embedding空間でのベクトルの次元数)を128次元までに圧縮 • Tripletのマイニング方法の工夫により、学習効率を大幅に上げた 24F. Schroff, D. Kalenichenko, and J. Philbin. "Facenet: A Unified Embedding for Face Recognition and Clustering." In CVPR, 2015.
  25. 25. FaceNet(CVPR2015) Triplet Selectionの方法 データセット(k 個のClassと、1Classあたり c個の画像がある場合) Anchorの選び方は kc個、Positiveの選び方は c−1 個、Negativeの選び方は c(k−1) 個 => Tripletの組合せは膨大になり、全てを学習に利用していくのは非効率 mini-batchの中だけでTripletを構築して、Semi-hard Negativeの条件 を満たすもののみをランダムに利用していく戦略を取る 25
  26. 26. FaceNet(CVPR2015) Triplet Selectionの方法 Negativeには以下の3種類がある 26
  27. 27. FaceNet(CVPR2015) Triplet Selectionの方法 FaceNetの実験で利用されたTriplet Selectionの具体的な流れ 27
  28. 28. FaceNet(CVPR2015) Hard Negativeを利用しない理由を考えてみる・・・ 28
  29. 29. FaceNet(CVPR2015) Hard Negativeを利用しない理由を考えてみる・・・ Hard NegativeのLoss値を減らす最適化は、どちらも短くなるという選択肢がある。 Loss値がマージンよりも大きいため。これは、最終的に dp=0、dn=0、Loss値がα となる 局所解を目指しながら、最適化されてしまう可能性を示唆している。 29
  30. 30. Triplet Lossの改良 30
  31. 31. Triplet Lossの問題点 TripletLossは、Positiveを短くするのか、Negativeを長くするのかに関する条件はない。 あくまで、相対的な関係値のみを規定している。 Lossが0となった後はそれ以上の最適化は行われない!! 31
  32. 32. Triplet Lossの改善(CVPR2016) この問題を解決するTripletLossが提案された。従来のTriplet Lossの項に加えて、 Positiveを一定の大きさ β よりも小さくする項を追加。 相対的な位置関係とは別に、クラス内の距離が βより小さくなるように働く。 32D. Cheng, Y. Gong, S. Zhou, J. Wang, and N. Zheng. "Person Re-Identification by Multi-Channel Parts-Based CNN with Improved Triplet Loss Function." In CVPR, 2016.
  33. 33. Triplet LossのDeep Metric Learning(CVPR2016) PositiveやNegativeの長さはユークリッド距離を使うのが一般的ですが、この距離算出自 体もDeepLearningでやってしまうような手法を提案 Shared sub-network と single-image representation(SIR)とcross-image representation (CIR)という3つの要素でネットワークを構成 33 F. Wang, W. Zuo, L. Lin, D. Zhang, and L. Zhang. "Joint Learning of Single-image and Cross-image Representations for Person Re-identification." In CVPR, 2016.
  34. 34. Triplet LossのDeep Metric Learning(CVPR2016) 図の青色の部分がShared sub-networkで、緑色の部分がsingle-image representation (SIR)で、赤色の部分がcross-image representation (CIR) 34 F. Wang, W. Zuo, L. Lin, D. Zhang, and L. Zhang. "Joint Learning of Single-image and Cross-image Representations for Person Re-identification." In CVPR, 2016.
  35. 35. Triplet Lossの問題点2 Triplet Lossによって繰り返し学習される事により、可能な全てのTripletの組みに対し、 以下の条件が満たされるように最適化される。 35
  36. 36. Triplet Lossの問題点2 例えば、下記はEmbedding空間の様子を表した例で、A, B, C 3つのClassが存在。 AnchorをA3、PositiveをA1、NegativeをC1とした場合、前述の条件は満たしている。 36
  37. 37. Triplet Lossの問題点2 AnchorをC1、PositiveをC2、NegativeをB1とした場合も条件は満たしている 37
  38. 38. Triplet Lossの問題点2 しかし、Aのクラス内距離がBCのクラス間距離よりも大きいといった状況が起きてる。 38 Triplet Lossはクラス内距離がクラス間距離よりも小さくなる事は保証しな い
  39. 39. Quadruplet Loss(CVPR2017) 3つではなく4つの要素からなる損失関数 最初の項はTriplet Lossと同じ。 2つめの項も似ているが、別のAnchorを持つNegativeを指定。 => 任意のクラス間距離は、任意のクラス内距離よりも大きくなる 39
  40. 40. Quadruplet Loss(CVPR2017) 最初のConvolution1,2によりEmbedding Embedding空間内の距離はDeep Metric Learningを使用 最終層でSoftmaxし、2つの画像が違う確率の値をそのまま距離の値として利用 40W. Chen, X. Chen, J. Zhang, and K. Huang. "Beyond triplet loss: a deep quadruplet network for person re-identification." In CVPR, 2017.
  41. 41. Adapted Triplet Loss(ECCV2018) Triplet Lossの性能は、学習時のTripletの選択方法に強く依存 • 学習データを選ぶ必要 • データの偏りによるバイアスが生じる危険性 Domain Adaptationの一種 • ソースドメインの分布をターゲットドメインに近づけながら学習 41 B. Yu, T. Liu, M. Gong, C. Ding, and D. Tao. "Correcting the Triplet Selection Bias for Triplet Loss." In ECCV, 2018.
  42. 42. Adapted Triplet Loss(ECCV2018) Xは入力データ、Yはラベル を、Source DomainとTarget Domainそれぞれの確率密度関数 を、Embedding空間への変換とすると下記の状態が理想的 42B. Yu, T. Liu, M. Gong, C. Ding, and D. Tao. "Correcting the Triplet Selection Bias for Triplet Loss." In ECCV, 2018.
  43. 43. Adapted Triplet Loss(ECCV2018) Triplet Lossを次のように変更 Embedding空間での各クラス毎のベクトルの期待値(平均値)の差が小さくなるような Lossを追加 43
  44. 44. Adapted Triplet Loss(ECCV2018) クラス毎のベクトル期待値(平均値)の差が小さくなるLoss Embegging空間にクラスA、Bが配置されている例 44
  45. 45. References • https://qiita.com/yu4u/items/078054dfb5592cbb80cc • S. J. Rao, Y. Wang, G. W. Cottrell. “A deep Siamese neural network learns the human-perceived similarity structure of facial expressions without explicit categories.” in CogSci, 2016. • J. Wang, Y. Song, T. Leung, C. Rosenberg, J. Wang, J. Philbin, B. Chen, and Y. Wu. "Learning Fine-grained Image Similarity with Deep Ranking." In CVPR, 2014. • E. Hoffer, and N. Ailon. "DEEP METRIC LEARNING USING TRIPLET NETWORK." In ICLR workshop, 2015. • F. Schroff, D. Kalenichenko, and J. Philbin. "Facenet: A Unified Embedding for Face Recognition and Clustering." In CVPR, 2015. • D. Cheng, Y. Gong, S. Zhou, J. Wang, and N. Zheng. "Person Re-Identification by Multi-Channel Parts-Based CNN with Improved Triplet Loss Function." In CVPR, 2016. 45
  46. 46. References • F. Wang, W. Zuo, L. Lin, D. Zhang, and L. Zhang. "Joint Learning of Single- image and Cross-image Representations for Person Re-identification." In CVPR, 2016. • W. Chen, X. Chen, J. Zhang, and K. Huang. "Beyond triplet loss: a deep quadruplet network for person re-identification." In CVPR, 2017. • B. Yu, T. Liu, M. Gong, C. Ding, and D. Tao. "Correcting the Triplet Selection Bias for Triplet Loss." In ECCV, 2018. 46

×