SlideShare una empresa de Scribd logo
1 de 46
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

Más contenido relacionado

La actualidad más candente

[DL輪読会]Vision Transformer with Deformable Attention (Deformable Attention Tra...
[DL輪読会]Vision Transformer with Deformable Attention (Deformable Attention Tra...[DL輪読会]Vision Transformer with Deformable Attention (Deformable Attention Tra...
[DL輪読会]Vision Transformer with Deformable Attention (Deformable Attention Tra...Deep Learning JP
 
[DL輪読会]Focal Loss for Dense Object Detection
[DL輪読会]Focal Loss for Dense Object Detection[DL輪読会]Focal Loss for Dense Object Detection
[DL輪読会]Focal Loss for Dense Object DetectionDeep Learning JP
 
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法SSII
 
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料Yusuke Uchida
 
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習SSII
 
[DL輪読会]相互情報量最大化による表現学習
[DL輪読会]相互情報量最大化による表現学習[DL輪読会]相互情報量最大化による表現学習
[DL輪読会]相互情報量最大化による表現学習Deep Learning JP
 
[DL輪読会]A closer look at few shot classification
[DL輪読会]A closer look at few shot classification[DL輪読会]A closer look at few shot classification
[DL輪読会]A closer look at few shot classificationDeep Learning JP
 
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
 
[DL輪読会]ICLR2020の分布外検知速報
[DL輪読会]ICLR2020の分布外検知速報[DL輪読会]ICLR2020の分布外検知速報
[DL輪読会]ICLR2020の分布外検知速報Deep Learning JP
 
【DL輪読会】時系列予測 Transfomers の精度向上手法
【DL輪読会】時系列予測 Transfomers の精度向上手法【DL輪読会】時系列予測 Transfomers の精度向上手法
【DL輪読会】時系列予測 Transfomers の精度向上手法Deep Learning JP
 
Transformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法についてTransformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法についてSho Takase
 
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
深層学習の不確実性 - Uncertainty in Deep Neural Networks -深層学習の不確実性 - Uncertainty in Deep Neural Networks -
深層学習の不確実性 - Uncertainty in Deep Neural Networks -tmtm otm
 
Skip Connection まとめ(Neural Network)
Skip Connection まとめ(Neural Network)Skip Connection まとめ(Neural Network)
Skip Connection まとめ(Neural Network)Yamato OKAMOTO
 
[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...
[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...
[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...Deep Learning JP
 
深層学習の数理
深層学習の数理深層学習の数理
深層学習の数理Taiji Suzuki
 
モデルアーキテクチャ観点からの高速化2019
モデルアーキテクチャ観点からの高速化2019モデルアーキテクチャ観点からの高速化2019
モデルアーキテクチャ観点からの高速化2019Yusuke Uchida
 
backbone としての timm 入門
backbone としての timm 入門backbone としての timm 入門
backbone としての timm 入門Takuji Tahara
 
モデルアーキテクチャ観点からのDeep Neural Network高速化
モデルアーキテクチャ観点からのDeep Neural Network高速化モデルアーキテクチャ観点からのDeep Neural Network高速化
モデルアーキテクチャ観点からのDeep Neural Network高速化Yusuke Uchida
 
[DL輪読会]GLIDE: Guided Language to Image Diffusion for Generation and Editing
[DL輪読会]GLIDE: Guided Language to Image Diffusion  for Generation and Editing[DL輪読会]GLIDE: Guided Language to Image Diffusion  for Generation and Editing
[DL輪読会]GLIDE: Guided Language to Image Diffusion for Generation and EditingDeep Learning JP
 
【DL輪読会】Can Neural Network Memorization Be Localized?
【DL輪読会】Can Neural Network Memorization Be Localized?【DL輪読会】Can Neural Network Memorization Be Localized?
【DL輪読会】Can Neural Network Memorization Be Localized?Deep Learning JP
 

La actualidad más candente (20)

[DL輪読会]Vision Transformer with Deformable Attention (Deformable Attention Tra...
[DL輪読会]Vision Transformer with Deformable Attention (Deformable Attention Tra...[DL輪読会]Vision Transformer with Deformable Attention (Deformable Attention Tra...
[DL輪読会]Vision Transformer with Deformable Attention (Deformable Attention Tra...
 
[DL輪読会]Focal Loss for Dense Object Detection
[DL輪読会]Focal Loss for Dense Object Detection[DL輪読会]Focal Loss for Dense Object Detection
[DL輪読会]Focal Loss for Dense Object Detection
 
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
 
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
 
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
 
[DL輪読会]相互情報量最大化による表現学習
[DL輪読会]相互情報量最大化による表現学習[DL輪読会]相互情報量最大化による表現学習
[DL輪読会]相互情報量最大化による表現学習
 
[DL輪読会]A closer look at few shot classification
[DL輪読会]A closer look at few shot classification[DL輪読会]A closer look at few shot classification
[DL輪読会]A closer look at few shot classification
 
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
 
[DL輪読会]ICLR2020の分布外検知速報
[DL輪読会]ICLR2020の分布外検知速報[DL輪読会]ICLR2020の分布外検知速報
[DL輪読会]ICLR2020の分布外検知速報
 
【DL輪読会】時系列予測 Transfomers の精度向上手法
【DL輪読会】時系列予測 Transfomers の精度向上手法【DL輪読会】時系列予測 Transfomers の精度向上手法
【DL輪読会】時系列予測 Transfomers の精度向上手法
 
Transformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法についてTransformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法について
 
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
深層学習の不確実性 - Uncertainty in Deep Neural Networks -深層学習の不確実性 - Uncertainty in Deep Neural Networks -
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
 
Skip Connection まとめ(Neural Network)
Skip Connection まとめ(Neural Network)Skip Connection まとめ(Neural Network)
Skip Connection まとめ(Neural Network)
 
[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...
[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...
[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...
 
深層学習の数理
深層学習の数理深層学習の数理
深層学習の数理
 
モデルアーキテクチャ観点からの高速化2019
モデルアーキテクチャ観点からの高速化2019モデルアーキテクチャ観点からの高速化2019
モデルアーキテクチャ観点からの高速化2019
 
backbone としての timm 入門
backbone としての timm 入門backbone としての timm 入門
backbone としての timm 入門
 
モデルアーキテクチャ観点からのDeep Neural Network高速化
モデルアーキテクチャ観点からのDeep Neural Network高速化モデルアーキテクチャ観点からのDeep Neural Network高速化
モデルアーキテクチャ観点からのDeep Neural Network高速化
 
[DL輪読会]GLIDE: Guided Language to Image Diffusion for Generation and Editing
[DL輪読会]GLIDE: Guided Language to Image Diffusion  for Generation and Editing[DL輪読会]GLIDE: Guided Language to Image Diffusion  for Generation and Editing
[DL輪読会]GLIDE: Guided Language to Image Diffusion for Generation and Editing
 
【DL輪読会】Can Neural Network Memorization Be Localized?
【DL輪読会】Can Neural Network Memorization Be Localized?【DL輪読会】Can Neural Network Memorization Be Localized?
【DL輪読会】Can Neural Network Memorization Be Localized?
 

Similar a Triplet Loss 徹底解説

Triplet Lossによる Person Re-identification
Triplet Lossによる Person Re-identificationTriplet Lossによる Person Re-identification
Triplet Lossによる Person Re-identificationtancoro
 
機械学習 / 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.challenge2016cvpaper. 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 ConvolutionsDeep Learning JP
 

Similar a 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 徹底解説

Notas del editor

  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]の範囲に正規化されるため、損失関数のマージンの値の範囲も決めやすくなる。