Machine learning, neural networks and artificial intelligence litter the tech headlines every week. We certainly write about them all the time, and with good reason — these technologies are very likely to be the vanguard that lead the way forward in our collective, digital futures. But is there another technology we’re overlooking? Some alternate form of machine learning we aren’t talking about, but should be? Well according to the arXiv physics blog and MIT Technology Review, the concept of an evolutionary algorithm could be just that thing.
…and how is it different from a neural network? Well, in a basic sense, a neural network is built to mimic a human brain. Lots of independent nodes (usually GPUs & CPUs grouped together) work in concert to solve a given problem. The machine is coded algorithmically to solve that specific problem by being fed massive amounts of data and then learning from that data, refining its choice rubric each time. But at its core, the core code/objective is written by humans from first principles. An evolutionary algorithm, on the other hands, starts quite a bit less conventionally: “Evolutionary computing uses a different approach. It starts with code generated entirely at random. And not just one version of it, but lots of versions, sometimes hundreds of thousands of randomly assembled pieces of code.”
But, in order for that code to do anything meaningful, it has to adapt and evolve. Because as you can imagine, a bunch of randomly generated code is useless on its own.
But just by chance, some pieces of code are a little better than others. These pieces are then reproduced in a new generation of code, which includes more copies of the better codes.
Basically, the computer is breeding better code by self-selecting the code that appears more likely to solve the master problem. But, it can’t just copy that code endlessly and get to an ideal solution; that’d just produce a bunch of copies of one piece of code that seems helpful. No, it has to ‘mutate’ that code to give itself a chance to replicate a new, better combination of many types of code strands:
However, the next generation cannot be an identical copy of the first. Instead, it must change in some way. These changes can involve switching two terms in the code—a kind of point mutation. Or they can involve two codes that are cut in half and the halves exchanged—like sexual recombination.
The idea is to have a machine play out evolution but at a massively increased pace, while solving for something specific. It’s a hybrid approach (not just creation for creation’s sake, but not just solving a problem as fast as possible for speed’s sake) that has yielded some incredibly impressive results.
To quote from the MIT Technology Review article (which does a really good job summing up the differences between the two approaches as well as the pros/cons and implications thereof), the evolutionary approach was pitted against deep learning at many classic arcade games of the 80s and 90s:
Overall, the evolved code played many of the games well, even outperforming humans in games such as Kung Fu Master. Just as significantly, the evolved code is just as good as many deep-learning approaches and outperforms them in games like Asteroids, Defender, and Kung Fu Master.
It also produces a result more quickly… The evolved code has another advantage. Because it is small, it is easy to see how it works. By contrast, a well-known problem with deep-learning techniques is that it is sometimes impossible to know why they have made particular decisions, and this can have practical and legal ramifications.
How does this impact your business or your technology stack? It’s hard to say at this point. But what is worth mentioning is that just because A.I., machine learning, and neural networks are all the rage doesn’t mean they’re necessarily the best form of iterative machine decision making. We should be watching many types of technological research and advances, and that’s why ENO8 makes a point of keeping tabs on things like evolutionary algorithms; because, if it ends up being the wave of the future, we’ll already be there ready to integrate best practices from the new technology into our partner projects.
Jeff Francis is a veteran entrepreneur and co-founder of Dallas-based digital product studio ENO8. Jeff and his business partner, Rishi Khanna, created ENO8 to empower companies of all sizes to design, develop and deliver innovative, impactful digital products. With more than 18 years working with early-stage startups, Jeff has a passion for creating and growing new businesses from the ground up, and has honed a unique ability to assist companies with aligning their technology product initiatives with real business outcomes.
Whether you have your ducks in a row or just an idea, we’ll help you create software your customers will Love.LET'S TALK
Get this free handbook today & learn how to catapult your chances for software success!