You are on page 1of 17

랩미팅 발표자료

Additive Angular Margin Loss(Arcface)


리뷰
목차

0. 논문을 읽으면서 필요한 개념


I. Introduction
II. Arcface Approach
III. Experiments & Abstract
0. 논문을 읽으면서 필요한 개념
Logit

• 분류 문제의 경우, 마지막에 softmax를 취해서 각 클래스에 해당할 확률의 합이 1이 되게끔 처리를 해준다

• softmax를 취해주기 전에 나온 raw prediction value 값을 logit이라 한다


Geodesic distance | 측지선, 지름길
• 공간의 두 점을 잇는 가장 짧은거리
• 유클리드 공간에서는 최단거리로 직선으로 나타나며
• 곡면에서는 곡선으로 나타남
• 그래프 구조에서는 한 꼭짓점과 다른 꼭짓점을 이을 때, 가장 변의 수가 적은 경로
I. Introduction
Introduction
DCNNs(Deep Convolutional Neural Network) 임베딩을 사용한 얼굴 표현은 얼굴 인식을 위한 방법
- DCNNs는 얼굴 이미지를 작은 클래스 내부와 큰 클래스가 거리를 가진 Feature에 맵핑한다

얼굴 인식에서 DCNNs를 훈련시키기 위한 두가지 방법이 있지만, 각각의 단점을 가지고 있다.

1. Softmax 처럼, Train에서 서로 다른 Identities를 분리할 수 있는 다중 클래스 분류기를 훈련시키는 것


- 단점
: class의 크기가 커지는 만큼, 요구하는 연산도 선형적으로 증가한다.
(the size of the linear transformation matrix 𝑊 ∈ ℝ𝑑×𝑛 increase linearly with the identities number 𝑛)
: 학습된 features는 closed set 분류에는 적합하지만, open set 분류에서는 discriminative 하지 못하다.

2. Triplet Loss처럼, 임베딩을 직접 학습하는 것.


- 단점
: 큰 데이터셋을 학습할 때 문제가 발생한다
-> 다양한 조합(데이터 3개를 고르기)을 만들어야 하기 때문에, 많은 iteration이 수행된다
: Semi-hard sample mining은 효율적인 모델 훈련을 하는데 어려움이 있다.

**임베딩 : 고차원 정보를 저차원으로 변환하면서 필요한 정보를 보존하는 것


Figure 1에 대한 설명
W: 임베딩되는 feature의 중심(논문에서 centres라 표현)
x : sample(논문에서 feature/sample이라 표현)

class 1과 2를 묶는 공간을 hypersphere

다중 클래스 분류 문제에서 핵심은


같은 사람의 사진들끼리는 옹기종기 매핑해야하고=inter-class compactness
다른 클래스와 멀게 매핑해야 한다 = intra-class discrepancy

클래스 내 compactness와 클래스 간 discrepancy를 향상하기 위해서,


4종류의 Geodesic Distance constraint (GDis)를 고려한다.

(A) Margin Loss : 샘플과 중심간의 geodesic distance 마진을 추가한다.


(B) Intra-Loss : 샘플과 대응하는 중심간의 거리를 감소시킨다
(C) Inter-Loss: 다른 중심(w1,w2)간의 거리를 증가시킨다.
Figure 1. (D) Triplet loss: sample간에 geodesic distance 마진을 추가함.
ArcFace : Additive Angular Margin Loss
ArcFace : Additive Angular Margin Loss 의 제시
: 기존의 방법보다 각 클래스의 차별성 정보를 더 잘 부여할 수 있으며, 학습에 안정적인 loss functio이다.

1. 두 데이터 간의 각도(angular) 정보 넣기
: 두 feature를 dot product를 한 뒤(cosine similar), 이를 arc cosine 함수를 통해서 데이터 간의 각도 정보를 유도
2. Angular margin 추가
: 얻은 각도에 angular margin을 추가하고, cosine 함수를 통해서 목표 logit을 추출
3. Resclae 및 softmax 적용
: 모든 로짓을 고정된 feature norm 에 따라 re-scale 하고, 그 로짓을 기반으로 softmax loss 를 수행

ArcFace의 장점
1. Engaging : 정규화된 하이퍼파라미터에서 각도와 호 사이의 정확한 일치성을 통해 geodesic distance margin을 직접 최적화한다.
2. Effective : 대규모 이미지와 비디오 dataset을 포함한 10개의 얼굴인식 benchmark 에서 SOTA 성능을 나타낸다.
3. Easy : 구현하기 쉬우며, Sphereface 연구들과 다르게, 안정적인 성능을 가지기 위해 다른 손실함수와 결합하여 사용할 필요가 없다.
4. Efficient : 계산 복잡도가 무시할 정도이다.
II. Proposed Approach
Proposed Approach
Softmax Loss
: 가장 널리 사용되는 분류 손실 함수

𝑁 𝑊𝑦𝑇𝑖 𝑥𝑖 +𝑏𝑦𝑖
1 𝑒
𝐿1 = − ෍ log
𝑁 𝑛 𝑊𝑗𝑇 𝑥𝑖 +𝑏𝑗
𝑖=1 σ𝑗=1 𝑒

- Feature embedding이 클래스 내에 sample들이 높은 유사성을 가지도록, 다양성을 가지도록 최적화 되어있지 않다.
- 따라서, 이미지의 차이가 큰 상황(연령, 포즈의 다양성)이나, 대규모 테스트 시나리오가 존재하는 상황에서 성능의 차이를 보인다.

수식 변형
1) bias = 0
단점을 보완하기 위한 수식 변형 2) 𝑊𝑗𝑇 𝑥𝑖 = 𝑊𝑗 𝑥𝑖 𝑐𝑜𝑠 𝜃𝑗
3) 𝑊𝑗 = 1
4) 𝑥𝑖 → 𝑠 (re-scale)
Proposed Approach
변형된 수식
𝑁
1 𝑒 𝑠 cos 𝜃𝑦𝑖
𝐿2 = − ෍ log 𝑠 cos 𝜃
𝑁 𝑒 𝑦𝑖
+ σ 𝑛
𝑗=1,𝑗≠𝑦 𝑒 𝑠 cos 𝜃𝑗
𝑖=1 𝑖

수식 의미
1) 𝜃 ∶ angle between the feature and the weight
2) 𝑠 : with a radius of s, embedding features are distributed on a hypersphere.

Additive Angular Margin!


최종 수식 (ArcFace loss)
𝑁 margin penalty: m을 더함으로써,
1 𝑒 𝑠(cos(𝜃𝑦𝑖 +𝑚)) 클래스 간의 밀집도와 다른 클래스 간의
𝐿3 = − ෍ log 𝑠 (cos(𝜃 +𝑚))
𝑁 𝑒 𝑦𝑖
+ σ 𝑛
𝑒 𝑠 cos 𝜃𝑗 차별성을 극대화 하는 방향으로 진행한다.
𝑖=1 𝑗=1,𝑗≠𝑦𝑖
Proposed Approach
3) arccos을 거치고, 6) softmax function을 거치고
두 feature간의 각도 𝜃𝑦 구함 cross entropy loss에 기여
𝑖

4) 𝜃에 margin 추가
cos 취함
1) x, W 정규화 5) s를 곱함
2) 두 feature의 dot product를 한 뒤,
cosine 유사도 cos 𝜃𝑗 (Logit)을 구함
Proposed Approach
Comparison with SphereFace and CosFace

Intra-class compactness 를 극대화 하기 위해 기존의 방법과 위 논문의 방법은 아래와 같다.

- SphereFace : angular margin(m)을 곱한다 → cos 𝑚𝜃


- CosFace : cosine margin(m)을 더한다 → cos 𝜃 + 𝑚
- ArcFace : angular margin(m)을 더한다. → cos 𝜃 + 𝑚

이를 수치적으로 비교해 봤을 때 별다른 차이는 없다.

그렇다면 왜 ArcFace를 사용하는가? 기하학적으로, ArcFace의 결정 경계선은 선형성을 띄는 장점을 갖기 때문


비선형성을 띄면 학습을 할 때, 학습에 어려움이 있고 기하학적 해석이 힘들다.
III. Experiments & Abstract
Experiment

Toy example / 8 classes를 Softmax와 ArcFace의 비교


• Dots indicate samples
• Lines refer to the centre direction of each identity
• 결론
• Softmax는 클래스 간 구분이 분명하지 않은 반면
• ArcFace는 클래스 간 구분이 분명하고 + 클래스 내 compactness가 확실함
Abstract
• ArcFace는 Softmax 함수를 대체하기 위한 새로운 Loss Function.
• Euclidean 방식의 Loss를 Angular 기반의 Loss로 변경 (Angular Loss, CosFace,… 등 많은 연구가 진행)
• 그 중 ArcFace는 Angular Margin Loss를 더한다!

• Angular margin을 더하는 이유 →

You might also like