SlideShare a Scribd company logo
Deep Metric Learningの定番
Triplet Loss 徹底解説
2019/03/20
西野剛平
システム本部AIシステム部AI研究開発第一グループ
株式会社ディー・エヌ・エー
アジェンダ
• ClassificationからMetric Learningへ
• Contrastive Loss と Triplet Loss
• Triplet Lossの変遷
• Triplet Lossの改良
2
Triplet Lossって何? という人でも、お気持ちを 理解してもらえる事をGoalとする。
ClassificationからMetric Learningへ
3
MetricLearning使ったApplication
MetricLearningがよく使われるCVタスク
• 人物同定
• 顔認識
• 画像検索
• 物体追跡
4
Metric Learningを使わなければいけない理由が、そこにはあるはず・・
=> 人物同定(Person Re-Identification)をClassificationタスクとして考えてみる
Classificationを使ったRe-Identification
一般的なClassificationタスク
5
Classificationを使ったRe-Identification
人物画像でClassification
6
Classificationを使ったRe-Identification
同じ人物の別画像を入力
7
Classificationを使ったRe-Identification
違う人物の画像を入力
8
Classificationタスクでは知っているモノしか識別できない
Classificationを使ったRe-Identification
課題
• 知っているものしか識別できない。
• 知らない人物も判別する必要のあるPerson Re-Identificationにおいては、そも
そもこの構造だとまずい。
• 1Classあたりのデータ数が少ないとoverfittingしてしまう可能性が高い。
• 汎化性能を高めるためには、学習時は大量のデータが必要。
=> ちなみに、DeNAの連結社員数は、2,475人。Classificationやるとすると、一人
当り1,000枚ぐらいは欲しいが、現実的ではない。
9
Classification+ で Re-Identification
Classificationの分類機から抽出した特徴量をMetricLearning
10
Embedding Space
MetricLearning
・マハラノビス距離学習
・KISSME
・XQDA
Classification+ で Re-Identification
ClassificationとMetricLearningを一緒にやる
11
・距離
・類似度
・2値分類(同じ or 違う)
Classificationタスクとして学習され
たモデルから、2つの画像の中間特
徴量を取得。その類似度や距離など
を損失として学習
Classification+ で Re-Identification
課題
• 画像分類は2つ以上の画像の類似性を直接説明しているわけではない。したがって、
画像分類とMetric Learningで、相乗的もしくは相補的な効果が得られているのかは
不明
• 画像分類器の学習データに存在していないクラスは、そもそも特徴が学習されていな
い。そのため、後続のMetric Learning部分で、もともと学習データに存在したもの
と、そうでないものを、同等の条件で識別できるかは不明である。
12
画像分類の延長線上ではなく、Metric Learningに特化した損失関数を
使った学習が、主流となっている
Classification+ で Re-Identification(追加)
と思っていたが、最近 SphereFaceや CosFaceやArcFaceといった手法がある事を知った。
見事にClassificationを学習しながらMetricLearningも行っていて、目からウロコだった。
詳細な説明は割愛しますが、簡単に言うと、
ClassificationのSoftmax1つ手前の層の重みベクトルが、そのクラスを表す特徴ベクトル
として、超球面上にembeddingされていく。sotfmax手前のベクトルにマージンを設ける
事で、クラス間の距離が離れるうように、MetricLearningも行われている。
といったような内容です。
詳細を知りたい場合は下記の記事を読んでみてください。
https://qiita.com/yu4u/items/078054dfb5592cbb80cc
13
Contrastive Loss と Triplet Loss
14
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
Contrastive Loss
16
Triplet Loss
17
Triplet Loss
18
下のような状態になるようにCNNの
最適化が行われる
Triplet Lossの変遷
19
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.
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.
Triplet Network(ICLR 2015 workshop)
Triplet NetworkはSamesNetの欠点を改善した手法であると言及
SamesNetでの学習は、2つの画像を近づけたいのか、遠ざけたいのかはコンテキストを
考慮する必要がある。
例えば、性別と名前といったマルチクラスのラベル付きデータセットをMetric Learningす
る場合、
22
Triplet Network(ICLR 2015 workshop)
TripletLossの場合は、基準となる画像に対して、類似度が低い方を、もう一方よりも相対
的に遠ざける形となるため、コンテキストの考慮は必要ない。
23
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.
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
FaceNet(CVPR2015)
Triplet Selectionの方法
Negativeには以下の3種類がある
26
FaceNet(CVPR2015)
Triplet Selectionの方法
FaceNetの実験で利用されたTriplet Selectionの具体的な流れ
27
FaceNet(CVPR2015)
Hard Negativeを利用しない理由を考えてみる・・・
28
FaceNet(CVPR2015)
Hard Negativeを利用しない理由を考えてみる・・・
Hard NegativeのLoss値を減らす最適化は、どちらも短くなるという選択肢がある。
Loss値がマージンよりも大きいため。これは、最終的に dp=0、dn=0、Loss値がα となる
局所解を目指しながら、最適化されてしまう可能性を示唆している。
29
Triplet Lossの改良
30
Triplet Lossの問題点
TripletLossは、Positiveを短くするのか、Negativeを長くするのかに関する条件はない。
あくまで、相対的な関係値のみを規定している。
Lossが0となった後はそれ以上の最適化は行われない!! 31
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.
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.
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.
Triplet Lossの問題点2
Triplet Lossによって繰り返し学習される事により、可能な全てのTripletの組みに対し、
以下の条件が満たされるように最適化される。
35
Triplet Lossの問題点2
例えば、下記はEmbedding空間の様子を表した例で、A, B, C 3つのClassが存在。
AnchorをA3、PositiveをA1、NegativeをC1とした場合、前述の条件は満たしている。
36
Triplet Lossの問題点2
AnchorをC1、PositiveをC2、NegativeをB1とした場合も条件は満たしている
37
Triplet Lossの問題点2
しかし、Aのクラス内距離がBCのクラス間距離よりも大きいといった状況が起きてる。
38
Triplet Lossはクラス内距離がクラス間距離よりも小さくなる事は保証しな
い
Quadruplet Loss(CVPR2017)
3つではなく4つの要素からなる損失関数
最初の項はTriplet Lossと同じ。
2つめの項も似ているが、別のAnchorを持つNegativeを指定。
=> 任意のクラス間距離は、任意のクラス内距離よりも大きくなる
39
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.
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.
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.
Adapted Triplet Loss(ECCV2018)
Triplet Lossを次のように変更
Embedding空間での各クラス毎のベクトルの期待値(平均値)の差が小さくなるような
Lossを追加
43
Adapted Triplet Loss(ECCV2018)
クラス毎のベクトル期待値(平均値)の差が小さくなるLoss
Embegging空間にクラスA、Bが配置されている例
44
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
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

More Related Content

What's hot

【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised Learningまとめ【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised Learningまとめ
Deep Learning JP
 
Skip Connection まとめ(Neural Network)
Skip Connection まとめ(Neural Network)Skip Connection まとめ(Neural Network)
Skip Connection まとめ(Neural Network)
Yamato OKAMOTO
 
【DL輪読会】The Forward-Forward Algorithm: Some Preliminary
【DL輪読会】The Forward-Forward Algorithm: Some Preliminary【DL輪読会】The Forward-Forward Algorithm: Some Preliminary
【DL輪読会】The Forward-Forward Algorithm: Some Preliminary
Deep Learning JP
 
SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜
SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜
SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜
SSII
 
画像生成・生成モデル メタサーベイ
画像生成・生成モデル メタサーベイ画像生成・生成モデル メタサーベイ
画像生成・生成モデル メタサーベイ
cvpaper. challenge
 
Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)
Yoshitaka Ushiku
 
[DL輪読会]ICLR2020の分布外検知速報
[DL輪読会]ICLR2020の分布外検知速報[DL輪読会]ICLR2020の分布外検知速報
[DL輪読会]ICLR2020の分布外検知速報
Deep Learning JP
 
【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces
【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces
【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces
Deep Learning JP
 
ResNetの仕組み
ResNetの仕組みResNetの仕組み
ResNetの仕組み
Kota Nagasato
 
Semantic segmentation
Semantic segmentationSemantic segmentation
Semantic segmentation
Takuya Minagawa
 
画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量takaya imai
 
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
Yusuke Uchida
 
実装レベルで学ぶVQVAE
実装レベルで学ぶVQVAE実装レベルで学ぶVQVAE
実装レベルで学ぶVQVAE
ぱんいち すみもと
 
Transformer 動向調査 in 画像認識(修正版)
Transformer 動向調査 in 画像認識(修正版)Transformer 動向調査 in 画像認識(修正版)
Transformer 動向調査 in 画像認識(修正版)
Kazuki Maeno
 
[DL輪読会]相互情報量最大化による表現学習
[DL輪読会]相互情報量最大化による表現学習[DL輪読会]相互情報量最大化による表現学習
[DL輪読会]相互情報量最大化による表現学習
Deep Learning JP
 
【DL輪読会】Flamingo: a Visual Language Model for Few-Shot Learning 画像×言語の大規模基盤モ...
【DL輪読会】Flamingo: a Visual Language Model for Few-Shot Learning   画像×言語の大規模基盤モ...【DL輪読会】Flamingo: a Visual Language Model for Few-Shot Learning   画像×言語の大規模基盤モ...
【DL輪読会】Flamingo: a Visual Language Model for Few-Shot Learning 画像×言語の大規模基盤モ...
Deep Learning JP
 
研究効率化Tips Ver.2
研究効率化Tips Ver.2研究効率化Tips Ver.2
研究効率化Tips Ver.2
cvpaper. challenge
 
Long-Tailed Classificationの最新動向について
Long-Tailed Classificationの最新動向についてLong-Tailed Classificationの最新動向について
Long-Tailed Classificationの最新動向について
Plot Hong
 
Deep Learningによる超解像の進歩
Deep Learningによる超解像の進歩Deep Learningによる超解像の進歩
Deep Learningによる超解像の進歩
Hiroto Honda
 
【メタサーベイ】Vision and Language のトップ研究室/研究者
【メタサーベイ】Vision and Language のトップ研究室/研究者【メタサーベイ】Vision and Language のトップ研究室/研究者
【メタサーベイ】Vision and Language のトップ研究室/研究者
cvpaper. challenge
 

What's hot (20)

【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised Learningまとめ【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised Learningまとめ
 
Skip Connection まとめ(Neural Network)
Skip Connection まとめ(Neural Network)Skip Connection まとめ(Neural Network)
Skip Connection まとめ(Neural Network)
 
【DL輪読会】The Forward-Forward Algorithm: Some Preliminary
【DL輪読会】The Forward-Forward Algorithm: Some Preliminary【DL輪読会】The Forward-Forward Algorithm: Some Preliminary
【DL輪読会】The Forward-Forward Algorithm: Some Preliminary
 
SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜
SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜
SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜
 
画像生成・生成モデル メタサーベイ
画像生成・生成モデル メタサーベイ画像生成・生成モデル メタサーベイ
画像生成・生成モデル メタサーベイ
 
Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)
 
[DL輪読会]ICLR2020の分布外検知速報
[DL輪読会]ICLR2020の分布外検知速報[DL輪読会]ICLR2020の分布外検知速報
[DL輪読会]ICLR2020の分布外検知速報
 
【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces
【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces
【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces
 
ResNetの仕組み
ResNetの仕組みResNetの仕組み
ResNetの仕組み
 
Semantic segmentation
Semantic segmentationSemantic segmentation
Semantic segmentation
 
画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量
 
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
 
実装レベルで学ぶVQVAE
実装レベルで学ぶVQVAE実装レベルで学ぶVQVAE
実装レベルで学ぶVQVAE
 
Transformer 動向調査 in 画像認識(修正版)
Transformer 動向調査 in 画像認識(修正版)Transformer 動向調査 in 画像認識(修正版)
Transformer 動向調査 in 画像認識(修正版)
 
[DL輪読会]相互情報量最大化による表現学習
[DL輪読会]相互情報量最大化による表現学習[DL輪読会]相互情報量最大化による表現学習
[DL輪読会]相互情報量最大化による表現学習
 
【DL輪読会】Flamingo: a Visual Language Model for Few-Shot Learning 画像×言語の大規模基盤モ...
【DL輪読会】Flamingo: a Visual Language Model for Few-Shot Learning   画像×言語の大規模基盤モ...【DL輪読会】Flamingo: a Visual Language Model for Few-Shot Learning   画像×言語の大規模基盤モ...
【DL輪読会】Flamingo: a Visual Language Model for Few-Shot Learning 画像×言語の大規模基盤モ...
 
研究効率化Tips Ver.2
研究効率化Tips Ver.2研究効率化Tips Ver.2
研究効率化Tips Ver.2
 
Long-Tailed Classificationの最新動向について
Long-Tailed Classificationの最新動向についてLong-Tailed Classificationの最新動向について
Long-Tailed Classificationの最新動向について
 
Deep Learningによる超解像の進歩
Deep Learningによる超解像の進歩Deep Learningによる超解像の進歩
Deep Learningによる超解像の進歩
 
【メタサーベイ】Vision and Language のトップ研究室/研究者
【メタサーベイ】Vision and Language のトップ研究室/研究者【メタサーベイ】Vision and Language のトップ研究室/研究者
【メタサーベイ】Vision and Language のトップ研究室/研究者
 

Similar to Triplet Loss 徹底解説

Triplet Lossによる Person Re-identification
Triplet Lossによる Person Re-identificationTriplet Lossによる Person Re-identification
Triplet Lossによる Person Re-identification
tancoro
 
20201010 personreid
20201010 personreid20201010 personreid
20201010 personreid
Takuya Minagawa
 
Machine Learning Fundamentals IEEE
Machine Learning Fundamentals IEEEMachine Learning Fundamentals IEEE
Machine Learning Fundamentals IEEE
Antonio Tejero de Pablos
 
機械学習 / Deep Learning 大全 (1) 機械学習基礎編
機械学習 / Deep Learning 大全 (1) 機械学習基礎編機械学習 / Deep Learning 大全 (1) 機械学習基礎編
機械学習 / Deep Learning 大全 (1) 機械学習基礎編
Daiyu Hatakeyama
 
【2016.01】(1/3)cvpaper.challenge2016
【2016.01】(1/3)cvpaper.challenge2016【2016.01】(1/3)cvpaper.challenge2016
【2016.01】(1/3)cvpaper.challenge2016
cvpaper. challenge
 
ディープラーニング入門 ~ 画像処理・自然言語処理について ~
ディープラーニング入門 ~ 画像処理・自然言語処理について ~ディープラーニング入門 ~ 画像処理・自然言語処理について ~
ディープラーニング入門 ~ 画像処理・自然言語処理について ~
Kensuke Otsuki
 
[DL輪読会]SoftTriple Loss: Deep Metric Learning Without Triplet Sampling (ICCV2019)
[DL輪読会]SoftTriple Loss: Deep Metric Learning Without Triplet Sampling (ICCV2019)[DL輪読会]SoftTriple Loss: Deep Metric Learning Without Triplet Sampling (ICCV2019)
[DL輪読会]SoftTriple Loss: Deep Metric Learning Without Triplet Sampling (ICCV2019)
Deep Learning JP
 
SSII2022 [OS3-04] Human-in-the-Loop 機械学習
SSII2022 [OS3-04] Human-in-the-Loop 機械学習SSII2022 [OS3-04] Human-in-the-Loop 機械学習
SSII2022 [OS3-04] Human-in-the-Loop 機械学習
SSII
 
エンジニアのための機械学習の基礎
エンジニアのための機械学習の基礎エンジニアのための機械学習の基礎
エンジニアのための機械学習の基礎
Daiyu Hatakeyama
 
[DL輪読会]Xception: Deep Learning with Depthwise Separable Convolutions
[DL輪読会]Xception: Deep Learning with Depthwise Separable Convolutions[DL輪読会]Xception: Deep Learning with Depthwise Separable Convolutions
[DL輪読会]Xception: Deep Learning with Depthwise Separable Convolutions
Deep Learning JP
 

Similar to Triplet Loss 徹底解説 (10)

Triplet Lossによる Person Re-identification
Triplet Lossによる Person Re-identificationTriplet Lossによる Person Re-identification
Triplet Lossによる Person Re-identification
 
20201010 personreid
20201010 personreid20201010 personreid
20201010 personreid
 
Machine Learning Fundamentals IEEE
Machine Learning Fundamentals IEEEMachine Learning Fundamentals IEEE
Machine Learning Fundamentals IEEE
 
機械学習 / Deep Learning 大全 (1) 機械学習基礎編
機械学習 / Deep Learning 大全 (1) 機械学習基礎編機械学習 / Deep Learning 大全 (1) 機械学習基礎編
機械学習 / Deep Learning 大全 (1) 機械学習基礎編
 
【2016.01】(1/3)cvpaper.challenge2016
【2016.01】(1/3)cvpaper.challenge2016【2016.01】(1/3)cvpaper.challenge2016
【2016.01】(1/3)cvpaper.challenge2016
 
ディープラーニング入門 ~ 画像処理・自然言語処理について ~
ディープラーニング入門 ~ 画像処理・自然言語処理について ~ディープラーニング入門 ~ 画像処理・自然言語処理について ~
ディープラーニング入門 ~ 画像処理・自然言語処理について ~
 
[DL輪読会]SoftTriple Loss: Deep Metric Learning Without Triplet Sampling (ICCV2019)
[DL輪読会]SoftTriple Loss: Deep Metric Learning Without Triplet Sampling (ICCV2019)[DL輪読会]SoftTriple Loss: Deep Metric Learning Without Triplet Sampling (ICCV2019)
[DL輪読会]SoftTriple Loss: Deep Metric Learning Without Triplet Sampling (ICCV2019)
 
SSII2022 [OS3-04] Human-in-the-Loop 機械学習
SSII2022 [OS3-04] Human-in-the-Loop 機械学習SSII2022 [OS3-04] Human-in-the-Loop 機械学習
SSII2022 [OS3-04] Human-in-the-Loop 機械学習
 
エンジニアのための機械学習の基礎
エンジニアのための機械学習の基礎エンジニアのための機械学習の基礎
エンジニアのための機械学習の基礎
 
[DL輪読会]Xception: Deep Learning with Depthwise Separable Convolutions
[DL輪読会]Xception: Deep Learning with Depthwise Separable Convolutions[DL輪読会]Xception: Deep Learning with Depthwise Separable Convolutions
[DL輪読会]Xception: Deep Learning with Depthwise Separable Convolutions
 

Triplet Loss 徹底解説

Editor's Notes

  1. 一般物体認識の図
  2. 一般物体認識と同様のやり方で学習する事で、人の識別を行う事ができる。
  3. Fさんの画像を入れたとしても、A,B,C,Dの何れかと判断されてしまう。 Classficationタスクは、原理的に答えの中からもっともスコアの高いものを選ぶだけなので、結局のところ、知っているものしか識別する事はできない。
  4. 知らないモノも判別できるように、Classificationタスクとして直接解くのではなく、出力層の近くの値の特徴量を抽出するためだけに利用する。 抽出された特徴量はEmbeddingされ、MetricLearningによって、同じIDをもつものは近くに、違うIDを持つものは遠くになるよう学習される。
  5. ClassificationでPre-trainしておいてから、MetricLearningでFine-tuneするやり方と、MetricLearningとClassificationを同時に行うようなやり方が考えられる 画像分類ネットワーク部分の損失関数(Softmax Cross Entropy)とサブネットワーク部分の損失関数の2つがあるので、両者をうまくバランシングしながらネットワーク全体を学習する。
  6. 学習は2つの画像を1組みとして行われます。各入力画像は、CNN(変換 f )によって、Embedding空間のベクトルとして配置され、ベクトル間の距離を関数 d で計測します。関数 d はユークリッド距離を使う事が多いですが、Embedding空間の2つのベクトル間の距離を計測できる関数であれば、どのようなものでも問題ありません。Contrastive Loss関数のαはマージンを表しています。yは2つの入力画像 xaと xbのラベルが同じ場合は1、違う場合は 0となります。したがって、dは同じラベル間では小さく、違うラベル間では大きくなるように、CNN(変換 f )が学習されていきます。
  7. 学習は、基準となるAnchor画像 xa、Anchorと同じIDのPositive画像 xp、Anchorと違うIDのNegative画像 xnの3つを1組として行われます。各入力画像は、CNN(変換 f )によって、Embedding空間のベクトルとして配置されます。Embedding空間ではAnchor-Positive間の距離 dp 、Anchor-Negative間の距離 dn を関数 d で計測します。関数 d はユークリッド距離を使う場合が多いですが、Embedding空間の2つのベクトル間の距離を計測できる関数であれば、どのようなものでも問題ありません。
  8. ちなみに、マージンがない場合はdpもdnも0になってしまう。つまり、一点にフィットしてしまう。
  9. 画像検索のためのアノテーション作業で、何十枚もの画像を、似ている順番に人手で並べてラベル付けするのは、間違いが多い。 Query-Negative間がQuery-Positive間よりもユークリッド距離が大きくなるように、繰り返し最適化していく事により、画像間の類似性が学習されていきます。画像の検索時は、Embedding空間内で近傍探査して、ユークリッド距離の近い順を、そのまま検索結果の順位とする事ができます。
  10. 損失関数は、positiveとnegativeのユークリッド距離でSoftmaxしていて、マージンはない。つまり、negathiveがpositiveに対してどれだけ以上離れていれば良いといった、明示的な値はない。 ネットワークの出力値のベクトルの正規化もされていないためか、精度はいまいちのよう。
  11. 当時の顔認証のSOTAを記録した事もあり、この論文発表以降にTriplet Loss関数がMetric Learningにおけるメジャーな損失関数の1つとして知れ渡った感はあります。
  12. Easy Negativeに関しては、Lossがないので学習に利用する意味がない。 Semi-Hard NegativeのLoss値を減らそうとする場合ですが、現時点よりもLoss値を減らすための最適化は、相対的にNegativeが長くなるか、Positiveが短くなるかしかありません。
  13. ポジティブペア単体で学習される。つまり、ContrastiveLossの要素が入っているようなイメージ。
  14. ユークリッド距離ではなくDeepMetricLearningを使う事で、2つの画像間の複雑な関係を効果的にモデル化することができる。したがって、カメラ間の外観の変化や視点の違いなどに対してもよりロバストにすることができる。 Shared sub-networkはembedding部分、SIRは従来のTripletLoss部分、そしてCIRがDeepLearningを使ってMetricLearningしている部分といった構成となっている。
  15. CIRはRankSVMの損失関数を利用している。関数gは1000次元のベクトルとなっているが距離(スカラ)にする必要があるので、wを掛けている。wは学習によって獲得されるパラメータ。ちなみに、第一項は正則化の項でwのL2ノルムは小さい程よい(wとgの内積の値を小さく抑える正則化として働く)。αtは定数。ntはトレードオフのパラメータ。
  16. 実はこの図、全てのTripletの組みに対して条件を満たしている。つまり、Triplet Lossによって十分学習されきった後のEmbedding空間の状態を表しているわけです。
  17. 例えば閾値を使った同一Classの判定を行おうとした時に、問題がおきてしまう場合があります。
  18. 十分に学習が進めば、クラス間最小距離はクラス内最大距離よりも大きい事が保証されます。
  19. 赤色のエリアが新たに加えられた4つ目の要素 Softmaxによって距離は[0,1]の範囲に正規化されるため、損失関数のマージンの値の範囲も決めやすくなる。