Slide 1

Slide 1 text

ArcFaceの仕組み ~角度による距離学習を理解する~ Inoue Yuichi

Slide 2

Slide 2 text

自己紹介 ● RISTでインターンやらせてもらってます。 ● 京都大学薬学研究科 博士課程1回生 ● 最近コンペに出てます。 Fintech DC 1st, FUJIFILMコンペ 特別賞, AI RUSH 14th, Kaggle GANコンペ 60th (銅メダル) ● Twitter (@inoichan)

Slide 3

Slide 3 text

本日の内容 ● 角度による距離学習を理解する。 ● Angular Marginを理解する。 ● 発表タイトルは「ArcFace」なのですが、 理論部分はほぼ「SphereFace」で説明します。 今日はしないお話 ● どのくらい顔を判断できるか。 (直接, 論文を見てみてくださいm(_ _)m)

Slide 4

Slide 4 text

断りのない限り、図は下記からの引用です。 ArcFace: Additive Angular Margin Loss for Deep Face Recognition

Slide 5

Slide 5 text

ArcFaceとは... ● 距離学習の「角度 Version」 ● 良い感じの「Margin」 ● オープンなデータセットに使える

Slide 6

Slide 6 text

Softmaxの直前の層の捉え方を工夫し、角度でデータ間の類似 度を判定して学習できるようにした。そのときに、同じクラスはより 近く、違うクラスはより遠くなるようにマージンを工夫した。 なぜこれがうまくいくのか??? ArcFaceとは...

Slide 7

Slide 7 text

ArcFaceとは... 内積の公式

Slide 8

Slide 8 text

距離学習(Metrics Learning)とは? データ間の「距離」を測ることで、そのデータ同士が同じか違うか を判断する方法。似ているデータは距離が近いし、違うデータは 距離が遠いと考える。 参考URL copypasteの日記 : Metric Learning 入門

Slide 9

Slide 9 text

・Siamese Net (contrastive loss) - 2種類のInput - 同じラベルの時は近く、 違うラベルの時は遠く学習 - ユークリッド距離 (参考) Siamese Neural Networks for One-shot Image Recognition Dimensionality Reduction by Learning an Invariant Mapping Trains a Siamese MLP on pairs of digits from the MNIST dataset. (引用) A Deep Siamese Neural Network Learns the Human-Perceived Similarity Structure of Facial Expressions Without Explicit Categories

Slide 10

Slide 10 text

・Triplet Network - 3種類のInput - 同じラベルとは近く、違うラベルとは遠くなる ように同時に学習 - ユークリッド距離 良い感じにペア選ぶの難しい! (引用) DEEP METRIC LEARNING USING TRIPLET NETWORK (参考) Deep Metric Learning の定番⁈ Triplet Lossを徹底解説

Slide 11

Slide 11 text

・Center Loss - 2種類のloss - 同じクラスのデータがコンパクトにな るように学習 - ユークリッド距離 (引用) A Discriminative Feature Learning Approach for Deep Face Recognition (参考) Center lossを読んでみた_20170618@abeja

Slide 12

Slide 12 text

・Center Loss - 2種類のloss - 同じクラスのデータがコンパクトにな るように学習 (引用) A Discriminative Feature Learning Approach for Deep Face Recognition (参考) Center lossを読んでみた_20170618@abeja ユークリッド距離で考えるの、本当 に適しているのか?

Slide 13

Slide 13 text

・SphereFace:角度による距離学習 - Softmax Lossによって学習された特徴量は、本質的には角度に よって分布している。 Center Lossのようにユークリッド距離を元に した方法は適さない。 (引用) SphereFace: Deep Hypersphere Embedding for Face Recognition

Slide 14

Slide 14 text

・SphereFace (引用) SphereFace: Deep Hypersphere Embedding for Face Recognition それぞれのクラスの確率 Decision boundary (決定境界) (p1 = p2 となるところ) 決定境界 この決定境界よりも自分のクラスの方に近 づくように学習は進んでいく。

Slide 15

Slide 15 text

・SphereFace (引用) SphereFace: Deep Hypersphere Embedding for Face Recognition このように置くと... θはxとWの間の角度!!!

Slide 16

Slide 16 text

・SphereFace (引用) SphereFace: Deep Hypersphere Embedding for Face Recognition 角度によって決定境界が決まる! θはxとWの間の角度!!!

Slide 17

Slide 17 text

・SphereFace (引用) SphereFace: Deep Hypersphere Embedding for Face Recognition 決定境界はW1とW2の二等分線 角度によって決定境界が決まる!

Slide 18

Slide 18 text

・SphereFace (引用) SphereFace: Deep Hypersphere Embedding for Face Recognition

Slide 19

Slide 19 text

・SphereFace (引用) SphereFace: Deep Hypersphere Embedding for Face Recognition 良い感じにMarginを与える!!!

Slide 20

Slide 20 text

手書き、ご了承ください。

Slide 21

Slide 21 text

・SphereFace 通常のSoftmax loss

Slide 22

Slide 22 text

・SphereFace クラス1の「x」が正しく分類されるために は、決定境界より左側に位置するように学 習がされなければならない。 決定境界

Slide 23

Slide 23 text

・SphereFace 「x」と「W1」の間の角「θ」に1以上のマー ジン「m」を掛ける。すると、「 x」と「W1」の 間の角は本来より大きく見積もられる。

Slide 24

Slide 24 text

・SphereFace 決定境界が本来よりも左側に来る。

Slide 25

Slide 25 text

・SphereFace クラス1の「x」はより「W1」の近くに位置 するように、「W2」からは遠くに位置する ように学習される。

Slide 26

Slide 26 text

・SphereFace (引用) SphereFace: Deep Hypersphere Embedding for Face Recognition その結果、同じクラス内の角度の幅が狭くなり、クラ ス間の角度が大きくなる。

Slide 27

Slide 27 text

・SphereFace (引用) SphereFace: Deep Hypersphere Embedding for Face Recognition

Slide 28

Slide 28 text

・SphereFaceの推論 (引用) SphereFace: Deep Hypersphere Embedding for Face Recognition 推論するときは、各クラスの訓練データから抽出した特徴量ベクトルの重心と、テ ストデータの特徴量ベクトルを Cosine類似度で測る。値が 1に近ければ、そのクラ スとなす角が小さい、すなわち距離が近いということになる。 黄緑クラスの訓練 データから抽出した 特徴量ベクトルの重 心 テストデータの特 徴量ベクトル この2つのベクトルがな す角がどれくらい小さい かを、Cosine類似度で 求める!

Slide 29

Slide 29 text

・SphereFaceのまとめ (引用) SphereFace: Deep Hypersphere Embedding for Face Recognition

Slide 30

Slide 30 text

・CosFace (引用) CosFace: Large Margin Cosine Loss for Deep Face Recognition L2-normalizationすることで、xも Wも同じ超球面上にくる。(2次元 だったら単位円上のベクトルにな る。)

Slide 31

Slide 31 text

・CosFace (引用) CosFace: Large Margin Cosine Loss for Deep Face Recognition s:softmaxの温度パラメータ 本来は少しでも決定境界よ り自分のクラス側にきたら、 cosθ1はcosθ2より大きくな る。 cosθ1からmarginを引くことで (cosθ1 - m)、xはよりW1に近づか ないとcosθ2より大きくならな い!!

Slide 32

Slide 32 text

・ArcFace CosFaceと同じようにxとWをL2-normalizationしている。

Slide 33

Slide 33 text

・ArcFace マージンの捉え方は SphereFaceに近い!定 数を自分のクラスの θに足す。

Slide 34

Slide 34 text

・ArcFace マージンの捉え方は SphereFaceに近い!定 数を自分のクラスの θに足す。

Slide 35

Slide 35 text

まとめ ● CNNなどで特徴抽出してきたベクトルを超球面上の点にス ケールして、角度でクラスを分類するという解釈をした。 ● 学習時に適切なMarginを与えることで、うまく同じクラスの データはより近くなり、異なるクラスのデータはより遠くなるよう に学習することができた。

Slide 36

Slide 36 text

Thank you!!!

Slide 37

Slide 37 text

実装するのに参考にしたもの ● [Keras]MobileNetV2+ArcFaceを使ってペットボトルを分類してみた! ● https://github.com/4uiiurz1/keras-arcface ● 「Human Protein Atlas Image Classification」のbestfittingの1st place solution Appendix

Slide 38

Slide 38 text

ArcFaceのとてもわかりやすいサイト モダンな深層距離学習 (deep metric learning) 手法: SphereFace, CosFace, ArcFace たぶん、このサイトはArcFaceに少しでも興味持った人は一度は見ているはず! Softmaxの温度パラメータについてもわかりやすく説明してくれている!!! Appendix

Slide 39

Slide 39 text

・マージンによる分類のされ方の違い Appendix SphereFaceでは2つのクラスの角度が近い時、うまく距離を開けることができないが、 CosFace, ArcFaceはその場合でもうまく距離を確保することができる。

Slide 40

Slide 40 text

・SphereFace, CosFace, ArcFaceを同時に使う Appendix