개요

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

 

 

 

뇌출혈 

-질환명 : [한글명] 뇌출혈, 뇌내출혈 [영문명] Cerebral hemorrhage, Intracerebral hemorrhage (ICH)

 

-정의 

~뇌출혈(뇌내출혈)이란 뇌조직 안의 혈관이 터져서 직접적인 뇌 손상이 생긴 것으로, 크게 자발성으로 생긴 경우와 외상에 의해 생긴 경우로 분류되며, 이 중 자발성 뇌출혈(뇌내출혈)만 출혈성 뇌졸중이라 지칭.

 cf)뇌졸중(stroke)(증상),뇌혈관 질환(cerebrovascular accident)(질병) = 뇌경색(cerebral infarction) + 뇌출혈(cerebral         hemorrhage)

-원인

 -심부 : 주로 고혈압이 원인, 작은혈관 대부분

 -표재부 : 나이에 따라 아밀로이드성 혈관병증, 동정맥기형, 해면혈관증, 동정맥루, 대뇌정맥혈전증, 혈관염등 다른 혈관이상 동반 가능성 높음.뇌동맥류가 뇌조직 안으로만 터진경우나, 뇌경색이 뇌출혈로 번진경우,모야모야병에 의한 출혈 등도 있을 수 있으며 이 외에도 항응고제나 항혈소판제 같은 약물복용, 혈소판감소증, 혈액응고계통의 이상 등과 같은 전신적 요인들도 동반될 수 있음.

-증상

 -뇌경색 뇌출혈 모두 뇌졸중으로 나타날 수 있는 증상들(팔다리 마비, 감각이상, 언어장애, 시야장애, 의식변화)과 동일.

 -따라서 CT나 MRI없이는 뇌경색 뇌출혈 구분이 어려움.

 -뇌출혈은 뇌경색과 달리 뇌안에 공간차지, 머리압력상승으로 두통과 구토증상 동반, 경련발작을 일으킴. 특히 뇌출혈은 수시간내에 늘어나는 경우가 많아 마비,언어장애 같은 증상들이 수시간 내에 급격히 악화됨.

-진단/검사

 -CT(뇌 컴퓨터 단층촬영, computed Tomography): 뇌출혈 여부, 위치, 크기 를 확인.

 -CTA(CT혈관조영술): 원인 의심 혈관조사.

 -MRI: 출혈원인 조사, 치료후 손상부위 확인, 예후 판정.

 -TFCA(뇌혈관조영술) : 대퇴동맥에 관삽입, 뇌혈관 검사

-경과/합병증

 ~출혈양이 많고 의식상태가 나쁠수록, 뇌실내출혈동반 경우 예후 불량

 - 전체사망률 40-50%

 - 출혈양 60cc 이상시 90%

 - 생존자의 경우에도 혼수, 반신마비, 언어장애의 후유증이 심함. 20-30% 정도만 독립생활 가능. 

출처 : www.samsunghospital.com/home/healthInfo/content/contenView.do?CONT_SRC_ID=09a4727a8000f1ed&CONT_SRC=CMS&CONT_ID=1425&CONT_CLS_CD=001020001001#:~:text=%EB%87%8C%EC%B6%9C%ED%98%88(%EB%87%8C%EB%82%B4%EC%B6%9C%ED%98%88)%EC%9D%B4%EB%9E%80%20%EB%87%8C,%EC%B6%9C%ED%98%88%EC%84%B1%20%EB%87%8C%EC%A1%B8%EC%A4%91%EC%9D%B4%EB%9D%BC%20%EC%A7%80%EC%B9%AD%ED%95%A9%EB%8B%88%EB%8B%A4.

 

뇌출혈

뇌출혈이란 두개 내에 출혈이 원인이 되어 생기는 모든 변화를 말합니다.

www.samsunghospital.com

 

-종류별 특징(출혈 위치에 따른 분류)

 -분류를 위한 개요

가장 바깥쪽=경막, 중간=지주막(거미줄같이 생겼다하여), 가장 안쪽 =연뇌막 

 

 -경막외 출혈(Epidural hemorrhage, EDH )

 

~뼈와 경막 사이 발생, CT에서 양쪽이 볼록한, 럭비공 모양으로 보임.

  -원인 : 대부분 외상, 동맥손상에 의해 발생.

  -증상 : 즉각적 의식 소실 후, 회복되면 의식청명기(lucid, period, 일정 시간동안 의식이 있는시기)가 있은 뒤, 급격한               의식변화.

  -발생 연령 : 주로 젊은 연령.

  -수술적 치료 필요.

 

-경막하 출혈(Subdural hemorrhage, SDH)

~경막과 지주막 사이 발생, CT에서 오목한 낫 모양.

  -원인 : 대부분 외상, 정맥손상에 의해 발생.

  -증상 : 동맥보다 압력이 낮아 경막외출혈보다 출혈양이 늘어나는 속도가 느려 증상이 더 늦게 발생. 점진적 의식변화,             소실. 

  -발생 연령 : 노인과 알코올 중독자같이 뇌의 위축이 심해 경막하 공간이 넓은 환자에게 발생 확률높음

  -수술적 치료 필요x 

 

 

 -지주막하 출혈(Subarachnoid hemorrhage, SAH)

 

~지주막과 연뇌막 사이에 발생, CT에서 별모양으로 관찰.

  -원인 : 외상환자에서 뇌출혈중 가장 흔함. 외상없이도 발생 하는경우도 있음.

  -두통 ->신경학적 증상 ->의식소실, 혼수

 -뇌내 출혈(IPH)

 

  ~연뇌막 안의 뇌 실질에 발생, CT에서 둥글둥글하게 보임.

   -원인 : 외상, 고혈압, 당뇨, 음주, 폐경

   -증상 : 두통, 뇌기능 상실

   -양적을경우 혈압조절, 후유증이 남기때문에 장기적 재활치료 필요, 수술필요.

 -뇌실내 출혈(IVH)

  ~뇌척수액(cerebrospinal fluid)이 흐르는 뇌실(cerebral ventricle)의 출혈, CT에서 검은공간에 존재.

   -단독 발생, 지주막하 출혈, 뇌내출혈과 동반되어 발생.

   - 뇌압을 크게 상승시킬 수 있어 뇌압과 혈압조절 필수, 양이 많을시 수술적 치료 필요.

 

출처 : naman-bora.tistory.com/entry/%EB%87%8C%EC%B6%9C%ED%98%88-%EC%A2%85%EB%A5%98-%EB%B0%8F-%ED%8A%B9%EC%A7%95-Brain-hemorrhage

 

뇌출혈 - 종류 및 특징 [Brain hemorrhage]

안녕하세요, 응급의학과 전문의 오기입니다. 지난 포스팅에서는 머리 속의 폭탄이라고 할 수 있는 뇌 동맥류 그리고 자발성 지주막하 출혈에 대하여 다루어 보았습니다. (자세한 사항은 아래 링

naman-bora.tistory.com


++++  21/06/11추가 +++++

위 조사 내용을 토대로 참가한

'신경계질환 빅데이터를 활용한 인공지능 아이디어 경진대회' (서울성모병원 겨자씨키움센터 주관)

중 '두부 영상 기반 뇌출혈 진단 인공지능 모델 개발 및 활용' 부문에서 최우수상 수상하였습니다.

 

'인공지능 > 기타' 카테고리의 다른 글

FAR/FRR, False Positive/False Negative정리  (2) 2021.01.06

Face Recognition 카테코리 이전 게시글들 에서 정리했듯이,

다음과 같은 트렌드를 보인다.

 

1. metric-learning problem

기존 classification 에 사용되는 soft max로는 학습한 이후에 새롭게 추가, 축소 되는 클래스가 있을경우 사용하기 어렵다.  즉, Open-set에서 적용하기 위해서는 모든 데이터에 대해 generalize 해야하므로 metric-learning problem쪽으로 발전하게된다. ( Contrastive Loss, 2005 ,  Triplet Loss(아이디어 2014, Face Verification Task 적용 2015))

 

2. Soft max의 변형

1의 방법은 학습시 sample pair를 뽑아야 하므로 기존 Classification이 time complexity가 O(n)(n=#data)일때 Contrastive Loss는 O(n^2), triplet Los는 O(n^3)이 되므로 학습하는데 너무 오래걸리고 그렇다고 몇개만 랜덤으로 sampling 하자니 performance에 영향을 끼치게 된다.

그래서 기존 Softmax에 class간 compact를 줄 수있는 방법을 연구하게된다.

(Center Loss[2]: Soft max loss에 intra class loss를 class center 기준으로 추가,

 L2-SoftMax[4],, 2016 : feature를 normalization  

 NormFace[3], 2017 : training phase에서도 normalization사용, 두 가지 Loss의 변화 제시

1) Softmax 변경 : Normalize 이후 학습이 잘안되는 현상 해결위해 Scale parameter 추가   

2) Metric learning 개념 추가 : weight, feature 둘다 normalize 하고 식을 변형시키다 보니 softmax를 feature 와 class간의 normalized euclidean distance를 바탕으로 optimization 하는것으로 생각가능.

->       triplet loss와 Contrastive loss의 개념을 적용시킨 Classfication Loss 제안)

 

3. Softmax + Margin

이후 NormFace의 2)발견으로 softmax 에서 class 대표 weight과 feature 간의 distance 측정법을 euclidean distance 말고 cosine similarity등 다른 distance로 대체 + margin으로 weight간의 discriminative 성능 향상(feature간의 구별성능도 따라서 향상) 

sphere face(Angular Softmax), cosface, arcface, Large-margin Softmax, additive softmax 등이 있는데 다들 직관과 방향이 비슷하므로 식과 decision boundary figure로 정리하겠다. 구체적으로 정리된 내용을 찾는다면 [1], [5]를 참조

Margined softmax 를 일반화 한 식. m1,m2,m3를 조정시 다른종류의 loss 구현가능.

 

위 식에서 m1,m2,m3에 따른 logit graph. m1,m2,m3변수로 다른 Loss들을 generalize.

 

각 Loss에 따른 Decision Boudnary
각 Loss 별 Decision boundary figure

 

4.Mining

~특정 샘플(어려운샘플) 에 대해 집중해 fully exploit.

-OHEM : 실제로 어려움을 측정하는 metric(ex. Cross Entropy 등)을 가지고 정렬 후 미니 배치 구성

-Adaptive Sample Mining : 배치구성시 sample probablity를 가지고 샘플 뽑음. Training에서 틀릴 시 SP 높이고 맞출시 SP 낮춤.[6]

-Focal loss : Cross Entropy식중 로그 안에있는 p(y)부분을 importance로 여겨 weight 줌.

 

5.Mining + Margin

-MV-Softmax : 기본 True class에 대한 margin 말고도 Negative class에 대해서 weight을 주었고, cos(theta)를 어려움 측정 지표로 잡아 loss로 Mining구현.[7]

 

6. Learning Strategy

-Curricular Face : 학습 stage에 따라 softmax loss 식에서 Negatvie class에 대한 weight를 stage 마다, 어려운정도(cos (theta))에 따라 줌. 즉, 원래 Curriculum  Learning은 Data Set을 분리하여 구현했지만 본 논문은 Loss로 Adaptive Curriculum Learning 구현.  [8]

-AdaCos : Hyperparameter인 m(margin)과 s(scale)설정에 따라 Performance가 차이가 나고  m같은경우 심하면 수렴발산에까지 영향을 준다. 따라서 hyperparameter설정을 실험해보고 높은 acc를 찾는것이 아니라 gradient stduy를 통해 학습이 잘되는 parameter를 찾아 설정해준다. 나아가 학습하는 도중에 optimal한 m과 s의 값이 바뀌므로 fixed m,s가 아닌 adaptive m,s까지 고안(logit의 median과 average값 사용)

 

출처

[1] J.Deng, "ArcFace : Additive Angular Margin Loss for Deep Face Recognition", 2019,CVPR

[2] Yandong Wen, et al. , "A Discriminative Feature Learning Approach for Deep Face Recognition",(a.k.a. Center Loss) 2016, ECCV

[3] F. Wang, "Norm Face: Hypersphere Embedding for Face verification.",  2017, ACM MM

[4] R. Ranjan , "L2-constrained Softmax Loss for Discriminative Face Verification", 2017

[5] M.Wang, "Deep Face Recognition: A survey", 2020

[6] Hao Liu, Xiangyu Zhu, Zhen Lei, Stan Z. Li; Adaptive Face: Adaptive Margin and Sampling for Face Recognition(CVPR), 2019, pp. 11947-11956

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

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

L2 Softmax(2016,ECCV)

개요

Facerecognition 성능향상 방법중 Loss function 이용, 그 중에 classification loss 에 대한 내용이다.

이름에서 보다시피 원래 Classifciation에 사용되는 Softmax에 discriminative를 위해 무언가 추가한 형태같다.

 

설명

Face Recognition 에서 사용되는 Softmax에는 장단점이 있다.

장점

1. 여러 class를 손쉽게 구별

2. 이전에 살펴본 Contrastive loss나 Triplet Loss와 다르게  batch selection에 대한 제한이 없다.

  -> 위 두개 Loss는 일일이, 또는 batch 내에서 sampling을 해줘야 했고, 이는 성능에 영향을 주었다.

3. 구현이 쉽다.

 

단점

1. Class가 많으면 memory가 부족하다.

2. training 과정에서 잘나온 이미지(high quality, 구별이 쉬운)에는 잘 적용되나, 어려운 이미지는 무시하게 된다.

 

해결방법

첫번째 단점은 dataset을 sample 해서 사용하게 되면 해결할 수 있고, 두번째를 해결하기 위해 L2 Softmax가 제안된다.

-> 2번에대한 negative effect에 대해 bound constraint을 주면, 즉  어려운 sample에 대해 좀더 attention을 주면 해결되지 않을까? ->  model에 L2 normalization layer를 넣어 layer를 scailing 하자.

 

L2-Softmax Loss

논문에 나와있는 식, 출처 참조

 위식을 보면 기본 softmax에 feature의 L2-norm을 alpha로 제한하는 'subject to' 부분 (constraint)만 생성됐다. 

저자는 center loss같이 추가적인 loss를 넣기 싫어 single sequential network를 제안해 softmax에서 간단히 바꿀 수 있도록 했다.

 

L2norm의 효능

모든것은 'bad(hard)' sample에 집중하기 위함이다.  그러려면 good 이던 bad feature던 같은 hypershpere위에 올라가 비슷한 attention을 받으면 될것이다 라는 생각. (최근 트랜드인 논문들(SV-Softmax, Curricular Face)이랑 비슷하면서 완전히 다른 결론 도출함)

Softmax vs L2 Softmax feature 분리
추가된 Layer 설명. normalize하고 alpha로 scaling

 

lfw에 대한 결과

Norm Face( 2017,ACM MM)

 

개요

Facerecognition 성능향상 방법중 Loss function 이용, 그 중에 classification loss 에 대한 내용이다.

Deep Face(cvpr,2014)에서 Normalization은 testing phase에서만 사용, training에서 사용 x but normalization이 성능에 critical한것을 보고 training 과정에서도 normalization을 사용하자는 내용.

설명 

Normalization 사용해야 하는 이유, Noramlize layer 설명

Euclidean distance의 단점예시 : 왼쪽사진에서 Euclidean distance를 사용하게되면 f1,f2는 가깝지만, f2,f3는 멀게된다. 하지만 실제 분류해야되는 Task에서는 f2,f3가 같은 class에 속한다.

softmax를 하게되면 위 figure2와 같이 'radia' feature distribution을 띄게된다. 왜냐하면 말그대로 soft version of max operator 이기때문에 manitude를 scaling 하는것은 class 선정에 영향을 미치지 않는다.

 

soft max 식은 다음과 같고 그에따른 class 분류식은 다음과 같다.

이때 bias가 없다 가정하면 다음 전제가 참이된다. bias가 있게되면 figure3 처럼 radial로만 분리가 불가하다

즉 soft max에서 확률값을 구하고 가장 높은 클래스를 뽑게되는데, 이때 feature의 크기에 따라 확률값이 달라지게된다. 따라서 softmax로 학습하게 되면 잘 구분되는 feature들은 큰 magnitude를 갖게 되는데 사실상 figure 2 에서 보듯이 어차피 'radial' 로 클래스를 분리하므로 이런 성질이 필요 없게된다. 원작자는 이런 현상을 없애기 위해 feature normalization을 제안한다. 

gradient를 통한 weight 학습 과정

위 사진에서는 feature의 embedding 이후 layer인 softmax에서 학습과정을 담고 있는데, feature를 normalizing 했으므로 hyper sphere(현재는 figure로 나타내기 위해 3차원) 의 표면에 존재하고 확대해보면 검은색 점(weight)의 학습시 다른 모든 feature의 loss들의 gradient를 합산한곳으로 weight를 움직인다. 검은색점은 빨간색 class에 해당하는 weight이므로 loss의 gradient를 상징하는 vector들은 hypersphere의 tangential 한 vector로 나타난다. 특히, 빨간색 점들에는 가까이 가려는 vector들로, 초록색, 주황색은 멀어지려는 vector들로 나타나는데 이 모든 vector들을 합하여 움직인다.

원문의 식과 설명은 다음과 같다.

Softmax Loss 바꾸기

training 에서 normalization 할 경우 학습이 잘 안되는 현상 발생. 기존 inner product로 logit을  사용 할 때에는 f와 w의 크기에 따라 범위가 (-20,20) , (-80,80)등으로 넓을 수 있으나 normalization 이후에는 logit의 범위가 [-1,1]로 줄어들어

아무리 잘 분리 되더라도 위식의 확률값이 1에 가까워지기 힘들게된다. 실제로 최대값은 W*f 값이 1일때 즉

=0.45가 최대값이 된다. 즉, 아래 전제와 같이 softmax 에 의한 loss의 lower bound가 생기게 되고 최대 학습 성능이 낮아진다.

위 문제를 해결하기 위해 본 논문에선 W*f를 s를 곱하여 scailing 해서 range를 늘려주었다. 바뀐 식은 아래와 같다.

Metric Learning 바꾸기

metric learning은 딱히 normalization을 했다고 학습에서 어려움이 생기진 않는다. 다만  n이 sample 개수라고 할때 classification의 학습 combination 경우의 수 O(n)과 다르게 O(n^2), triplet loss같은경우 pair를 뽑는데 O(n^3)의 

complexity를 갖게 된다. 따라서 모든 sample에 대해 pair를 뽑기는 어렵고, 보통 hard mining 알고리즘을 통해 학습에 도움이 되는 sample들을 뽑는다.(최근트랜드). 하지만 본 논문에선 hard mining이 tricky, timeconsuming 하므로  O(n)을 유지하도록 metric learning을 수정하여 classifcation task를 수행하도록 했다.

 

아래 두식은 Metric learning의 대표적인 contrastive loss와 triplet loss의 식

contrastive loss, m=margin

 

triplet loss, m=margin

normalizing 한 softmax 식은아래와 같다. 

because 

식을보면 기존 softmax식에서 weight와 feature 사이의 L2 loss를 사용하는것처럼 보이므로, 기존 contrastive loss, triplet loss와 비슷하게 만들 수 있다.

(원문에서는 비교를 위해 classification version of the contrastive loss/triplet loss

-> C-contrastive loss, C-triplet loss 라 표현한다.)

 

Left : Contrastive loss, Right : 변형된 contrastive loss
Left : Original triplet loss, Right: 변형된 triplet Loss

여기서 weight은 기존 Classification Task에서 Softmax가 사용되는 위치의 weight로 feature map(dimension = d ) 과 class 간의 맵핑을 하는 (d,n)  크기의 matrix를 말한다. 

이렇게되면 기존 Softmax에서 사용되는 weight과 shape이 같으나 사용되는 의미에서는 softmax와 조금 다르게된다.

즉, Weight의 i-th columm은 i-th class를 대표하게 되는 vector를 의미하게 되므로, 식을 해석해보면

원래 contrastive loss, triplet loss에서 feature map끼리 비교하던것(left : (fi-fj)^2)을  feature mpa과 각 class를 대표하는 vector와 비교해서 가깝게, 또는 멀게 위치하도록 학습하게 된다((fi-Wj)^2).

 

1. 이때 학습하는 주체가 Softmax 자체일경우 Weight을 학습하면서 업데이트하므로 Weight vector의 위치를 feature map(위 그림에서 hyper sphere의 표면에 있는 점들)을 보고 바꾸게 되는것이고.

2. 학습하는 주체가 backbone network 일경우 feature map을 hyper sphere 상에서 어디에 위치 시킬지를 학습하게 된다.

 

현재 ArcFace나 CosFace처럼 margin 기반의 face recogntion 논문에서는 위 1번을 head/metric 이라고 부르고 있으며 2번을 backbone/network 라고 부르고 있다.

 

모델 수정에 대한 직관

Wj는 j-th class에 속한 feature들의 요약본(원문에서는 summarizer/ guide agent) 역활을 하므로 만약 margin에 의해 잘 분리되었으면 Wj는 각 class의 feature들의 means와 대략 비슷할 것이다. 하지만 더 복잡한 task 에서 초기에는 class가 다른 feautre들이 over lap 될 가능성이 있다.

이렇게되면 Wj들은 서로의 boundaries로부터 멀리 떨어질것이고, feature들도 Wj를 따라 서로 다른 클래스끼리 떨어도록 학습할 것이다. 

또한 어려운 example(margin에 있는 feature)들 같운경우에는 gradient가 더 클것이므로 학습시 업데이트 되는 양이 커서 더 많이 움직일 것이다.

 

하지만 기존 metric learning에서 사용하던 margin을 똑같이 사용하게되면 margninal feature(어려운 sample)들은 optimize 되지 않으므로 더 큰 margin을 적용 시켜야한다. 간단히 말하자면 feature간의 차이보다 feature와 weight간의 차이가 더 클것이므로 margin을 늘려줘야 한다는얘기. 원문 전제는 다음과 같다.

 

실제로 실험적으로 feature, weight 차이로 구하는 distortion bound가 0.5~0.6에 위치하게 되는데, 원작자는 Contrastive 는 1, triplet loss는 0.8을 추천한다.

 

+ normailization을 하면서 scale의 크기가 고정되므로 모델에 맞는 적합한 margin 찾는것이 쉬워졌다.

 

Training

Proposed loss function은 feature layer 바로 뒤에 적용 되었다. Norm face의 이름답게 feature와 weight matrix의 column들은 L2-norm=1이 되도록 normalize 하고 w의 각 colum(agent)와 featrue를 inner product 하던지 Euclidean Distance 를 구해 Loss 를 구한후 Optimization 시킨다. (위쪽에서 언급한 C-contrastive loss or C-triplet loss)

 

결론

기존에 test 에만 적용되던 L2 Normalization을 training에도 적용시킴. normalization이 필요한 이유를 수치적으로, geolmetric관점 둘다 직관적으로 설명하였으며, 두가지 Loss function을 제안.

하나는 Softmax loss에서 normalization 할경우 학습에 제한이 생기는것을 막기위해 추가한 scale term, s.

다른 하나는  metric learning 기반으로 agent를 guide 삼아 softmax를 구현한 C-triplet, C-contrastive loss이다. 두번째는 특히 기존 metric learning에서 discriminative한 성능을 가지는 hard sample mining의 장점은 살리되 time-consuming 한 단점을 획기적으로 줄이는 방법이다. 이후에 이 논문의 두번째 방법을 바탕으로 변형을 거친 논문들(margin based Loss)이 많이 나오게 되고 SOTA를 계속 갱신하게 되는데, 이는 다음글에서 서술 하겠다.

 

출처

:[1] R. Ranjan , "L2-constrained Softmax Loss for Discriminative Face Verification", 2017

[2] L2 softmax 설명 블로그

[3] F. Wang, Norm Face: Hypersphere Embedding for Face verification., ACM MM, 2017.

 

arxiv.org/abs/1703.09507

 

L2-constrained Softmax Loss for Discriminative Face Verification

In recent years, the performance of face verification systems has significantly improved using deep convolutional neural networks (DCNNs). A typical pipeline for face verification includes training a deep network for subject classification with softmax los

arxiv.org

medium.com/syncedreview/l2-constrained-softmax-loss-for-discriminative-face-verification-7cee8e6e9f8f

 

L2-constrained Softmax Loss for Discriminative Face Verification

Introduction

medium.com

arxiv.org/abs/1704.06369

 

NormFace: L2 Hypersphere Embedding for Face Verification

Thanks to the recent developments of Convolutional Neural Networks, the performance of face verification methods has increased rapidly. In a typical face verification method, feature normalization is a critical step for boosting performance. This motivates

arxiv.org

slideplayer.com/slide/14707829/

 

NormFace: - ppt download

Motivation DeepFace: Closing the Gap to Human-Level Performance in Face Verification, Taigman et. al. , CVPR 2014 𝐿 2 normalization is applied only on the testing phase.

slideplayer.com

 

+ Recent posts