시작하기 앞서

 

[Paper Review] MV-Softmax (SV-Softmax, SV-X-Softmax) 정리

개요 2019년 작성, 2020AAAI 발표한 논문으로 Face Recognition 성능향상 논문 트렌드중 Margin based Softmax loss (Arc, Sphere, AM, etc.) 과 Mining based Softmax loss(Focal loss, OHEM etc.) 를 한 Loss에..

mic97.tistory.com

본 게시물은 위 MV-Softmax 게시글을 읽고 Margin, Mining softmax loss 에 대한 이해가 된 상태라 가정하고 설명 하겠습니다. 안 읽으신 분들은 위 글부터 읽고 오시길 바랍니다.

 

 

개요

2020년 작성, 2020CVPR 발표논문으로 Face Recognition 성능향상 논문 트렌드 중

Margin based Softmax loss + Mining based Softmax loss + Learning Strategy를 한 Loss 에 합친 형태.

 

 

동기

'Margin based method는 학습과정 중 모든 Negative class에 대해 같은 wieght를 적용시킴으로써 각 sample의 어려움에서 오는 정보를 활용하지 못하고 있고,

Mining based method는 hard sample을 early training stage에서 너무 많이 강조함으로써 모델이 converge하는것을 방해하고 있다.

따라서 학습 과정에 따라 manually tunning이 필요 없는 adaptive weight을 결정하는 Loss를 만들어 Adaptive curriculum learning 을 구현하겠다.' 라는게 저자의 생각  

 

 

알고리즘

MV Softmax를 충분히 이해하고 왔으면 위 알고리즘 을 보고 MV논문과의 다른점은 else절에 Negative cosine similarity에 곱해진 값이 변경된것 말고는 다른게 없다는 것을 알것이다. 자세한 차이점은 아래식을 보면 알 수 있다.

MV-Softmax
Curriculum Learning loss

실제로 위 식을 제외하곤 나머지는 매우 유사하다.

Training data set을 학습 과정중 기준두개(1.True or Negative Class vector,  2.Negative중 hard sample 인지)

를 이용하여 총 세가지로 분류한 후, 각자 다른 loss로 최종 softmax 형태로 합쳐진다.

 

 

세가지 데이터는 아래와 같다.

1)True Class -> Margin softmax사용 cos(theta+M)

True->알고리즘 중 end 아랫 줄 

2) Negative Class 이면서 Hard -> t가 들어간 식 사용

Negative&Hard -> 알고리즘 중 else 아랫 줄

3) Negative Class 이면서 Not hard -> 기존 cos (theta)

위 세가지 데이터 분류에대한 각 loss들이 아래식에 합쳐진다.

 

 

그렇다면 MV-Softmax(MV)와 달라진 t는 어떻게 Curriculum Learning(CL)을 구현 할까?

우선 MV, CL 둘다 식에 t가 들어가지만, MV의 t는 1.2처럼 고정된 값이다. 반대로,  CL의 t는 sample의 어려운정도(cos(theta))와 Learning stage의 영향을 받는 변하는 값이다. 자세한 건 아래 단락을 보자. 

 

 

Curriculum Learning 을 구현 하는 t

왼쪽 : t value 오른쪽: Negative Cosine similarity(t에대한 함수)

위 사진을 보면 Arc Face는 Negative class에 대해 가중치를 두지 않기때문에 1로 고정되어 있고,

MV-Arc-Softmax는 가중치를 두기대문에 t의 값이 1.2로 고정되어 있는 반면, 

CL(위 사진에서 Ours)는 t값이 Learning stage, Hardness(theta)값에 따라 달라지는것을 볼 수 있다.

 

위 figure에서 plot되고 있는 정확한 식은 다음과 같다.

1)CL 

0<t<1  

2)MV-Arc-Softmax

t=1.2

3.ArcFace

t=1

 

 

다시 CL의 t로 돌아와서,

위 식의 의해 0에서1로 변하는 t

k번째 t는 위 식과 같이 결정되는데, 저자가 설명하길 위 식을 쓴 이유는

실험적으로  positive cosine similarity들의 평균값이 t로 사용되기 좋다는것을 알았지만, mini-batch마다 average 하는것은 너무 noisy 하고 unstable 하므로  Exponetial Moving Average(EMA)를 사용하였 다고 한다.

 

따라서 위 식에서   alpha는 momentum으로 0.99로 설정하고, t(0)=0, r=average of cosine similarity 를 의미한다.

처음에 t(0)는 0에서 시작하여 r값을 따라 가게 되는데 r값을 파혜쳐보면,

학습 초반엔 잘 못맞출 것이므로 theta~=phi/2(잘 못 맞춤) 일 것이고 cos(theta)~=0이므로 0에 가까울 것이다.

하지만 학습이 계속 진행되면  theta~=0(잘 맞춤) 일 것이고, cos(theta)~=1 일 것이므로 학습이 진행될 수록 1에 가까워 질 것이다.

즉 t는 학습 초기 0에서 학습이 진행 될 수록 1에 가까워지며, t 값이 커질 수록 Hard sample의 loss의 가중치가 커지면서 자연적으로 Hard Sample을 강조하게 된다.

실제 학습이 진행될때 t의 값의 변화는 다음과 같다.

위 figure에서 M은 학습의 가능성을 보기위해 Loss를 미분한 식의 일부를 나타내고 식은 다음과 같다.

초록색이 위아래로 흔들리는것은 iteration 뿐만 아니라 samlple의 hardness(theta)값에 따라서도 변동이 있다는것을 보여준다.

 

 

Decision Boundary 비교

True Loss = Negative Loss를 했을때의 theta 조건 -> Decision Boundary

보라색 선이 early stage에서는 softmax(파란선) 보다 쉽게, Later Stage에 갈수록 Arc Face(분홍선)보다 어렵게 가고 있는것을 볼 수 있다. 즉 학습단계에 따라 Margin이 어려워지는 효과를 보여준다.

 

 

Ablation study

1. fixed t vs Adaptive t

t의 값을 fixed 시킨것보다 Adaptive 하게 결정되는 본 논문의 t가 verification performance가 더좋다.

 

2. t 설정하는 Statistic 에 따른 영향

본 논문은 t를 r=mean of positive cos(theta)의 EMA로 나타냈는데, 다른걸 쓰면 어떨가에 대한 고찰로

mode는 most frequent value를 의미하고

p는 본논문 loss 식에서 log 안에 들어가는 값으로 다음 식과 같다. p 또한 0,1사이의 값이다

 

3. Training Convergence

본 논문은 Large margin을 할수록 convergence를 보장하기 힘들다고 주장한다. (의미적으로 당연 한게 모든 sample들에 margin을 줘야하는데 margin이 클수록 학습이 힘들거나 margin을 가지면서 구별하는게 불가능 할 수 있다.) 특히 큰 margin이면서 MobileFaceNet같은작은 backbone Network 에서 Diverge할 가능성이 크다고 한다. 위 figure에서 보이듯이

1. m을 높이면 converge가 힘들어짐

2. 자신들의 모델이 convergence에 이점이 있음 이는 CL의 이점을 살린 것으로 생각됨.

3. 성능이 같은 조건일때 기존 보다 좋음

을 주장 하고 있다.   

 

 

출처

Yuge Huang, Yuhan Wang, Ying Tai. Curricular Face : Adaptive Curriculum Learning Loss for Deep Face Recognition, 2020 CVPR

arxiv.org/pdf/2004.00288.pdf

 

개요

2019년 작성, 2020AAAI 발표한 논문으로 Face Recognition 성능향상 논문 트렌드중

Margin based Softmax loss (Arc, Sphere, AM, etc.)  과

Mining based Softmax loss(Focal loss, OHEM etc.)

를 한 Loss에 합친 형태를 가지는 최초의 논문이다. (논문 주장).

 

SV-X-Softmax와 MV-Softmax의 차이

읽어 보았을때, SV-Softmax(2018) 논문은 MV-Softmax(2019)논문의 arxiv preprint 버전으로 다른점은 다음 네가지정도 로 보이고 intuition과 사용된 equation 은 같으므로 다음 단락부터는 SV-Softmax에 대해서만 설명하겠다. (정확히는 SV-Softmax 논문중 margin 을 첨가한 SV-X-Softmax 와 MV-Softmax의 차이.)

 

1. h(indicator function)에 fixed 버전을 넣은 실험진행.

SV-Softmax :  h에 adaptive version (cos(theta)가 다른 정도에 따라 weight 조정)이 기본.

MV-Softmax : h의 adaptive version + h fixed version( hard sample 로 분류되면 얼마나 어려운지 ( cos(theta)값이 얼마인지 상관없이) 같은 weight 적용)과 비교하는 실험 추가.

 

2. Training data set의 차이.

MS1M-vlc : Trillion-pairs consortium(deepglint2018)에서 MS1M의 noisy 한 데이터를 cleaning한 버전.

                (3,923,399 imgs /86,876 ids)

MS1M-vlc-R : MS1M-vlc 에서 Test data set(LFW,CALFW,CPLFW,AgeDB,CFP,RFW, MegaFace)와 overlap되는 id 제거버전, 겹치는 id list는 github 에 제공.

                  (3,280,000 imgs/ 72690)

(github.com/xiaoboCASIA/SV-X-Softmax/blob/master/deepglint_unoverlap_list.txt)       

MS1M  ->  MS1M-vlc   ->  MS1M-vlc-R

               (SV-Softmax)    (MV-Softmax)

3. Test data set의 차이

SV-Softmax : Mega Face ,Trillion Pairs(gallery = subset of Flickr photos, Probe set= Facescrub)

MV-Softmax : Verification(LFW, CALFW, CPLFW, CFP, RFW), Identification(MegaFace, Trillion-Pairs)

 

4.Indicator function 내 t 범위 차이.

SV-Softmax

 

MV-Softmax

위부터 각각 t=1,t=0일때 기존 softmax.

 

Motivation

Face Recognition 분야 는 크게 두가지 mining based(Focal loss, OHEM etc.)와 margin based(Arc, Sphere, AM, etc.)로 발전하였는데 각자의 단점이 있다.

Mining based loss는 

1. hard example의 정의가 애매.

2. loss나 model complexity로 hardness를 empirically 측정해야한다.

 

Margin based loss 는

1.GT class vector 와 비교에서만 discriminatve feature를 배운다(self-motivation=GT class). 다른 class vector와의 비교(other-motivation=Non-GT class = Negative Cosine Similarity)로 얻는 discriminative power를 얻을 수 없다.

2. class마다 fixed된 weight을 사용한다.(MV-Softmax추가)

 

-> 두 가지 방법의 장점을 하나로 integrate 하는 loss function 제안 ->MV-Sofmax

 

MV-Softmax-Loss

~아이디어의 flow대로 식을 정렬하자면.

1.Softmax Loss

 

2. Mining based Softmax Loss

Py, probability는 softmax layer를 지난 output을 의미하며, g function을 통해서 sample mining효과 구현.

ex1) OHEM : g(Py)=0 for easy sample, g(Py)=1 for hard sample.

ex2)Focal loss: g(Py)=(1-Py)^gamma

Focal loss

 

3. Margin based Softmax Loss

~f function을 통해 margin을 구현.

ex)

A-Softmax :x와 weight의 norm을 1로 만들면서 내적을 cos 으로 바꿈. 

 

AM softmax : cos자체 값에 마진

 

 

Arc Softmax : theta자체 값에 마진.

 

Combined version.

 

4.Naive Mining-Margin Softmax Loss

~Naive하게 Mining과 margin을 합친버젼. 이렇게 구현할시 Margin based와 Mining based의 각각의 단점이 여전히 남아있다.

단점

1. GT와의 마진만 고려(Non-GT고려 x)

2. Hard sample 정의에 대한 애매함.

 

5. SV-SoftMax Loss

 

where,

 

~Binary mask function, I() 와 Indicator function, h()를 Softmax에 추가함으로써 Naive Mining-Margin Softmax loss의 단점 해결. 

 

Intuition

1.Binary mask function, I에 대한 고찰.

cos(wy,x)=정답 클래스와의 각도.

cos(wk,x)=정답이 아닌 클래스와의 각도. ( when k!=y).

즉, cos은 phi 까지 감소함수 이므로,

cos(wy,x)>cos(wk,x)인 상황   

= 샘플과 정답간의 각도가 샘플과 오답간의 각도보다 작은 상황

= 샘플이 오답보다 정답에 가까운상황 

-> 잘 분류하고 있으므로 loss에 weight 높이지 않음 -> 기존 cos 사용.

 

반대로,

cos(wy,x)<cos(wk,x)인 상황 

= 샘플과 정답간의 각도가 샘플과 오답간의 각도보다 큰 상황

= 샘플이 정답보다 오답에 가까운상황 

-> 잘못 분류하고있으므로 어려운 sample이라 인지, loss에 weight 높임 -> 기존cos에 h 곱함.

 

2.Mining based Loss (Focal Loss) 와 SV-Softmax의 차이점

mining based loss 의 목적

~기존 Mining based loss와 SV Softmax 둘다 loss를 고쳐서 위 식의 관계를 만들어 Easy sample 대비 Hard sample의 loss를 늘리려 한건 같으나. 위 관계를 구현하기 위해 취한 방법이 다르다. 아래 사진을 보자

 

 

~SV-Softmax(왼쪽)은 전체 Loss식(Cross Entropy, 위 figure에서는 -log(Py) 에서 probability 값을 조정함으로써 loss를 높였고, Focal Loss-Softmax(오른쪽)은 probability는 그대로 두고 Loss식 자체를 바꿈으로써 Hard sample의 loss 비중을 높였다.

 

3. Margin Based Loss 와 SV-Softmax의 차이점

기존 Margin based Softmax

 

SV-Softmax

 

~위 식을 보면서 명심해야할것은 theta 1은 ground truth class 이고, thetat 2는 non ground truth class이다.

또한, 기존 Margin based Softmax 의 f, margin function은 theta1에 대한 함수이고(self-motivated), SV-Softmax식에서 h, indator function은 theta2에 대한 함수이다. 등호가 어디 있는지는 그렇게 중요하지 않지만, 집중하는 weight vector에 따라 서술한것으로 추정된다(GT,Non-GT).

 

다 정리해서 한문장으로 설명하면  Margin based Softmax는 정답에 가깝게 학습, SV-Softmax는 오답에 멀게끔 학습 으로 이해하면 편하다.(실제로 최종 loss를 보고 loss를 줄이는 방법으로 파라미터를 따라가다보면 그렇다. 이에 대한 설명은 4번 단락에서 그림과 함께 설명하겠다.)

 

4.총모델에서 직관이 사용되는 위치 (+ Margin only,Mining only와의 비교)

 

~SV softmax는 위 그림에서 빨간 박스에 해당하는데, 해당위치에서 loss를 바꿈으로써 원래 Margin-based(파랑), Mining-based(보라)가 하는 역할을 one framework로 합쳤다. 

구체적으로 파랑과의 비교를 보면, 우선 많은 cos(theta)중 바뀌는 부분에 차이가있는데, 파랑은 GT class의 값을 바꾸고 빨강은(Non-GT class의 값을 바꾼다). 이때 모든 Non-GT class의 값을 바꾸지 않는것은, Loss 식에서 Binary mask에 의해, 모델이 정답이 아닌 클래스 더라도 Support Vector(Hard Sample)로 분류될만큼 오답에 가깝게 분류하지 않았기 ㄸ매문이다.(k!=y 이나, I=0인경우. 즉, cos(wy,x)>cos(wk,x)인 상황)

 

보라와의 비교를 보면, 빨강은 Loss 식 안의 probability라고 명시되는 Logit의 Softmax를 거친후의 output을 바꾸는 반면, 보라는 마지막단에서 계산되는 Loss 자체를 바꾼다. 

 

5.SV-X-Softmax(MV-Softmax)

지금까지 위에서 설명한 SV-Softmax에 margin function, f를 추가한 Loss. 

 

즉, 원래 SV-Softmax에서 오답에 집중(loss 식에서 sigma 부분) 함으로써 Mining based와 Margin based를 구현했다면,마진, f function을 추가함으로써 정답에 가까워 지게끔 하는 효과 구현.

i.e. 정답 class에는 가깝게 오답 class에는 멀게끔을 한 loss 에 구현.

이 loss가 MV-Softmax논문의 loss로 사용된다.

 

6.Optimization

SGD를 위해서 직접 partial derivative를 구해봤는데, 기존 softmax에서 x-term(weight에 대한 미분시), w-term(x에대한 미분시)가 생기는것을 제외하고는 똑같다. -> 학습 가능하다.

 

최종 알고리즘

 

본 Loss는 CNN 통해 나오는 feature map을 다시 head(softmax부분)를 거쳐서 학습하므로.

위 알고리즘 식에서 Theta는 CNN 안에 weight를 의미하고

W는 head부분의 weight을 의미한다.

 

 

 

 

논문 출처:

1. Xiabo Wang et al. Mis-classified Vector Guided Softmax Loss for Face Recognition(MV-Softmax), 2020 AAAI

arxiv.org/pdf/1912.00833.pdf

2. Xiabo Wang et al. Support Vector Guided Softmax  Loss for Face Recognition(SV-Softmax), 2018, arxiv preprint

arxiv.org/abs/1812.11317

 

Support Vector Guided Softmax Loss for Face Recognition

Face recognition has witnessed significant progresses due to the advances of deep convolutional neural networks (CNNs), the central challenge of which, is feature discrimination. To address it, one group tries to exploit mining-based strategies (\textit{e.

arxiv.org

 

 

 

+ Recent posts