논문

하루에도 수만개의 글자를 읽고 있습니다. 하루에도 수백장의 종이를 들춰 읽습니다.
이것은 그 읽기에 대한 일기입니다.

BroadFace: Looking at Tens of Thousands of People at One for Face Recognition

Problem

  • 기존의 얼굴 인식 방법들은 학습할 때 상대적으로 많은 수의 idendity를 커버할 수 있도록 학습하면서도, 미니 배치의 크기는 그보다 훨씬 적은 identity를 사용하는 상태다.

    • 적은 미니 배치 크기로 인하여 많은 반복을 필요로 하며, 그럼에도 불구하고 전체 identity를 고려하는것은 어려운 문제이다.
    • 이상적으로는 배치 크기를 늘리는 것은 해결법이나 메모리 제한으로 현실적으로 이 또한 어려움이 있다.

Essense

  • 학습 시에 더 많은 수의 identity를 고려하기 위한 BroadFace를 제안하였다.

    • 이는 이전 반복 단계에서 계산된 embedding vector를 큐에 저장하고 이를 미니 배치에서 함께 사용하여 분류기의 decision boundary의 optimality를 높였다.
    • 파라미터는 계속 업데이트 되기 때문에 이전에 생성된 embedding vector는 현재 생성된 embedding vector와 차이(에러)가 있어 이 에러를 보정하기 위하여 identity-representative vector를 이용하였다.
    • 결과적으로 성능 뿐 아니라 학습 속도 또한 더 빠르게 수렴하였다.

Detail

  • 기존의 얼굴 인식 모델은 크게 embedding vector를 추출하는 encoder와 embedding vector를 identity로 mapping하는 linear classifier로 구성되어있다.

  • 이 때 전체 identity의 수에 비해 적은 수의 미니 배치를 사용하기 때문에 전체 identity의 분포를 모두 반영할 수가 없고, 모델의 업데이트는 배치 내의 identity에 편향되어 학습이 이루어진다.

  • BroadFace가 사용하는 큐는 2가지가 있다.

    • Embedding vector를 저장해둔 와,
    • 그에 해당하는 identity representative vector를 저장해둔 이다.
  • 각 반복마다 모델을 업데이트하고 난뒤, 현재 미니 배치 의 embedding vector 들과 그에 해당하는 identity representative vector 들을 큐에 넣는다.

  • 큐에 들어있는 embedding vector 는 다음 반복에서 모델이 업데이트 되면 파라미터가 바뀌면서 현재 파라미터의 embedding space내에서 conflict가 생기고 이 에러를 로 정의한다.

  • 이 에러는 적은 반복에서는 상대적으로 작지만 반복이 진행될 수록 에러가 누적되어 큰 차이를 가져온다. 따라서 보상 함수 를 이용하여 보상된 embedding vector 를 계산하였다.

  • 보상 함수는 결국 현재 embedding vector들과 과거 embedding vector들의 expectation의 차이로 볼 수 있고, 이는 결국 identity representative vecotr로 근사화할 수 있다.

  • 여기서 로 각 벡터들의 다른 길이를 맞추기 위한 normalization term이다.
  • 따라서 보상된 embedding vector는 아래와 같다.

  • 학습 시 사용되는 로스는 2개로 아래와 같다.

  • 여기서 은 기존 Softmax 기반의 방법에서 사용되는 로스 함수이다.
  • 실제로 구현 시에는 학습의 불안정성을 막기 위해 softmax 기반의 로스로 학습한 뒤, 이를 pre-trained 네트워크에서 학습을 시작하였다.

Add a Comment Trackback