unnjena
궁금한이야기J
unnjena
전체 방문자
오늘
어제
  • 분류 전체보기 (28)
    • Graduate M.S. (0)
      • Paper Review (0)
      • Project Related (0)
    • Undergraduate (14)
      • ML & DL (9)
      • Otherwise (1)
      • Programming (4)
    • etc. (9)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 서비스기획
  • 지나영교수님
  • 인공지능입문
  • Upstage
  • 취준일기
  • AI교육
  • Jump_into_the_AI_World
  • 세바시
  • 인생질문
  • network #delay #loss #throughput #컴퓨터네트워크
  • 카공
  • 취준생
  • 컴퓨터네트워크 #Traceroute
  • 업스테이지
  • 컴퓨터네트워크 #인터넷
  • PM
  • Coding
  • Python
  • Annotation #tool
  • network #edge #컴퓨터네트워크
  • #computer_network #컴퓨터네트워크
  • Deepfake
  • AI_Production_Lifecycle
  • TEST

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
unnjena

궁금한이야기J

[Face Recognition] 얼굴 인식 출입, 어떻게 하는걸까?
Undergraduate/ML & DL

[Face Recognition] 얼굴 인식 출입, 어떻게 하는걸까?

2020. 5. 20. 11:20

Siamese Network

  • 두 사람이 같은 사람인지 알기 위해 두 개 사진의 '거리(distance)'를 계산함
  • 사람인지 알기 위해 함수 d를 계산하는 인코딩을 구하는 것
  • 신경망은 128차원의 인코딩 f(x)를 반환함

 

샴신경망의 기본 아이디어

Triplet loss

  • 항상 하나의 앵커 이미지를 살펴본 다음 같은 사람인 것을 뜻하는 긍정 이미지와 앵커 이미지 사이의 거리를 구하고, 반대의 경우(다른 사람의 사진과의) 거리를 구함
  • 항상 3개의 (Anchor, Positive, Negative) 이미지를 보기 때문에 'Triple loss'인 것 
    • ||f(A)-f(P)||^2 ≤ ||f(A)-f(N)||^2 (|| || <- norm)
    • ||f(A)-f(P)||^2 - ||f(A)-f(N)||^2 ≤ 0 (우변항 이항)
    • 이 때 사실 f가 항상 0을 return하면 조건이 만족돼버림(그러나 그렇지는 않음)
    • 또 다른 만족 조건은 모든 사진의 인코딩이 같을 경우..(문제가 됨)
  • 따라서 α(마진)를 넣어 목적식을 약간 수정함
  • ||f(A)-f(P)||^2 - ||f(A)-f(N)||^2 + α ≤ 0 
    • 마진이 생겼기 때문에 d(A,P)는 더 작아지고, d(A,N)는 더 커지는 쪽으로 학습됨

Loss Function

  • Given 3 images
  • L(A,P,N) = max(||f(A)-f(P)||^2 - ||f(A)-f(N)||^2 + α ,0)
  • max의 효과로 0보다 작은 손실이 없게 됨(신경망 자체도 Loss가 '얼마나 음수'인지 신경쓰지 않게 됨)
  • J = ∑ L(A,P,N) (모든 i에 대하여)

Dataset

  • 성공적인 학습을 위해 (A,P) 페어의 데이터가 많이 필요하다(같은 사람에 대한 많은 이미지의 데이터셋)
  • 예시는 1,000명의 사람에 대한 만 개의 이미지로 학습함(한 사람당 평균 10장)
  • train set에서 무작위로 A, P, N을 뽑을 경우의 문제점
    •  (A,N)이 (A,P)보다 훨씬 다양한 것임
    • 너무도 쉽게(보통의 경우 얼굴이 꽤 다르니까) 조건이 만족되는 문제(||f(A)-f(N)||^2 + α ≤ ||f(A)-f(P)||^2)
    • 따라서 좋은 학습을 위해서는 학습하기 어려운 train set을 구성해야함(d(A,N)가 꽤 가까운(닮은?))
    • 관련 논문(참고)

Face Verification

  • 두개 사진의 인코딩을 로지스틱 유닛에 넣고 판단(이진 분류 문제로 정의)
  • 로지스틱 유닛 : 같은 사람은 1, 다른 사람은 0으로 return

precompute

  • 미리 임베딩을 계산해 둬서 계산량을 줄이는 테크닉

아래 영상 내용을 요약한 포스팅입니다.

https://www.youtube.com/watch?v=-FfMVnwXrZ0

 

'Undergraduate > ML & DL' 카테고리의 다른 글

[Research] 문헌조사① : Face Mask Detection  (0) 2020.09.19
[winSCP] 서버 사용 시 유용한 프로그램  (0) 2020.05.20
[PyTorch tutorial] 컴퓨터 비전(Vision)을 위한 전이학습(Transfer Learning)  (0) 2020.05.14
[GPU] 다수의 GPU 중 원하는 GPU 타겟팅하기  (0) 2020.05.13
[PyTorch tutorial] PyTorch에서 GPU 활용하기  (0) 2020.05.12
    'Undergraduate/ML & DL' 카테고리의 다른 글
    • [Research] 문헌조사① : Face Mask Detection
    • [winSCP] 서버 사용 시 유용한 프로그램
    • [PyTorch tutorial] 컴퓨터 비전(Vision)을 위한 전이학습(Transfer Learning)
    • [GPU] 다수의 GPU 중 원하는 GPU 타겟팅하기
    unnjena
    unnjena
    모든 궁금증과 그 해답을 담는 공간 Github : https://github.com/JaeheeRyu

    티스토리툴바