These are published chapters from my book The real Internet of Things, published on January 1st, 2017.
Once we are powered by realtime data and the infrastructure that makes use of it, the intelligence of our algorithms will become paramount.
Two areas seem particularly promising: machine learning and evolutionary algorithms.
Machine Learning is basically the upgrade to our previous-best method of analyzing data—statistics. Where statistics are largely static (the model for extracting truth from data doesn’t improve as you add data), with machine learning the analysis actually improves itself automatically.
Machine Learning, in other words, is the ability for computers to learn without being explicitly programmed. And when you apply that to the algorithms doing realtime data analysis of trillions of objects, we can expect the results to be truly remarkable.
We’re not just learning about the world; we’re improving our ability to learn about the world automatically. And the more data we see the better it gets at improving itself.
As excited as I am about machine learning, I’m even more excited about evolutionary algorithms—especially when they’re eventually combined.
Evolutionary algorithms work by modeling evolution’s method of improving things. It has three basic steps:
- Collect lots of different things together
- Combine or mate them with each other
- Introduce randomness into the output
- Test that output against the environment to see what wins
Another way to say that is:
- Descent with Modification
- Natural Selection
That means lots of varied input, combined, random mutation, and then selection of winners.
It’s important that you have a good, varied pool to start with. It’s also important that you add randomness to the output step so that completely new things are created. And finally, it’s crucial that you have a good environment to test in (one that truly represents success or failure).
In nature this is easy—it’s just the real world the organism is trying to survive and reproduce in. In the digital world it’s a bit more complex.
But the concept is the same, and so is the benefit.
The promise of evolutionary algorithms is that they will allow us to create, very quickly, solutions that human designers couldn’t possibly conceive of (and definitely not in that span of time). They work by taking simple inputs, mating them together, adding some random component, and then automatically testing the output to see how successful that generation is. The winners go on and reproduce, with some randomness, and new outputs are tested again.
This is repeated through a number of generations until the line either dies out or something successful is created.
What’s so spectacular about this is that with constantly improving hardware, combined with better ways of modeling reality, we can go through thousands or millions of generations of evolution looking for solutions to our problems, all in minutes or hours. Using this technique we can potentially outperform the creative capabilities of billions of the smartest humans, doing their best on a problem for hundreds of years, all in the span of a few hours.
Now imagine that mechanism for improvement, i.e. the one that got single-celled organisms all the way to the point of being able to explore our solar system, and combine that with machine learning algorithms trained to improve the quality of the evolutionary algorithms.
It’s difficult to overstate the benefits that can come from being able to accelerate not just our ability to learn, but our ability to learn how to learn. That’s precisely what the combination of machine learning and evolutionary algorithms can do—both on their own and when used together to enhance each other.
- Traditionally the best method we’ve had for learning about the world has been statistics, which are largely static; the analysis model doesn’t improve when you get more data.
- With machine learning, the system gets smarter by itself, i.e., without needing to be reprogrammed.
- Evolutionary algorithms leverage the power of descent with modification and natural selection to create and test possible solutions to problems that we never could as humans.
- Combining these two—with machine learning improving the modeling and testing capabilities of evolutionary algorithms—may be one of the most powerful advances in technology we’ll see for the foreseeable future.