explain to me how Facenet generates face embedding like I don't have a strong mathematical background

So technically even the people who "made" face at don't know how it works on the base level.

However the bigger picture is explainable. First you need to know what a neural network is. Simply a neuron is a component that takes multiple inputs and sends a binary output. Those inputs can have differing weights. If the collective weights surpass an arbitrary threshold, the output turns on. This neuron is connected to other neurons and so forth and so forth. These mesh of neurons is a network. The network can be trained by having the weights and threshold adjusted against training data. That is, you give images of faces. The network gives a score from 0 to 100 on the likelihood of it being a face based on pixel values. If it's off, then adjust the neurons to trend toward the answer. And you do that a ton of times. Eventually, the error [amount the score is wrong compared to the true score of 0 vs 100] is negligable compared to the images. Networks can be used to generate data and recognize data. You put these two together and have them compete you get a GAN [generative adversarial network]. The generator attempts to fool the classifier. The classifier attempts to discern if the image it receives is from a real picture or the generator. If the generator wins against the classifier, its considered a good enough output. The classifier then is retrained for being wrong. The opposite occurs if the generator cannot beat the classifier.

It's like a painter and an art critic. If the painter can make the critic think a forgery is real, the critic must get better. If the painter cannot fool the critic then the painter must get better. If that goes long enough, they are both gonna get very good at their jobs.

/r/explainlikeIAmA Thread