Deeper Learning

One Shot Learning 본문

AI/Deep Learning

One Shot Learning

Dlaiml 2020. 11. 27. 21:21

Face Regonition의 문제점

1. 각 label(사람)에 대한 많은 data(사진) 부족

2. 기존 softmax와 일직선형 Network 구조를 사용할 경우 정확도가 낮다

3. 새로운 label이 추가될 시 처음부터 training이 필요

 

=> 두 이미지의 distance를 측정하도록 학습된 Network를 사용

 

$d(\alpha ,\beta ) \leq \tau $     -> 같은 이미지로 판별

 

Siamese Network

구조가 같은 2개의 Network를 형성하여 last layer의 output을 비교

Ex) A(64x64x3) -> NN -> 128d output = f(A) , B(64x64x3) -> NN -> 128d output = f(B)

같은 네트워크를 통해 임베딩 하는 개념 

 

$d(\alpha ,\beta )=\left \| f(\alpha )-f(\beta) \right \|_{2}^{2}$

 

$\alpha$와 $\beta$가 같은 label(동일인물)일 경우 $d(\alpha ,\beta )$의 값이 감소, 반대의 경우 증가 

 

Triplet loss

 

3개의 image (Anchor, Positive, Negative)를 사용

(P)Positive는 (A)Anchor와 같은 label, (N)Negative는 다른 label값을 가지고 있다.

 

A와 P사이 거리가 A와 N사이 거리보다 작거나 같게 만드는 것이 목표

위 식의 경우 d(A,P) = 0 , d(A, N) = 0 이라는 trivial solution이 존재한다. 

network의 학습이 trivial solution에 갇혀 학습이 이루어지지 않는 것을 방지하기 위해 margin $\alpha$를 추가한다.

$\alpha$의 값이 클수록 같은 label로 판별하는 threshold, 이전의 예시에서 $\tau$값이 작아져 더욱 strict한 모델로의 학습이 이루어진다. 

Loss function은 위와 같아 d(A,P)+margin의 값이 d(A,N)보다 같거나 작을 경우 loss가 0으로 측정되며 그 외에는 d(A,P) + margin의 값이 d(A,N)을 초과한 만큼이 loss에 더해진다.

 

Triplet Loss측정을 위한 train set의 선정은 무작위로 이루어질 경우 학습이 잘 이루어지지 않는다.

A와 P는 같은 사람의 얼굴일 경우 d(A,P) + margin은 쉽게 d(A,N)보다 작거나 같아지도록 학습하는 것은 매우 쉽기 때문이다. 

따라서 A,P,N은 판별이 어려운 분포가 비슷한 데이터로 선정이 되었을 경우 학습이 용이해진다.

 

Siamese Network to Binary Classification

위에서 임베딩이 완료된 128d의 다른 두 사진에 대한 두 output을 이용하여 Binary Classification 형태로 전환이 가능하다.

 

두 output의 manhattan distance를 다음 Layer의 input으로 사용한다. 

Variation으로 manhattan distance를 변경 가능하다 (DeepFace)

새로운 label이 추가 될 경우 임베딩 네트워크를 freezing 시킨 후 새로운 input의 임베딩 된 결과(128d)와 저장된 각 A, B의 128차원의 output을 비교하여 학습이 가능하다.

 

 

 

[참고] Taigman.et.al.DeepFace: Closing the Gap to Human-Level Performance in Face Verification

 

'AI > Deep Learning' 카테고리의 다른 글

Gated Recurrent Units (GRU)  (0) 2020.12.03
Language Model  (0) 2020.12.01
Recurrent Neural Network  (0) 2020.12.01
Fréchet inception distance (FID)  (0) 2020.11.30
Neural Style Transfer  (0) 2020.11.28
Comments