Thus far, in our deep learning exploration, we have trained all our networks using a technique called supervised training. This training technique works well for when you have taken the time to identify and label your data. All of our previous example exercises used supervised training, because it is the simplest form of teaching. However, supervised learning tends to be the most cumbersome and tedious method, largely because it requires some amount of data labeling or identification before training. There have been attempts to use this form of training for machine learning or deep learning in gaming and simulation, but they have proven to be unsuccessful.
This is why, for most of this book, we will look at other forms of training, starting with a form of unsupervised training called a generative adversarial network (GAN). GANs are able to train themselves using...