top of page
Search
  • johnmcgaughey255

Generative models and competition

In my last blog post about deep learning I discussed the importance of mimicking nature in our pursuit of deep learning perfection. Let me reiterate why looking at the problem of deep learning is so important through such a lens is so useful and important. Nature is perfection, birds are perfect at flying, brains are perfect at thinking and analyzing, evolution is perfect at modeling and shaping perfection in nature. So it seems that at the core of developing a system perfect for thinking, speaking, analyzing, and detecting, we may want to use aspects from evolution and Darwinism to help guide us on that path of perfecting a such a complex idea like thinking and speaking. The idea I want to discuss is natural selection. At its core, natural selection is the survival of the fittest, nature will select whichever traits in an organism maximize its probability to survive. The organisms that have these traits will prosper, and the organisms who fall short of these traits will fall off and die, therefore creating a new generation of organisms with characteristics more suitable for a particular environment.

Ian Goodfellow and colleagues published a short paper called "Generative Adversarial Nets" in 2014 that encapsulated the idea of competition between two networks in order to achieve a better outcome in a shorter amount of time. To fully understand the essence of his idea, and to maybe start thinking like Goodfellow did when he came up with the idea of generative adversarial networks (GAN), I would like you to imagine a bandit and a sheriff in an old western town. What does the bandit naturally want to do? He wants to minimize the probability of being caught by the sheriff. What does the sheriff want to do? Maximize his probability of catching the bandit. Now to produce the most clever strategies for the bandit AND the sheriff, they should be set against each other, and let the system of the bandit and the sheriff evolve. You might ask why this creates the most clever strategies, or it might be intuitive. The only way for the bandit to keep himself from being caught is developing more and more clever strategies to trick the sheriff, the real goal of the bandit is to maximize the probability that the sheriff will not find him. At the same time the bandit is developing smarter and more clever strategies to trick the sheriff, the sheriff is developing more strategic methods to maximize his probability of catching the bandit. So over a stretch of time, the bad methods for both the bandit and the sheriff will be sorted from the good ones, the good ones will be chosen and they will prevail in such a system.

There was a problem with deep generative models, and that was they took so much time to train, and they often did not work as well as AI engineers wanted them to. A deep generative model is a network of neurons who's task is to generate a picture, sound, natural language, or anything that can be generated. This is different from a conventional neural network in the aspect that conventional networks do not create things, they analyze things and come to a specific decision. Often times there is no one right generation that a machine can make, there is not one best picture that can be generated. This however does not mean there cannot be bad pictures generated. Lets say the goal of a machine is to generate images of a mountain landscape, call this network the Generator (G). Goodfellow proposed a network called the Discriminator (D) who's job was to estimate the probability that a sample image came from a data set of pictures of mountains rather than G. G is trained, and its only goal is to maximize the probability of D making a mistake. Think of G as the bandit and D as the sheriff, in the aspects of the sheriff's only goal is to estimate the probability of catching the criminal and the bandit's only goal is to maximize the probability of the sheriff making a mistake.

This whole network can be described as a game, and is encapsulated by a single equation: min G max D V (D, G) = Ex∼pdata(x) [log D(x)] + Ez∼pz(z) [log(1 − D(G(z)))]. The math behind this idea is definitely complex, for several reasons. It requires an understanding of a lot of engineering notation, and game theory ideas are heavily integrated. But what is easy to understand, and what makes GANs nice to work with is they can be trained with backpropagation, and there is no need for Markov chains (A stochastic model that outputs the probability of a sequence of events happening).

Adversarial competition is the essence of evolution, the strong will survive, and the weak will fall off and die. Yann Lecun when talking about GANs said it is "The most interesting idea in Machine Learning in the last 10 years". Isn't it funny how the breakthrough models in ML/DL are always the closest to nature and humanity? First of all, the idea of deep network's itself was inspired by the frontal cortex's ability to abstract concepts, remember those concepts, and apply them. With the GAN's, the most recent breakthrough idea in deep generative learning comes from the essence of competition and natural selection. This should be a guide for the future, a path that we should follow in pursuit of perfecting AI and machine learning.

28 views0 comments

Recent Posts

See All

Meta-heuristic optimization

These are all drafts, by the way. They are not meant to be perfect or to convey all the information I wish to convey flawlessly. My blogs are just a way for me to get ideas and my thoughts realized as

Dimensionality reduction and model interpretability

I would say that the main purpose of communication is to give a universal understanding of abstract ideas. An abstraction is, for my intents and purposes, a lower dimensional encoding of a higher dime

bottom of page