[Google_Bootcamp_Day21]

Updated:

Face recognition

  • Face verification (1:1 problem)
    • Input image, name / ID
    • Output whether the input image is that of the claimed person
  • Face recognition (1:K problem)
    • Has a database of K persons
    • Get an input image
    • Output ID if the image is any of the K persons (or “not recognized”)

Design high performance face verification model, then use it to face recognition!

Problem of face recognition (one-shot learning)

  • Most face recognition applications need to be able to recognize a person given just one single image, or given just one example of that person’s face.
  • Deep learning algorithms don’t work well if you have only one training example. (if you have such a small training set it is really not enough to train a robust neural network for this task)

Solution of one-shot learning

  • Learning a “similarity” function
  • d(img1, img2) = degree of difference between images
  • If d(img1, img2) <= a(hyperparameter) -> “same” person (verification)
    d(img1, img2) > a(hyperparameter) -> “different” person (verification)
  • In face recognition problem, compare all pairs of d(img1, img2) then output the most high probability label.

How to learn “similarity” function

siamese

Triplet loss

triplet loss

  • How to choose triplets A,P,N
    • During training, if A,P,N are chosen randomly, then d(A,P) + a <= d(A,N) is easily satisfied
    • Choose triplets that’re “hard” to train on

Another way to learn “similarity” function

binary_similarity

[source] https://www.coursera.org/learn/convolutional-neural-networks

Categories:

Updated:

Leave a comment