ML/머신러닝

FaceNet: A Unified Embedding for Face Recognition and Clustering 논문 리뷰

KAU 2020. 4. 25. 13:16

Youcanseethatathresholdof1.1wouldclassifyevery pair correctly.
facenet.pdf
4.56MB

 

Background

K-NN 분류

k-Nearest Neighber / k-최근접 이웃 알고리즘

 

지도학습 중 분류 문제에 사용하는 알고리즘이다.

분류 문제란 새로운 데이터가 들어왔을 때 기존 데이터의 그룹 중 어떤 그룹에 속하는지를 분류하는 문제를 말한다.

k-NN은 새로 들어온 "★은 ■ 그룹의 데이터와 가장 가까우니 ★은 ■ 그룹이다." 라고 분류하는 알고리즘이다.

여기서 k의 역할은 몇 번째로 가까운 데이터까지 살펴볼 것인가를 정한 숫자이다.

Embedding 임베딩

 

  1. 추천 시스템이나 군집 분석에 활용할 수 있다. embedding vector space 상에서 가까운 데이터들은 비슷한 특성을 공유하고 있다.

  2. supervised 머신러닝의 input 데이터로 사용할 수 있다.

  3. 범주간의 관계를 시각화하기 위해 활용할 수 있다.

    learned embeddings를 t-SNE를 활용해 나타낼 수 있다.

    t-SNE는 데이터를 시각화에 많이 쓰이는 방법으로, 고차원 데이터를 차원축소하는 방법 중 하나이다.

    실제 Rossman Sales Prediction경진대회에서 이 방법을 사용해 독일의 도시들을 embedding하여 시각화한 사례가 있다. 그림을 보면 알겠지만, 실제 독일 지도에 적힌 도시들의 위치와 t-SNE로 표시한 도시들의 위치가 매우 비슷한 것을 볼 수 있다. 이처럼 t-SNE는 시각화에 매우 강력한 툴이 될 수 있다.

 

클러스터링(군집화)

클러스터링(군집화)은 개체들이 주어졌을 때, 개체들을 몇 개의 클러스터(부분 그룹)으로 나누는 과정을 의미합니다. 이렇게 개체들을 그룹으로 나누는 과정을 통해서, 클러스터 내부 멤버들 사이는 서로 가깝거나 비슷하게, 서로 다른 두 클러스터 사이의 멤버 간에는 서로 멀거나 비슷하지 않게 하는 것이 클러스터링의 목표입니다.

클러스터링의 예시

 

mini batch란 무엇인가? 



 전체 학습 데이터를 배치 사이즈로 등분하여(나눠) 각 배치 셋을 순차적으로 수행하는 것을 말한다, 
미니배치는 무작위로 추출하는 것으로 표본을 무작위로 샘플링하는 것과 개념적으로 유사하다.
배치보다 빠르고 sgd보다 낮은 오차율 을 보인다.

(MIni batch의 사이즈가 전체 훈련데이터 사이즈와 같으면 batch gradient descent라고 한다.
  MIni batch의 사이즈가 1이면 stochatstic Gradinet Descent라고 한다.)

그렇다면 미니배치를 쓰는 이유는 무엇일까?
데이터를 한개 쓰면 빠르지만 너무 헤매고, 전체를 쓰면 정확하지만 너무 느립니다. 
즉 적당히 빠르고 적당히 정확한 길을 찾기 위해 mini-batch를 사용합니다.

1.Introduction

기법의 핵심은 larning a Euclidean embedding per image using a deep convolutional network. 

faces of the same person have small distances and faces of distinct people have large distances.

 

이러한 임베딩이 생성되면, 앞서 말한 작업이 간단 해진다 :

얼굴 검증은 단순히 두 임베딩 사이의 거리를 임계(thresholding) 값으로하는 것;

인식은 k-NN 분류 문제가된다; k- 평균 또는 응집 클러스터링과 같은

상용 기술을 사용하여 클러스터링을 달성 할 수있다.

 

기존 분류 문제의 단점 

간접성과 효율성에 있다. bottleneck을 사용했을 때

 bottleneck representation generalizes well to new faces; and by using a bottleneck layer the representation size per face is usually very large (1000s of dimensions).

 

 FaceNet directly trains itsoutputtobeacompact128

Dembeddingusingatripletbased loss function based on LMNN [19].

 

Our triplets consist of two matching face thumbnails and a non-matching face thumbnail and the loss aims to separate the positive pair from the negative by a distance margin.

 

we present a novel online negative exemplar mining strategy which ensures consistently increasing difficulty of triplets as the network trains. 

 

2.Related Work

Our approach is a purely data driven method which learns its representation directly from the pixels of the face.

we use a large dataset of labelled faces to attain the appropriate invariancestopose,illumination,andothervariationalconditions.

 

1. CNN

consists of multiple interleaved layers of convolutions, non-linear activations, local response normalizations, and max pooling layers. 

2. CNN(inception)

networks use mixed layers that run several different convolutional and pooling layers.

We have found that these models can reduce the numberofparametersbyupto20timesandhavethepotentialtoreducethenumberofFLOPSrequiredforcomparable performance. 

 

플롭스(FLOPS, FLoating point Operations Per Second)는 컴퓨터의 성능을 수치로 나타낼 때 주로 사용되는 단위이다. 초당 부동소수점 연산이라는 의미로 컴퓨터가 1초동안 수행할 수 있는 부동소수점 연산의 횟수를 기준으로 삼는다.

 

There is a vast corpus of face verification and recognition
works. Reviewing it is out of the scope of this paper so we
will only briefly discuss the most relevant recent work.
The works of [15, 17, 23] all employ a complex system
of multiple stages, that combines the output of a deep convolutional
network with PCA for dimensionality reduction
and an SVM for classification.
Zhenyao et al. [23] employ a deep network to “warp”
faces into a canonical frontal view and then learn CNN that
classifies each face as belonging to a known identity. For
face verification, PCA on the network output in conjunction
with an ensemble of SVMs is used.
Taigman et al. [17] propose a multi-stage approach that
aligns faces to a general 3D shape model. A multi-class network
is trained to perform the face recognition task on over
four thousand identities. The authors also experimented
with a so called Siamese network where they directly optimize
the L1-distance between two face features. Their best
performance on LFW (97.35%) stems from an ensemble of
three networks using different alignments and color channels.
The predicted distances (non-linear SVM predictions
based on the χ
2 kernel) of those networks are combined using
a non-linear SVM.
Sun et al. [14, 15] propose a compact and therefore relatively
cheap to compute network. They use an ensemble
of 25 of these network, each operating on a different face
patch. For their final performance on LFW (99.47% [15])
the authors combine 50 responses (regular and flipped).
Both PCA and a Joint Bayesian model [2] that effectively
correspond to a linear transform in the embedding space are
employed. Their method does not require explicit 2D/3D
alignment. The networks are trained by using a combination
of classification and verification loss. The verification
loss is similar to the triplet loss we employ [12, 19], in that it
minimizes the L2-distance between faces of the same identity
and enforces a margin between the distance of faces of
different identities. The main difference is that only pairs of
images are compared, whereas the triplet loss encourages a
relative distance constraint.

 

Figure 2. Model structure. Our network consists of a batch input layer and a deep CNN followed by L2 normalization, which results in the face embedding. This is followed by the triplet loss during training.
Figure3.TheTripletLossminimizesthedistancebetweenananchor and a positive, both of which have the same identity, and maximizes the distance between the anchor and a negative of a different identity.

L1-distance between two face features

L2-distance between faces of the same identity and enforces a margin between the distance of faces of differentidentities. 

 

3. Method 

3.1.TripletLoss 

3.2.TripletSelection 

최대한 먼 거리에 있는 Positive를 고르고, 최대한 가까운 거리에 있는 negative를 골라야 한다.

 

mini batch 안에서 hard point를 찾도록 하는 방법을 제시한다. 이 때, hard positive를 뽑는 것보다 모든 anchor-positive쌍을 학습에 사용하며, hard negative를 뽑을 때는 다음과 같은 식을 만족하는 x중에 뽑는 것이 좋은 성능을 보였다고 한다.

Generate triplets offline every n steps, using the most recent network checkpoint and computing the argmin and argmax on a subset of the data. 

• Generate triplets online. This can be done by selecting the hard positive/negative exemplars from within a mini-batch.

 

Here, we focus on the online generation and use large mini-batches in the order of a few thousand exemplars and only compute the argmin and argmax withina mini-batch

 

mini batch 요건

minimal number of exemplars of any one identity is present in each
mini-batch

 

Additionally, randomly sampled negative faces are added to each mini-batch. 

 

 

We also explored the offline generation of triplets in conjunction
with the online generation and it may allow the use
of smaller batch sizes, but the experiments were inconclusive.

 

offline generation 또한 연구해보았고 이것은 더 작은 batch size를 사용하게 했습니다.

training에서 hardest negative를 고르는 것은 bad local minima에 도달하게 하였고

특히 붕괴된 모델을 야기시켰습니다.(f(x)=0) 이 문제를 완화시키기 위해서는 다음과 같은 식을 사용하는

x를 고르는 것이 도움이 될 것입니다.

Learning the Harmonic Embedding. In order to learn a harmonic embedding, we generate triplets that mix the v1 embeddings with the v2 embeddings that are being trained. The semihard negatives are selected from the whole set of both v1 and v2 embeddings.
우리는 이 negative exemplar를 semi-hard라고 부를 것입니다(anchor와 positive exemplar사이의 거리보다 더 멀지만 거리가 여전히 ahchor-positive distance와 가깝기 때문에 여전히 hard하다).

Instead of picking the hardest positive, we use all anchor positive pairs in a mini-batch while still selecting the hard negatives.

 

hard negative는 고르는것은 맞지만

우리는 hardest positive를 고르는 것 대신 mini-batch내의 모든 anchor-positive쌍을 골라 사용한다.

우리는 mini-batch내의 hard anchor-positive쌍과 모든 anchor-positive쌍을 비교하지 않고

all anchor-positive방법이 실제로 더 안정적이고 약간 더 빠르게 수렴한다는 것을 알았습니다

 

 

3.3.DeepConvolutionalNetworks 

We used two types of architectures and explore their trade-offs in more detail in the experimental section.
SGD를 이용한 CNN을 훈련시켰다. 대부분의 실험에서 learning rate는 0.05였고 모델을 마무리짓기 위해 더 낮추기도 하였습니다. 모델은 처음에 랜덤으로 초기화되었으며 cpu cluster에서 1000~2000시간 정도 훈련하였습니다. loss의 감소는 500시간이후부터 급격하게 줄어들었지만 추가적인 훈련은 성능을 올리기 위해 여전히 중요했고 margin α는 0.2로 정했습니다.

 

4. Datasets and Evaluation

We evaluate our method on four datasets and with the exception
of Labelled Faces in the Wild and YouTube Faces
we evaluate our method on the face verification task.

 

TA(d) = {(i, j) ∈ P same, with D(xi , xj ) ≤ d} 

FA(d) = {(i, j) ∈ P    diff, with D(xi , xj ) ≤ d}

 

Validation rate

 

VAL(d) = |TA(d)|/|Psame|

FAR(d) = |FA(d)|/|Pdiff|

Figure 4. FLOPS vs. Accuracy trade-off. Shown is the trade-off between FLOPS and accuracy for a wide range of different model sizes and architectures. Highlighted are the four models that we focus on in our experiments.

6. Summary

We provide a method to directly learn an embedding into
an Euclidean space for face verification. This sets it apart
from other methods [15, 17] who use the CNN bottleneck
layer, or require additional post-processing such as concate-

nation of multiple models and PCA, as well as SVM classification.
Our end-to-end training both simplifies the setup
and shows that directly optimizing a loss relevant to the task
at hand improves performance.
Another strength of our model is that it only requires
minimal alignment (tight crop around the face area). [17],
for example, performs a complex 3D alignment. We also
experimented with a similarity transform alignment and notice
that this can actually improve performance slightly. It
is not clear if it is worth the extra complexity.
Future work will focus on better understanding of the
error cases, further improving the model, and also reducing
model size and reducing CPU requirements. We will
also look into ways of improving the currently extremely
long training times, e.g. variations of our curriculum learning
with smaller batch sizes and offline as well as online
positive and negative mining.