$30 off During Our Annual Pro Sale. View Details »

ArcFaceの仕組み

Inoichan
September 06, 2019

 ArcFaceの仕組み

角度を用いた距離学習を説明してます。
基本的な理論の部分はSphereFaceで説明しています。
最終的にArcFaceの仕組みを理解できるようにするのが目標です。

ArcFaceについては優れた紹介記事がすでにありますが、角度による距離学習がどういったものか、marginを与えるとなぜうまくいくのかを基礎から説明しています。少しでも理解のお役に立てますと幸いです!

間違っている部分があったら、教えていただけますと非常に嬉しいですm(_ _)m

Inoichan

September 06, 2019
Tweet

More Decks by Inoichan

Other Decks in Research

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  7. ArcFaceとは...
    内積の公式

    View Slide

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

    View Slide

  9. ・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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  21. ・SphereFace
    通常のSoftmax loss

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    テストデータの特
    徴量ベクトル
    この2つのベクトルがな
    す角がどれくらい小さい
    かを、Cosine類似度で
    求める!

    View Slide

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

    View Slide

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

    View Slide

  31. ・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より大きくならな
    い!!

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  36. Thank you!!!

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide