Simply stating, a computer learning things on its own without being explicitly programmed to, just by seeing data and its labels is called Machine Learning. You give a large dataset, label all of it and feed it to an ML Application, now it learns itself how to identify and segregate data. For example, if you feed one thousands of pictures labelled cats and dogs, the app will learn to segregate them on its own, it will learn to recognise features that differentiate a cat from a dog on its own. You don't need to tell it that cats have whiskers and dogs don't, so classify them as such.
Enough of Cats and Dogs, back to FaceApp.
FaceApp uses
Neural Nets or rather
Generative Adversarial Network (
GAN) to do what it does. And to get into specifics the neural net is one called “deep generative convolutional neural network”. Now, what are Neural Nets to begin with?
Neural networks are a set of algorithms, modelled loosely after the human brain, that are designed to recognize patterns. That's it. Some nodes or say neurons connected to each other which pass information like the ones in the brain do. Here each neuron processes the info and passes on to the next one.
Initially, like a child’s brain, the neural net is random, it hasn’t learnt anything and as we feed data to it, it starts learning. As a child slowly learns features one by one, with increasing complexity, so does a neural network.