[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
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
[source] https://www.coursera.org/learn/convolutional-neural-networks
Leave a comment