First of all, check out this cool video by Jun-Yan Zhu:
Video by Jun-Yan Zhu, links:
Project website: https://junyanz.github.io/CycleGAN/
GitHub: https://github.com/junyanz/CycleGAN
To me the amazing thing about this is not the fact that we are turning a horse into a zebra, but how it's done.
There is absolutely no frame-by-frame video editing or any trickery of that sort involved. Just a six neural network configuration that's learned to do this on it's own based on the data that's been used to train it.
What's a Generative Adversarial Network?
One of the hottest kinds of neural network models at the time of writing this post is what is known as the Generative Adversarial Network (GAN for short). It was invented by a guy named Ian Goodfellow and like a lot of the awesome ideas in this world, it all started with an argument at a bar. It's a configuration of several neural networks that fall into two main categories:
1) Generative networks
These are the networks that generate new things based on the input that they've been trained. A great analogy I'm stealing from Siraj Raval's video (You should really watch it if you want to learn more!) is that a generative network is like a magician trying to convince an audience with his magic trick. Or in other words, it tries to generate a believable zebra in our case.
2) Discriminative networks
The discriminative networks in GAN are the audience to the magician and their job is to judge how well the generative networks do their job, or if their magic trick was believable or not.
So what's actually going on in a GAN is what's known as a game theoretical zero-sum game.
Here's a great 5-minute video from Siraj Raval that explains the concept far better than I ever could:
Links & further reading:
- The paper explaining the concept behind the "horse to zebra demo" by Jun-Yan Zhu, Taesung Park, Phillip Isola, Alexei A. Efros
- The original paper introducing GANs by Ian J. Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville, Yoshua Bengio
- Two-hour talk by Ian Goodfellow on GANs
Adversarial Networks are pretty amazing, and even cooler they are such new technology that are doing great advancement in AI, but I kinda wish they had gone with a different name for it (even though the name completely fits what it's doing). Reason being, the phrase 'generative adversarial network' getting into the media is going to start drumming up all kinds of fear from uninformed people since it sounds like some kind of terminator thing... Google just got done developing THE ADVERSARY, you might as well say it's DOOMBOT for all any normal person is concerned, lol
Thanks for your comment! Haha, I'm not sure that the mainstream media will be going as deep as naming the actual models used when it comes to AI and if they do they're going to have to explain it. The terminology can be really confusing, take "Long short-term memory" for example :D (That should be a topic for a future post!). It seems like "neural network" is about the most technical term they're willing to use. "AI Learns to do X!" is the type of headline I see everywhere.
followed noob!