DCNNs Recognition/ softmax with ArcFace

kiteday·2024년 2월 6일

baseline

목록 보기
5/7

예전에 공부해두었던 것을 블로그로 포스팅

Deep Convolution Neural Network Recognition

softmax처럼 값을 class별로 분류할 때, 크게 4개의 거리를 고민해야 한다.

들어가기 전에 geodesic distance란..?

쉽게 말해 구의 표면(구면)을 공간으로 하는 두 점을 잇는 최단 경로

한글로 된 설명은 여기를 참조하시라.

  1. Margin-Loss

class center와 class 내 샘플 간의 geodesic distance margin을 insert

  1. Intra-Loss

class center와 class 내 샘플 간의 geodesic distance를 decrease

  1. Inter-Loss

다른 centers 사이의 geodesic distance를 increase

  1. Triplet-Loss

triplet sample 사이에 geodesic margin 삽입

  • triplet network에 대한 자세한 설명은 여기를 참고하세요

    • 대상이 되는 값 Anchor를 기준으로 positive와 negative 결정
    • positive 데이터는 가깝게 negative 데이터는 멀리 배치

Softmax

softmax는 explicit하지 않아서 intra-class appearance variations와 test-scenario 간의 gap 有

inter-class sample의 다양성과 intra-class sample의 유사도를 높이기 위한 식 변경이 필요함

bias bj=0b_j =0 (SphereFace 논문에 따라서)로 하고

dot product에 의해 WjTxi=WjxjcosθjW^T_j x_i = \lVert W_j \rVert \lVert x_j \rVert cos \theta_j 로 바꿀 수 있음

L2 norm에서는 Wj=1\lVert W_j \rVert =1이고 xi\lVert x_i \rVert는 radius ss로 변경 가능

L=1Ni=1Nlogescosθyiescosθyi+j=1,jyinescosθjL = - {1 \over N} \sum_{i=1}^N \log {e^{s \cos \theta_{y_i}} \over e^{s \cos \theta_{y_i}} + \sum_{j=1, j \ne y_i}^n e^{s \cos \theta_{j}} }

이 식에 margin을 붙일 수 있다. 이게 바로 마진이 붙은 softmax 식!

L=1Ni=1Nloges(cos(θyi+m))es(cos(θyi+m))+j=1,jyinescosθjL = - {1 \over N} \sum_{i=1}^N \log {e^{s (\cos (\theta_{y_i}+m))} \over e^{s (\cos (\theta_{y_i}+m))} + \sum_{j=1, j \ne y_i}^n e^{s \cos \theta_{j}} }

마진을 어떻게 주냐 따라 좋게 작용한다.

마진은 이런 것

레퍼런스

논문

블로그

profile
공부

0개의 댓글